目录
成都网站建设哪家好,找创新互联建站!专注于网页设计、成都网站建设、微信开发、成都小程序开发、集团企业网站制作等服务项目。核心团队均拥有互联网行业多年经验,服务众多知名企业客户;涵盖的客户类型包括:成都餐厅设计等众多领域,积累了大量丰富的经验,同时也获得了客户的一致表扬!
apt
vs. apt-get
/ apt-cache
vs. aptitude
unstable
软件包的 testing
版本
experimental
软件包的 unstable
版本
注意 | |
---|---|
这一章假定最新的稳定版的代号为: |
Debian 是一个志愿者组织,它建立一致的自由软件的预编译二进制包并从档案库中分发它们。
许多远程镜像站提供了 HTTP 和 FTP 的方式来访问 Debian 档案库。也可以使用 CD-ROM/DVD 。
目前 Debian 的软件包管理系统是 高级软件包工具 (APT),它能够使用所有这些资源。
Debian 软件包管理系统,当使用适当时,可以让用户从档案库安装统一设置的二进制软件包 到系统中。现在,有 66314 个可用于 amd64 架构的软件包。
Debian 软件包管理系统有丰富的历史,有许多可供选择的前端用户程序和后端访问方式。现在,我们推荐下列的这些。
apt
(8) 用于所有的交互式命令行操作,包含软件包的安装、移除和版本升级。
apt-get
(8) 用于从脚本中调用 Debian 软件包管理系统。它在 apt
不可用时也可作为一个备选选项(常见于较旧的 Debian 系统)。
aptitude
(8) 使用一个交互式的文本界面来管理已安装的软件包和搜索可用的软件包。
表 2.1. Debian 软件包管理工具列表
软件包 | 流行度 | 大小 | 说明 |
---|---|---|---|
dpkg |
V:924, I:999 | 6900 | 用于 Debian 的底层软件包管理系统(基于文件的) |
apt |
V:870, I:999 | 4351 | 使用命令行管理软件包的 APT 前端: apt /apt-get /apt-cache |
aptitude |
V:66, I:359 | 4256 | 使用全屏控制台交互式管理软件包的 APT 前端: aptitude (8) |
tasksel |
V:34, I:978 | 395 | 用来安装选择的任务的 APT 前端: tasksel (8) |
unattended-upgrades |
V:314, I:465 | 326 | 用于 APT 的增强软件包,会自动安装安全更新 |
gnome-software |
V:130, I:232 | 2856 | GNOME 软件中心(图形化的 APT 前端) |
synaptic |
V:46, I:356 | 7874 | 图形化的软件包管理工具(GTK 的 APT 前端) |
apt-utils |
V:382, I:997 | 1167 | APT 实用程序:apt-extracttemplates (1) 、apt-ftparchive (1) 和 apt-sortpkgs (1) |
apt-listchanges |
V:358, I:855 | 423 | 软件包历史更改提醒工具 |
apt-listbugs |
V:7, I:11 | 465 | 在每次 APT 安装前列出严重的 bug |
apt-file |
V:18, I:75 | 90 | APT 软件包搜索工具 —— 命令行界面 |
apt-rdepends |
V:0, I:6 | 41 | 递归列出软件包依赖 |
下面是 Debian 系统软件包配置的一些要点。
Debian 尊重系统管理员的手动配置。换句话说,软件包配置系统不会为了方便而去更改那些配置。
每个软件包都带有自己的配置脚本,它使用标准用户接口 debconf
(7) 来帮助软件包初始化安装过程。
Debian 开发者通过软件包配置脚本,尽力使你能有一个完美的升级体验。
系统管理员可以使用软件包工具的全部功能。但在默认的安装中会禁用那些具有安全风险的。
如果你手动激活了一些具有安全隐患的服务,你有责任遏制风险。
高深的配置可以由系统管理员手动启用。这可能会对用于系统配置的通用流行帮助程序造成干扰。
警告 | |
---|---|
不要从任何的混合套件中安装软件包。它可能会打破软件包的一致性,这需要你要深厚的系统管理知识,例如 ABI 编译器、库版本和解释器特性等等。 |
Debian 系统管理员中的新手应该保持在只进行安全更新的 stable
版本。我的意思是,最好避免下列的一些行为作为一项预防措施,直到你十分了解 Debian 系统。下面有一些提醒。
在 “/etc/apt/sources.list
” 中不要包含 testing
或 unstable
。
在 “/etc/apt/sources.list
” 里不要在标准的 Debian 中混合使用其它非 Debian 的档案库,例如 Ubuntu 。
不要建立 “/etc/apt/preferences
” 。
不了解会造成的全部影响,就不要通过配置文件改变软件包管理工具的默认行为。
不要使用 “dpkg -i random_package
” 安装任何软件包。
绝不使用 “dpkg --force-all -i random_package
” 安装任何软件包。
不要删除或修改 “/var/lib/dpkg/
” 中的文件。
不要让从源码直接安装的程序覆盖系统文件。
如果需要的话,将它们安装到 “/usr/local
” 或 “/opt
” 中。
上述对 Debian 软件包管理系统做的行为所导致的不兼容影响可能会使你的系统无法使用。
负责有关键任务的服务器的严谨的 Debian 系统系统管理员,应该使用额外的预防措施。
没有在安全的条件下使用你特定的配置进行彻底地测试,就不要从 Debian 安装任何软件包(包含安全更新)。
你作为系统管理员要对你的系统负责到底。
Debian 系统长久的稳定史并无法保证什么。
小心 | |
---|---|
对于你的生产服务器,建议使用带有安全更新的 |
尽管我在上面进行了警告,我知道本文档的许多读者希望可以运行更新的 testing
或 unstable
版。
菩萨使用下面的内容拯救一个人,使他从挣扎于持续升级地狱的因果报应中脱困,并让他达到 Debian 的极乐世界。
这个列表面向 自己管理的 桌面环境。
使用 testing
版,实际上,它是自动滚动发布的,由 Debian 档案库的 QA 质量架构来管理,比如:Debian 持续集成、只上传源代码实践 和 库转换跟踪。在 testing
版中的软件包被更新得足够频繁来提供全部最新的特性。
在"/etc/apt/sources.list
"里面设置 testing
版相应的代码名(目前是 “bookworm
”)。
大概在主版本发布一个月后,仅仅在你自己评估了形势后,才手动更新"/etc/apt/sources.list
"里的这个代码名到新的版本号。对于这个更新,Debian 用户和开发者邮件列表也是好的信息来源。
使用 unstable
版是不推荐的。unstable
版对开发者 调试软件包合适,但对普通的桌面使用而言,会有使你暴露在不必要的风险中的倾向。 尽管 Debian 系统的 unstable
版在大多数时候看起来都非常稳定,但会有一些软件包问题,并且它们中的一部分是不容易解决的。
这里有一些基本预防措施意见,确保简单快速地从 Debian 软件包的 bug 中恢复。
通过将 Debian 系统的 stable
版安装到另一个分区,可以使系统能够进行双启动
制作安装 CD 便于用于 救援启动
考虑安装 apt-listbugs
,这可以在升级之前检查 Debian Bug 跟踪系统(BTS) 的信息
对软件包系统的基础设施有足够的了解来解决问题
在遇到问题的情况下,安装上游相应的沙盒化二进制软件包(参见 第 7.6 节 “沙盒”)
建立一个 chroot 或类似的环境来提前运行最新的系统(参见第 9.11 节 “虚拟化系统”)
小心 | |
---|---|
如果你无法做到这些预防措施中的任何一个,那你可能还没做好使用 |
让我们从系统用户的角度来看看 Debian 档案库。
提示 | |
---|---|
Debian 档案库官方政策的定义参见 Debian 政策文档,第2章 —— Debian 档案库。 |
对于典型的 HTTP 访问,档案库在 “/etc/apt/sources.list
” 文件中像下面那样指定,例如,现在 stable
= bullseye
系统。
deb http://deb.debian.org/debian/ bullseye main contrib non-free deb-src http://deb.debian.org/debian/ bullseye main contrib non-free deb http://security.debian.org/debian-security bullseye-security main contrib deb-src http://security.debian.org/debian-security bullseye-security main contrib
这里,我倾向于使用代号 “bullseye
” 来代替套件名 “stable
” ,以避免下一个 stable
版本发布时出现意外。
“/etc/apt/sources.list
” 的含义在 sources.list
(5) 中进行了描述,下面是一些要点。
“deb
” 的那行定义了二进制软件包。
“deb-src
” 的那行定义了源代码软件包。
第一个参数是 Debian 档案库的根 URL 。
第二个参数是发行版名称:可以使用套件名或代号。
第三个和之后的参数是 Debian 档案库的有效档案库范围名称。
如果只是用 aptitude
(它不访问源代码相关的元数据),“deb-src
”那行可以安全地删掉(或者在文件开头添加 “#” 来将它注释掉)。这可以加速档案库元数据的更新。URL 可以是“http://
” 、“ftp://
” 、 “file://
” ……
提示 | |
---|---|
如果在上述的例子中,使用了 “ |
下面是配置文件所使用的 Debian 档案库站点的 URL 和套件名或代号的列表。
表 2.2. Debian 档案库站点列表
档案库 URL | 套件名(代号) | 目的 |
---|---|---|
http://deb.debian.org/debian/ | stable (bullseye ) |
stable (bullseye) release 版本 |
http://deb.debian.org/debian/ | testing (bookworm ) |
testing (bookworm) release 版本 |
http://deb.debian.org/debian/ | unstable (sid ) |
unstable (sid) release 版本 |
http://deb.debian.org/debian/ | experimental |
experimental pre-release 版本(可选,只适用于开发者) |
http://deb.debian.org/debian/ | stable-proposed-updates (bullseye-proposed-updates ) |
用于下一个稳定版 (bullseye)点版本(小版本)发布的更新(可选) |
http://deb.debian.org/debian/ | stable-updates (bullseye-updates ) |
用于稳定版( bullseye )的垃圾邮件过滤器、IM客户端等的兼容更新 |
http://deb.debian.org/debian/ | stable-backports (bullseye-backports ) |
用于稳定版(bullseye ) 的较新的向后移植的软件包(可选) |
http://security.debian.org/debian-security/ | stable-security (bullseye-security ) |
用于稳定版(bullseye) 发布的安全更新(重要) |
http://security.debian.org/debian-security/ | testing-security (bookworm-security ) |
用于测试版发布的安全更新(这个没有安全团队的积极支持) |
小心 | |
---|---|
只有带有安全更新的纯净的 |
小心 | |
---|---|
在 " |
提示 | |
---|---|
对于使用 |
注意 | |
---|---|
Debian 安全团体将会修正 |
表 2.3. Debian 归档区域(area)列表
区域 | 软件包数量 | 软件包组件标准 |
---|---|---|
main |
65132 | 遵从 Debian 自由软件指导方针(DFSG),并且不依赖于 non-free |
contrib |
372 | 遵从 Debian 自由软件指导方针(DFSG),但依赖于 non-free |
non-free |
810 | 不遵从 Debian 自由软件指导方针(DFSG) |
上述软件包的数量是 amd64 架构的。main
区域提供 Debian 系统(参见 第 2.1.5 节 “Debian 是100% 的自由软件”)。
通过把你的浏览器指向档案库 URL,这些 URL 在 dists
或 pool
之后是各不相同的,Debian 档案库能够被有规划的组织。
发行版可以用套件或代号来指定。发行版在许多文档中也被当做是套件的同义词。套件和代号的关系总结如下。
表 2.4. 套件和代号的关系
时间 | suite = stable |
suite = testing |
suite = unstable |
---|---|---|---|
在 bullseye 发布后 |
codename = bullseye |
codename = bookworm |
codename = sid |
在 bookworm 发布后 |
codename = bookworm |
codename = trixie |
codename = sid |
代号的历史参见 Debian FAQ: 6.2.1 以前用过哪些代号名?
在较严格的 Debian 档案术语,“部分 section”这一词特指按应用领域来分类的软件包类别。(但是,主要部分 ("main section") 这一词有时会用来描述 Debian 档案区中,名为”main 主要"的区域 。)
Debian 开发者(DD)每次上传软件包到 unstable
档案库(通过 incoming 处理),都必须确保上传的软件包与最新的 unstable
档案库中的最新软件包兼容。
如果 DD 故意打破重要的库升级等的这种兼容性,这通常会在 Debian 开发者邮件列表等进行公告。
在 Debian 档案库维护脚本将软件包从 unstable
档案库移动到 testing
档案库前,档案库维护脚本不仅检查时间(约10天)和软件包的 RC bug 报告的状态,还尝试确保它们可以和最新的 testing
档案库中的软件兼容。这个过程使得testing
档案库非常正确可用。
通过由发布团队领导的逐步冻结档案库的过程,并进行一些手动干预,使 testing
档案库完全一致,无缺陷。然后,将旧的 testing
档案库的代码名称分配给新的 stable
档案库,并为新的 testing
档案库创建新的代码名称。新的 testing
档案库最初的内容和新发布的 stable
档案库的内容完全相同。
unstable
和 testing
档案库都可能会遭受由以下几个因素导致的临时的小故障。
损坏的软件包被上传到档案库(多见于 unstable
)
延迟接受新的软件包到档案库(多见于 unstable
)
档案库时间同步问题( testing
和 unstable
)
手动干预档案库,例如移除软件包(多见于 testing
)等。
因此,如果你决定使用这些档案库,你应该能够修复或忍受这些类型的小故障。
小心 | |
---|---|
在新的 |
提示 | |
---|---|
跟踪 |
档案库的定义参见 Debian 政策文档。
部分
"优先级"
"基本系统"
"极重要的软件包"
Debian 是100%的自由软件,因为:
Debian 默认只安装自由软件,这尊重了用户的自由。
Debian 在 main
中只提供自由软件。
Debian 建议只运行来自 main
的自由软件。
在 main
中的软件包没有依赖于在 non-free
或 contrib
中的软件包。
有人想知道下列的两个事实是否互相矛盾。
“ Debian 将始终是 100% 的自由软件”。( Debian 社群契约中的第一条)
Debian 服务器上有一些 non-free
和 contrib
软件包。
因为下列原因,这并不矛盾。
Debian 系统具有100%的自由,并且它的软件包位于 Debian 服务器的 main
区域。
Debian 系统之外的软件包位于 Debian 服务器的 non-free
和 contrib
区域。
在 Debian 社群契约的第4条和第5条对这进行了明确的解释:
我们将优先考虑我们的用户及自由软件
我们由我们的用户及自由软件社群的需要所导向。我们将优先考虑他们的利益。我们将在多种计算环境中支持我们的用户的操作需要。我们不反对在 Debian 系统上使用非自由软件,我们也不会尝试向创建和使用这部分软件的用户索取费用。我们允许他人,在没有我们的资金的参与下,制造包括 Debian 以及商业软件的增值套件。为了达成这些目标,我们将提供集成的、高质量的、100%自由的软件,而不附加任何可能阻止在这些方面使用的法律限制。
哪些作品不符合我们的自由软件规范
我们明了,某些我们的用户需要使用不符合 Debian 自由软件指导方针的作品。 我们为这些作品,在我们的档案库中留出了 “contrib
" 以及 “non-free
" 目录。在这些目录下的软件包,并不属于 Debian 系统 尽管它们已被配置成可以在 Debian 下使用。我们鼓励光盘制造商阅读这些目录下的软件的许可证,以判断他们是否可以在光盘中发行这些软件 。所以,尽管非自由软件并非 Debian 系统的一部分,我们仍支持它们的使用,并且我们为非自由软件提供了公共资源 (诸如我们的缺陷跟踪系统以及邮件列表)。
用户应该了解使用 non-free
和 contrib
中的软件包所需要冒的风险:
使用类似的软件包会失去自由
失去 Debian 对软件包的支持(这些软件包无法访问源代码,Debian 不能进行完全的支持。)
污染你100%自由的 Debian 系统
Debian 自由软件指导方针为 Debian 设立了自由软件标准。Debian 对软件包中的软件做了最广泛的解释,包含文档、固件、图标和图形数据。这使得 Debian 的自由软件标准非常严格。
典型的 non-free
和 contrib
软件包包含了下列类型的自由分发的软件包:
在GNU Free Documentation License下的文档包 ,包含不变的部分 ,比如GCC 和 Make的。 (大多数都可以在non-free/doc
找到 .)
包含没有源代码的二进制数据的固件软件包,例如在 第 9.10.5 节 “硬件驱动和固件” 中列出的 non-free 软件包。(多见于 non-free/kernel
部分。)
游戏和字体软件包,对商业使用和/或内容修改进行了限制。
请注意,non-free
和 contrib
软件包的数量少于 main
软件包的2%。允许访问 non-free
和 contrib
并不会模糊软件包的来源。使用 aptitude
(8) 的全屏交互式界面可以提供完全的可见性和完全的控制,可以让你决定安装来自某个部分的软件包,来使你的系统保持自由。
Debian 系统通过其控制文件字段中的版本化二进制依赖声明机制来提供一致的二进制软件包集合。下面有一些它们的简单定义。
“依赖”
绝对的依赖,所有在这里列出的软件包都必须同时或提前安装。
"预依赖"
类似于 Depends,但列出的软件包必须提前完成安装。
"推荐"
这里表示一个强,但不是绝对的依赖关系 。大多数用户不会想要这个包,除非在这里列出的所有包都已经安装。
"建议"
较弱的依赖。这个软件包的大多数用户可能会从安装所列的软件包中受益,但没有它们也可以有适当的功能。
"增强"
这里表明一个像建议的弱依赖关系,不装也没关系。
"破损"
表明一个软件包不兼容一些版本规范。一般的解决方法就是升级列出的所有软件包。
"冲突"
这表明了绝对的不兼容。为了安装这个软件包必须移除所有列出的软件包。
"替代"
这表明这个文件安装的文件会替代所列的软件包的文件。
"提供"
表明这个软件包会提供所列的软件包所有的文件和功能。
注意 | |
---|---|
请注意,同时将 “Provides” 、“Conflicts” 和 “Replaces” 定义到一个虚拟的软件包是一个明智的配置。这确保了在任何一个时间只能安装一个提供该虚拟包的真正软件包。 |
包含源代码依赖关系的官方定义位于 the Policy Manual: Chapter 7 - Declaring relationships between packages。
这是 APT 提供的软件包管理的简单事件流摘要。
更新(“apt update
”、“aptitude update
” 或 “apt-get update
”):
从远程档案库获取档案库元数据
重建和更新 APT 使用的本地元数据
升级(“apt upgrade
” 和 “apt full-upgrade
”,或 “aptitude safe-upgrade
” 和 “aptitude full-upgrade
”,或 “apt-get upgrade
” 和 “apt-get dist-upgrade
”):
选择候选版本,它所安装的软件包通常都是最新的可用版本(例外参见 第 2.7.3 节 “调整候选版本” )
解决软件包依赖关系
如果候选版本与已安装的版本不同,会从远程档案库获取所选择的二进制软件包
解包所获取的二进制软件包
运行 preinst 脚本
安装二进制文件
运行 postinst 脚本
安装(“apt install ...
”、“aptitude install ...
" 或者 "apt-get install …
” ):
选择命令行中列出的包
解决软件包依赖关系
从远程服务器获取已选二进制包
解包所获取的二进制软件包
运行 preinst 脚本
安装二进制文件
运行 postinst 脚本
移除 ("apt remove …
", “aptitude remove …
” 或 “apt-get remove …
”):
选择命令行中列出的包
解决软件包依赖关系
运行 prerm 脚本
移除已安装的文件,除了配置文件
运行 postrm 脚本
清除 ("apt purge
",“aptitude purge …
” 或 “apt-get purge …
”):
选择命令行中列出的包
解决软件包依赖关系
运行 prerm 脚本
移除已安装的文件,包含配置文件
运行 postrm 脚本
这里,为了大局,我特意省略了技术细节。
你应该阅读优良的官方文档。第一个阅读的文档是 Debian 特定的 “/usr/share/doc/package_name/README.Debian
”。同时也应该查询 “/usr/share/doc/package_name/
” 中的其它文档。如果你设置 shell 为第 1.4.2 节 “定制 bash”,输入下列命令。
$ cd package_name $ pager README.Debian $ mc
你可能需要安装以 “-doc
” 后缀命名的对应文档软件包来获取详细的信息。
如果你在使用一个特定的软件包时出现了问题,一定要首先检查 Debian bug 跟踪系统(BTS) 网站。
表 2.5. 解决特定软件包问题的主要网站
网站 | 命令 |
---|---|
Debian bug 跟踪系统(BTS) 的主页 | sensible-browser "http://bugs.debian.org/" |
软件包名称已知的 bug 报告 | sensible-browser "http://bugs.debian.org/package_name" |
bug 编号已知的 bug 报告 | sensible-browser "http://bugs.debian.org/bug_number" |
使用 Google 搜索,在关键字中包含 “site:debian.org
”,“site:wiki.debian.org
”,“site:lists.debian.org
” 等等。
当你要发送一份 bug 报告时,请使用 reportbug
(1) 命令。
在 Debian 系统中有许多基于 APT 的软件包管理工具可以在 Debian 系统上进行基于仓库的软件包管理操作。在这里,我们将介绍 3 种基本的软件包管理工具:apt
,apt-get
/ apt-cache
和 aptitude
。
对于涉及软件包安装或更新软件包元数据的软件包管理操作,你必须有 root 权限。
apt
vs. apt-get
/ apt-cache
vs. aptitude
尽管 aptitude
是作者主要使用的一个非常好的可互动工具,但你应该知道下列警示:
不建议在新版本发布后在 stable
Debian 系统上使用 aptitude
命令来进行跨版本的系统升级。
建议使用"apt full-upgrade
"或“apt-get dist-upgrade
” 来进行这个操作。参见 Bug #411280。
aptitude
命令有时候会为了testing
或 unstable
Debian 系统升级清除大量软件包。
这个情况吓坏了许多的系统管理员。请不要惊慌。
这似乎大多数是由元软件包的依赖或推荐的软件包版本偏差造成的,例如 gnome-core
。
要解决这个问题,可以在 aptitude
命令菜单中选择 “取消待执行的动作” ,退出 aptitude
,并使用 “apt full-upgrade
”。
apt-get
和 apt-cache
是最基础 的基于 APT 的软件包管理工具。
apt-get
和 apt-cache
只提供命令行用户界面。
apt-get
是进行跨版本的主系统升级等操作的最合适工具。
apt-get
提供了一个强大的软件包依赖解析器。
apt-get
对硬件资源的要求不高。它消耗更少的内存并且运行速度更快。
apt-cache
提供了一个 标准的正则表达式来搜索软件包名称和描述。
apt-get
和 apt-cache
可以使用 /etc/apt/preferences
来管理软件包的多个版本,但这非常繁琐。
apt
命令是一个用于软件包管理的高级命令行界面。它基本上是 apt-get
、apt-cache
和类似命令的一个封装,被设计为针对终端用户交互的界面,它默认启用了某些适合交互式使用的选项。
apt
工具在用户使用 apt install
安装软件包时提供了一个友好的进度条。
在成功安装下载的软件包后,apt
将默认删除缓存的 .deb
软件包。
提示 | |
---|---|
建议用户使用新的 |
aptitude
命令是最通用的基于 APT 的软件包管理工具。
aptitude
提供了一个全屏的交互式文本用户界面。
aptitude
同样也提供了一个命令用户界面。
aptitude
是用于日常软件包管理(例如检查已安装的软件包和搜索可用的软件包)的最合适工具。
aptitude
对硬件资源的要求更高。它消耗更多的内存并且运行速度更慢。
aptitude
提供一个增强的正则表达式来搜索所有的软件包元数据。
aptitude
可以管理软件包的多个版本,并且不使用 /etc/apt/preferences
,这会十分直观。
下面是使用 apt
(8), aptitude
(8) 和 apt-get
(8) / apt-cache
(8) 的命令行基本软件包管理操作。
表 2.6. 使用 apt
(8), aptitude
(8) 和 apt-get
(8) / apt-cache
(8) 的命令行基本软件包管理操作
apt 语法 |
aptitude 语法 |
apt-get / apt-cache 语法 |
说明 |
---|---|---|---|
apt update |
aptitude update |
apt-get update |
更新软件包档案库元数据 |
apt install foo |
aptitude install foo |
apt-get install foo |
安装 “foo ” 软件包的候选版本以及它的依赖 |
apt upgrade |
aptitude safe-upgrade |
apt-get upgrade |
安装已安装的软件包的候选版本并且不移除任何其它的软件包 |
apt full-upgrade |
aptitude full-upgrade |
apt-get dist-upgrade |
安装已安装的软件包的候选版本,并且需要的话会移除其它的软件包 |
apt remove foo |
aptitude remove foo |
apt-get remove foo |
移除 “foo ” 软件包,但留下配置文件 |
apt autoremove |
N/A | apt-get autoremove |
移除不再需要的自动安装的软件包 |
apt purge foo |
aptitude purge foo |
apt-get purge foo |
清除 “foo ” 软件包的配置文件 |
apt clean |
aptitude clean |
apt-get clean |
完全清除本地仓库的软件包检索文件 |
apt autoclean |
aptitude autoclean |
apt-get autoclean |
清除本地仓库中过时软件包的软件包检索文件 |
apt show foo |
aptitude show foo |
apt-cache show foo |
显示 “foo ” 软件包的详细信息 |
apt search 正则表达式 |
aptitude search regex |
apt-cache search regex |
搜索匹配 regex 的软件包 |
N/A | aptitude why regex |
N/A | 解释匹配 regex 的软件包必须被安装的原因 |
N/A | aptitude why-not regex |
N/A | 解释匹配 regex 的软件包不必安装的原因 |
N/A | aptitude search '~i!~M' |
apt-mark showmanual |
列出手动安装的软件包 |
apt
/ apt-get
和 aptitude
能够混用,没有大问题。
“aptitude why regex
” 可以通过 “aptitude -v why regex
” 列出更多的信息。类似的信息可以通过"apt rdepends package
" 或 “apt-cache rdepends package
” 获取。
当 aptitude
命令在命令行模式下启动后遇到了一些问题(例如软件包冲突),你可以在之后的提示中按下 “e
” 键切换到全屏的交互模式。
注意 | |
---|---|
虽然 |
你可以在 “aptitude
” 后面使用的命令选项。
表 2.7. aptitude
(8) 中重要的命令选项
命令选项 | 说明 |
---|---|
-s |
模拟命令的结果 |
-d |
仅下载,不进行安装/更新 |
-D |
在自动安装和删除前,显示简要的说明 |
更多内容参见 aptitude
(8) 和位于 “/usr/share/doc/aptitude/README
” 的 “aptitude 用户手册”。
要使用交互式的软件包管理,你可以像下面那样以交互模式启动 aptitude
。
$ sudo aptitude -u Password:
这将更新档案库信息的本地副本,并以菜单的形式全屏显示软件包列表。 aptitude 将它的配置放在 “~/.aptitude/config
”。
提示 | |
---|---|
如果你想用 root 的配置而非使用者的,可以在上面的例子中使用 “ |
提示 | |
---|---|
当 |
在全屏模式下浏览软件包状态和设置动作的按键如下。
表 2.8. aptitude 的按键绑定
快捷键 | 键绑定功能 |
---|---|
F10 或 Ctrl-t |
菜单 |
? |
显示按键帮助(更加完整的清单) |
F10 → 帮助 → 用户手册 |
显示用户手册 |
u |
更新软件包档案库信息 |
+ |
标记该软件包以便升级或安装 |
- |
标记该软件包以便移除(保留配置文件) |
_ |
标记该软件包以便清除(移除配置文件) |
= |
将软件包设为保持状态 |
U |
标记所有可升级包(动作如同 full-upgrade) |
g |
开始 下载 并 安装 所选择包 |
q |
退出该界面并保存变更 |
x |
退出该界面并清除变更 |
Enter |
查看软件包的信息 |
C |
查看软件包的变更记录 |
l |
变更软件包的显示限制 |
/ |
搜寻匹配的第一个软件包 |
\ |
重复上一个搜索 |
可以通过命令行指定文件名称,也可以通过按 “l
” 或 “/
” 之后在菜单提示下输入下列所述的 aptitude 正则表达式。aptitude 正则表达式可以使用 “~n
” 开头后接软件包名称的字符串来精确匹配软件包名称。
提示 | |
---|---|
你需要在可视化界面中按下 “ |
aptitude
(8) 全屏交互模式下,软件包列表里的软件包会像下面的例子那样显示。
idA libsmbclient -2220kB 3.0.25a-1 3.0.25a-2
该行的从左到右的含义如下。
“状态”标签 (第一个字母)
“动作”标签(第二个字母)
“自动”标签(第三个字母)
软件包名称
该“动作”对磁盘空间的变化
软件包当前版本
软件包可用版本
提示 | |
---|---|
您可以在帮助菜单中找到完整的标签列表,按“ |
可用版本 的选择是依据当前的本地首选项(参见 apt_preferences
(5) 和 第 2.7.3 节 “调整候选版本”)。
软件包视图的几种类型都可以在“ 视图
”菜单下找到。
表 2.9. aptitude 视图
视图 | 视图描述 |
---|