aptitude是Debian系统中一个非常实用的软件包管理工具,它提供了一个交互式的文本界面来搜索、安装、升级和删除软件包等操作。在本篇教程中,列出了一些其它的软件包管理操作,这些操作对于 aptitude 过于高级或缺失所需的功能。
一、查找软件包
可以根据 aptitude 这个包管理工具中的软件包描述或者是任务面板下的列表信息,来查找所需要的软件包。
二、列出软件包
下面的命令列出了通过正则表达式匹配软件包名称来列出软件包。
$ aptitude search '~n(pam|nss).*ldap' p libnss-ldap - NSS module for using LDAP as a naming service p libpam-ldap - Pluggable Authentication Module allowing LDAP interfaces
这种方式查找精确的软件包名称很方便。
三、匹配浏览
在”新扁平软件包列表” 中使用 “l” 提示查看,正则表达式 “~dipv6” 可以限制性地匹配软件描述,并交互式地展示信息。
四、清理已删除软件包
能清除所有已移除软件包的剩余配置文件。
检查以下命令的结果。
# aptitude search '~c'
如果确认所列出的软件包应当被完整删除,请运行以下命令。
# aptitude purge '~c'
可能想要在交互模式中做类似的操作进行细粒度的控制。
在 “新软件包视图” 使用 “l” 提示并输入正则匹配式 “~c” ,这将仅匹配软件包,比如, “移除但不清空配置” 。所有符合匹配的软件包可以在顶层标题上使用 “[” 显示。
当在顶层标题如 “未安装的包” 中输入 “_”,当前标题下的软件包只有匹配正则式才会被清除。还可以使用“=” 来交互式地排除软件包以避免删除它们。这种技术方便易用且适用于许多其他的命令键。
五、调整自动/手动安装状态
下面是调整软件包的自动/手动安装状态的方法(在使用非 aptitude 软件包管理器之后)。
1、用 root 以交互模式运行 aptitude。
2、用 “u” 命令更新可用的软件包列表,”U” 命令标记所有可升级的软件包以执行升级,”f” 命令清除新软件包列表,”g” 命令执行所有可升级的软件包以执行升级。
3、按下 “l”,并输入 “~i(~R~i|~Rrecommends:~i)” 来限制软件包的显示,按下 “M” 将 “已安装软件包” 的状态改为自动安装。
4、按下 “l”,并输入 “~prequired|~pimportant|~pstandard|~E” 来限制软件包的显示,按下 “m” 将 “已安装软件包” 的状态改为手动安装。
5、按下 “l”,并输入 “~i!~M” 来限制软件包的显示,在 “已安装软件包” 上按下 “[” 来陈列无用的软件包,按下 “-” 将它们移除。
6、按下 “l”,并输入 “~i” 来限制软件包的显示,之后在 “软件集” 上按下 “m” 将那些软件包标记为手动安装。
7、退出 aptitude。
8、用 root 用户执行 “apt-get -s autoremove|less” 命令,来查看有那些软件包是不再需要的。
9、在交互模式下重启 aptitude 程序,用 “m” 命令标记所需要的软件包。
10、用 root 用户重新执行 “apt-get -s autoremove|less” 这个命令来复查移除的包中是不是只含有自己所希望移除的软件包。
11、用 root 用户执行 “apt-get autoremove|less” 命令来自动移除不再需要的软件包。
在所需要执行的 “Tasks” 上,运行 “m” 命令是一个可选的操作,目的就是为了防止大量软件包被卸载的情况出现。
六、全面的系统升级
当迁移到新的发行版的时候,虽然正如下面所描述的那样,Debian 是可升级的,但是还是应该考虑纯净的安装新的系统。这给了机会去移除废弃的软件包同时还可以接触到最新软件包的完美集合体。当然,在做迁移之前,也应该对系统做完整的备份,并把它移到安全的地方去。“我”也建议用不同的分区做另外一个启动项,来实现平稳的升级。
可以通过改变 源列表 的内容使之指向新的发行版所在地址的方法来进行系统的全面升级,然后运行 “apt update; apt dist-upgrade” 命令。
在 bookworm-作为-stable 发布循环中, 从 stable 升级到 testing 或者 unstable,应该用 “trixie” 或者 “sid” 替换源列表 文件里的 “bookworm”示例。
事实上,由于一些软件包版本变迁的问题,可能会遇到一些困难,主要是由于软件包的依赖问题。升级之后的差异越大,越有可能遇到麻烦。在新版本发行后,系统从旧的 stable 过渡到新的 stable,可以查看 Release Notes 然后按照里面的步骤去做,来尽可能的减少麻烦。
在它正式发布之前,决定要从先前的 stable 迁移到将要发布的 testing,这里没有 Release Notes 可以帮到。 在前一个 stable 发布以后, stable 发行版跟将要发布的 testing 发行版之间的差异可能变得相当大同时也使得升级系统变得更加的复杂。
在全面升级系统的时候,应该谨慎的操作,同时也应该从邮件列表中获取最新的资料然后根据常识作出正确的判断。
1、查看先前的“发行说明”。
2、备份整个系统(尤其是数据和配置信息)。
3、当 bootloader 坏了的时候,手边应该有可以引导电脑启动的存储介质。
4、事先通知系统上的用户。
5、用 script(1) 记录升级的过程。
6、用 “unmarkauto” 命令来保留想要的软件包,例如 “aptitude unmarkauto vim” 这个命令是用来防止移除 vim 这个软件的。
7、为了减少软件包之间可能会发生的冲突,应该尽量减少要安装的软件包的数目,例如,移除桌面环境这个软件包。
8、移除 “/etc/apt/preferences” 文件(禁用apt-pinning)。
9、试着一步步的升级: oldstable → stable → testing → unstable.
10、升级 源列表 文件,使其指向新的档案库然后运行 “aptitude update” 命令。
11、可选的安装选项,首先是新的 core packages,例如 “aptitude install perl”。
12、运行 “apt-get -s dist-upgrade” 命令来评估升级造成的影响。
13、最后运行 “apt-get dist-upgrade” 命令。
注意:
- 在 stable 版本升级的时候,跳过主要的 Debian 发行版是不明智的。
- GCC、 Linux 内核、 initrd-tools、 Glibc、 Perl、 APT 工具链等等,有一些关于系统全面升级的重要注意事项。