第 8 章 - 更新系统

优质
小牛编辑
118浏览
2023-12-01

Debian 的设计目标之一就是提供一致的升级途径和安全的升级过程. 我们一直尽力于平滑升级过程的实现. 如果升级过程中软件包将会对重要的注意事项警告用户, 并提供一个可能的解决方法.

你也应该阅读 Debian CD 上的发行记录, 该文档对升级作了详细描述,也可从http://www.debian.org/releases/stable/releasenotes处获得该文档.

8.1 把基于 libc5 的 Debian1.3.1(或更低)升级到基于 libc6 的2.0版(或更高)?

有几种升级的方法:

  • 下边的方法与 Debian libc5 to libc6 Mini-HOWTO 方法很接近, 手动升级大部分的重要软件包. autoup.sh 就是基于 Mini-HOWTO 的, 因此这种方法和使用 autoup.sh 差不多.

  • 使用基于 libc5 的 apt. APT 是一个有可能替代 dselect 的软件包工具. 现在的 APT 与 dselec 不同, 是命令行界面你可以在 Debian 的 dists/slink/main/upgrade-older-i386 目录下找到基于 libc5 的版本.

  • 在没有手动升级任何软件包的情况下, 使用 dselect. 如果可以不使用, 建议用户尽量不要使用这种方法 .因为 dselect 并不是使用优化的顺序来安装软件包, APT 要安全的多.

8.2 更新我的系统?

可以简单的匿名登录到 Debian 的 FTP, 找到自己想要的文件包, 把它下载下来,然后用 dpkg 安装. 注意, dpkg 会进行升级安装, 即使这个软件正在运行. 有时候安装修正包需要另一个包的修正版本. 这样的话, 安装就会停止, 直到另一个包被安装.

很多人认为这种方法过于浪费时间. 因为 Debian 升级太快, 每周都有很多新软件上载. 在一个新版本发行前会更多. 因此, 许多用户希望使用更加自动的方法. 有几个软件包可以实现这种目的:

8.2.1 APT

APT 是 Debian 文件系统的高级界面. apt-get 是处理软件包的命令行工具, APT dselect 是 dselect 的 APT 接口, 提供了一个简单的, 安全的安装和升级软件包的方法.

APT 的特性包括: 定制式安装, 多安装源支持, 还有其它一些特点. 见用户指南 /usr/share/doc/apt/guide.html/index.html.

首先安装 apt 软件包, 编辑 /etc/apt/sources.list 并使之生效, 如果你想升级到 Debian 最新稳定版, 可以使用类似这样的安装源:

     http://http.us.debian.org/debian stable main contrib non-free

可以用其它你附近较快的 Debian 镜像来替换 http.us.debian.org 更多信息见 http://www.debian.org/misc/README.mirrors.

更多细节参见 apt-get(8)sources.list(8) 联机手册, 以及前边提到的/usr/share/doc/apt/guide.html/index.html处的用户指南.

然后运行

     apt-get update

接着

     apt-get dist-upgrade

回答每一个可能出现的问题, 完成系统升级.

dselect中使用APT, 在 dselect 的方法选择屏幕选择APT存取方法. 然后指定要用的安装源, 配置文件是 /etc/apt/sources.list, 其格式在 sources.list(5) 联机手册有详细描述.

果你要从 CD 安装软件包, 可以使用 apt-cdrom. 更多细节见发行备忘录的"本地镜像升级的设定"章节.

注意安装完成后, 你下载用于安装的包仍然在你的 /var 目录下, 要释放空间, 记得用apt-get cleanapt-get autoclean 将它们删除或移到别的地方(提示:使用 apt-move).

8.2.2 dpkg-ftp

这是 dselect 中较老的一个方法. 可以从 dselect 中调用, 因此允许用户使用它直接下载安装软件, 在dselect 选择 ftp 存取模式指定远程主机名和目录, 那么 dpkg-ftp 就会自动下载选中的软件包.

注意, 和 mirror 程序不同, dpkg-ftp 不会抓取镜像站点的所有东西, 而是仅仅下载你(启动时)选择的软件包, 然后将它们升级.

dpkg-ftp is somewhat obsolete. You should use the APT access method with ftp:// URLs in sources.list instead.

8.2.3 mirror

一个 Perl 脚本, 和其称作 mirror-master 的管理程序, 用来通过匿名 FTP 从指定的主机上下载目录树中用户指定的部分.

mirror 对于下载大量软件包非常有用. 从站点上下载的软件被保存成一个称作 .mirrorinfo 的文件, 存在本地. mirror 自动跟踪远端文件系统的变化, 并与这个文件比较, 并下载不同部分.

mirror 程序对于升级远端目录树在本地的拷贝非常有用, 下载的文件不一定是 Debian 格式文件. (mirror是一个 Perl 脚本, 因此也可以在非 UNIX 系统上运行). 尽管 mirror 程序提供了排除文件名中和用户指定字符串匹配的机制, 这个程序相对于选择性下载, 对于下载整个目录树更有用.

8.2.4 dpkg-mountable

dpkg-mountable 为 dselect 增加了一个称作 `mountable' 的存取方法. 允许你从任何一个在 /etc/fstab 指定的文件系统安装, 例如, 文档系统可以是普通的硬盘分区或 NFS 服务器, 可以必要时自动挂接或卸掉.

还有一些特性并不能在标准 dselect 方法中找到, 比如提供本地文件树(可以同主发行版并行或者分开), 和仅下载需要的软件包, 而不是费时的对整个目录反复扫描, 和记录所有安装软件包的作用.

8.3 升级软件必须是单用户模式吗?

不. 即使在运行状态的软件包也可以升级. Debian 有一个 start-stop-daemon 程序, 升级过程中必要时, 用于停止, 启动运行的进程.

8.4 需要在硬盘上保留所有的 .deb 吗?

不. 如果你把文件下载到了你的硬盘上(不是必须的,详见 dpkg-ftp 的描述), 安装完成后, 可以把它们删除.

8.5 添加软件日志?

dpkg 保留一个已经解包, 设置, 删除 和/或 完全删除的包的记录, 但当一个包被处理时不保存当前终端的记录.

最简单的办法就是让它记录 dpkg/dselect/apt-get/ 的在 script(1) 里的所有会话.