UBUNTU APT包管理系统简记

Ubuntu主要的包管理工具:

dpkg – Debian 包安装工具

apt-get – APT 的命令行前端

aptitude – APT 的高级的字符和命令行前端

synaptic – 图形界面的 APT 前端

dselect – 使用菜单界面的包管理工具

tasksel – Task 安装工具

APT 使用 /var/lib/apt/lists/* 来跟踪可用的软件包,而 dpkg 使用的是 /var/lib/dpkg/available。如果你使用了 aptitude 或者其他 APT 前端来安装软件包,同时你希望使用 dselect 来安装软件包,请不要忘记使用 dselect 菜单上的 [U]pdate (或者运行”dselect update”) 来更新 /var/lib/dpkg/available。

在处理依赖关系上 apt-get 会自动下载安装依赖的软件包,但是不会处理所安装软件推荐的或者建议的软件包。

相反 aptitude 可以设置成安装所安装软件推荐的或者建议的软件包。

(1)apt-get命令的子命令

  • update——更新软件包列表
  • upgrade——升级系统中的所有软件包
  • install——安装软件包
  • remove——卸载软件包
  • autoremove——仅卸载那些不需要再次下载的软件包
  • purge——彻底删除软件包(包括其配置文件)
  • source——下载源码包
  • build-dep——自动下载安装编译某个软件所需要的软件包
  • dist-upgrade——升级整个发行版
  • dselect-upgrade——安装dselect的选择进行升级
  • clean——删除本地缓存的所有软件包
  • autoclean——删除本地缓存中无用的软件包
  • check——检查是否存在有问题的依赖关系

# apt-get check # 更新缓冲区并检查损坏的软件包

$ apt-cache search pattern # 按文本描述搜索软件包

$ apt-cache policy package # 软件包的 priority/dists 信息

$ apt-cache show -a package # 显示所有 dists 中软件包描述信息

$ apt-cache showsrc package # 显示相应源码包的信息

$ apt-cache showpkg package # 软件包调试信息

# dpkg –audit|-C # 搜索未完成安装的软件包

$ dpkg {-s|–status} package … # 已安装软件包描述

$ dpkg -l package … # 已安装软件包的状态(每个占一行)

$ dpkg -L package … # 列出软件包安装的文件的名称

APT Pinning允许你安装和运行来自某个版本的的软件包 (stable, testing, unstable),而不必要升级整个系统到此版本。

aptitude 的其他特点如下:

  • aptitude 能访问所有版本的软件包。
  • aptitude 的动作记录在 /var/log/aptitude。
  • aptitude 能轻松的追踪陈旧的和本地建立的软件包,并在“过期的和在本地创建的软件包”上列出。
  • aptitude 内建强大的包搜索和显示功能。熟悉 mutt 的用户很容易上手,因为这个显示方法的灵感来源于 mutt。 参阅 /usr/share/doc/aptitude/README 中的 “SEARCHING, LIMITING, AND EXPRESSIONS”
  • aptitude 在全屏状态下有嵌入的 su 功能。普通用户都可以执行,直到安装或删除软件的时候再取得管理员权限。

Q:我想列出可升级的软件包

A: apt-show-versions -u

Q: 系统升级的话我想知道安装所需占用磁盘空间及升级和安装包数的信息

A: aptitude -y -s -f –with-recommends dist-upgrade

Q: 我的mysql-server是5.0版本,升级系统时需要更新为5.1,可是对我们而言会有兼容性问题,我可以升级系统更新时不更新mysql吗

A: 给这个软件包打上hold标记吧. (sudo apt-mark hold mysql-server 这个办法似乎更清晰,自12.04起适用)

sudo echo “mysql-server hold” | sudo dpkg –set-selections

sudo echo “mysql-server install”|dpkg –set-selections

查询当前系统内所有软件包的状态,命令为:

sudo dpkg –get-selections | more

查询当前系统被锁定不更新的软件包状态(hold),命令为

sudo dpkg –get-selections | grep hold

Q: 那如果升级特定软件包呢?

A: https://help.ubuntu.com/community/PinningHowto

http://jaqque.sbih.org/kplug/apt-pinning.html

Q:如何选择更快的mirrors节点?

A:

apt-spy 会根据站点回应时间和带宽自动创建 sources.list。netselect-apt 会创建一个更完整的 sources.list 文件,但它使用更落后的方法来选择镜像站点(比较 ping 时间)。

E: Dynamic MMap ran out of room

You may find that you receive an error like the following:

E: Dynamic MMap ran out of room

E: Error occured while processing sqlrelay-sqlite (NewPackage)

E: Problem with MergeList /var/lib/apt/lists/ftp.us.debian.org_debian_dists_woody_contrib_binary-i386_Packages

E: The package lists or status file could not be parsed or opened.

This is caused because apt’s cache is too small to handle all of the packages that are included with stable, testing, and unstable. This is also very easy to fix. Add the following line to /etc/apt/apt.conf

APT::Cache-Limit “8388608″;

APT::Periodic::Update-Package-Lists “1″;
每一天自动运行一次 apt-get update,0 表示禁用。
APT::Periodic::Download-Upgradeable-Packages “1″;
每一天运行一次 apt-get upgrade –download-only,0 表示禁用。
APT::Periodic::AutocleanInterval “0″;
每N天运行一次 apt-get autoclean,这里禁用了。
APT::Periodic::Unattended-Upgrade “1″;
每一天运行一次 unattended-upgrade 安全升级脚本,0 表示禁用。
需要 unattended-upgrades 包并且在 /var/log/unattended-upgrades 记录日志。
APT::Archives::MaxAge “210″;
设置包的最大时间。如果包的时间比这个时间旧,就会被删掉,0 表示禁用,这里表示210天。
APT::Archives::MaxSize “0″;
设置缓存所使用的最大空间,单位是MB。如果缓存超过这个大小,缓存的包文件会被删除(最大的包会最先被删除),这里表示禁用。
APT::Archives::MinAge “0″;
设置包的最小时间。如果包的时间比这个时间新,就不会被删除,0 表示禁用。防止竞争和保留紧急包的备份。

https://help.ubuntu.com/12.04/serverguide/automatic-updates.html

alien – convert and install rpm and other packages

Share the post "Ubuntu APT包管理系统简记"

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容