第 9 章 使您的 Debian 系统保持最新状态
发布时间:2026-08-02 | 浏览:3
Debian 的目标之一是提供一致的升级路径和安全的升级过程。我们尽力让用户可以平滑地升级到新版本。如果升级过程有一些重要的注意事项,软件包会提示用户,并且常常会对可能出现的问题提供解决方案。
您也应该阅读发行说明,里面描述了特定的升级过程的细节。发行说明可以在 Debian 网站的 https://www.debian.org/releases/stable/releasenotes 阅读,也可以在 Debian CD、DVD 和蓝光光碟中找到。
9.1. 如何使 Debian 系统保持最新?
最直接的方法是进入 Debian 档案站点,在各种目录中找到需要的文件,下载它,最后用 dpkg 进行安装。注意 dpkg 会原地安装升级文件,即使系统正在运行。有时候,一个软件包的新版本会依赖另外一个软件包的新版本,这种情况下,安装就会失败,除非已经安装了所依赖的那个软件包。
很多人觉得这种方式太耗时间了,因为 Debian 更新得实在太快——每周一般有数十个或更多的软件包被上传。新版本发布前这个数字可能更大。为了处理大量更新的软件包,许多人倾向于使用更加自动化的方法。有多个不同的软件包可以实现这一目的:
9.1.1. aptitude
aptitude 是 Debian 系统推荐的软件包管理器,在 第 8.1.3 节 “aptitude” 中有描述。
在使用 aptitude 进行升级之前,您需要编辑 /etc/apt/sources.list 以完成设置过程。如果您希望升级到 Debian 的最新稳定版本,您可以使用类似如下的软件源:
The mirror https://deb.debian.org/ is backed by a content-delivery network and requests to it will be directed to the closest instance to you. If you have a faster Debian mirror close to you, you can replace deb.debian.org with that one. See the mirror list at https://www.debian.org/mirror/list for more information.
或者您也可以使用 httpredir.debian.org 重定向服务,它的设计目标是解决选择 Debian 镜像的难题。它使用用户的地理位置信息和其他信息,以选择下载文件的最佳镜像。要使用它,请使用类似如下的软件源:
更多信息请阅读 sources.list (5) 手册页。
回答可能出现的问题,然后您的系统就会被升级。
注意 aptitude 不是进行 Debian GNU/Linux 大版本升级的推荐工具。这种情况请使用 apt-get 。进行大版本升级,请先阅读 发行说明 。该文档详细描述了从上一个大版本升级的推荐步骤,以及升级前需要考虑的已知问题。
更多详细信息,请阅读 aptitude (8) 手册页,以及 /usr/share/aptitude/README 文件。
9.1.2. apt-get 和 apt-cdrom
aptitude 的一个替代品是 apt-get ,它是基于 APT 的命令行工具(之前在 第 8.1.2 节 “APT” 介绍过)。
apt-get 是基于 APT 的命令行软件包管理工具,提供了安装和升级软件包的简单而安全的方式。
要使用 apt-get ,请编辑 /etc/apt/sources.list 文件完成设置,就像 第 9.1.1 节 “aptitude” 中一样。
回答任何可能出现的问题,然后您的系统就会被升级。也请阅读 apt-get (8) 手册页,以及 第 8.1.2 节 “APT” 。
如果您希望使用 CD/DVD/BD 来安装软件包,您可以使用 apt-cdrom 。更多详情,请阅读发行说明中的“从光学介质中添加 APT 源”一节。
请注意,当您获取和安装软件包时,在 /var 目录中可能会保留这些软件包。为了防止您的分区空间不足,记得使用 apt-get clean 和 apt-get autoclean 删除多余的文件,或者把它们移动到其他地方(提示:使用 apt-move )。
9.2. 必须进入单用户模式才能升级软件包吗?
不是。即使是在正在运行的系统中,软件包也可以原地升级。Debian 有一个 start-stop-daemon 程序,在软件包升级时,如有必要,会调用它来停止和重启正在运行的进程。
9.3. 我需要在磁盘上保留所有的 .deb 档案文件吗?
不需要。如果您已经下载了这些文件到您的磁盘上,那么在您安装完软件包后,您就可以从系统中删除这些文件,例如,可以执行 aptitude clean 。
9.4. 我应该如何保存关于安装了哪些软件包的日志?我想知道什么时候进行了安装和卸载,以及安装和卸载了哪些软件包!
dpkg 的 --log 选项使 dpkg 记录软件包的状态改变和动作。它既记录对 dpkg 的调用(例如
)。如果您想记录所有的 dpkg 调用(包括来自前端,如 aptitude 的调用),您可以将
添加到您的 /etc/dpkg/dpkg.cfg 文件中。请确保配置了日志文件的周期性滚动。如果您使用 logrotate ,您可以创建 /etc/logrotate.d/dpkg 文件,内容为
关于 dpkg 日志的更多信息可以在 dpkg (1) 手册页中找到。
aptitude 会将它打算进行的软件包安装、卸载和升级操作记录到 /var/log/aptitude 中。注意这些操作的 结果 不会被记录到该文件!
记录您的操作的另一种方式是在 script (1) 程序中进行您的软件包管理会话。
9.5. 可以自动升级系统吗?
可以。您可以使用 cron-apt ;这一工具使用 cron 任务定期升级系统。它默认只更新软件包列表并下载新的软件包,但不安装它们。
注意:不建议在 testing 或 unstable 系统上配置软件包的自动升级,因为有可能出现意料之外的行为,或者在不通知您的情况下卸载软件包。
9.6. 我有多台机器;我怎样才能只下载一次更新?
如果您的网络上有多台 Debian 机器,您可以使用 apt-cacher 确保您所有的 Debian 系统处于最新状态。
apt-cacher 能减少对 Debian 镜像站点的带宽需求,原理是从后端限制 Packages、Releases 和 Sources 文件的更新频率,且任何文件只下载一次,不管实际向代理请求了几次。 apt-cacher 会基于经过代理的请求自动构建一个 Debian HTTP 镜像。
当然,如果您已经在使用标准的缓存代理,且您的所有系统都已经配置好使用它,您也能得到一样的结果。