第 3 章 更新系统和包管理

目录

3.1. 更新 SUSE Linux
3.2. 版本间的软件更改
3.3. RPM — 包管理器

摘要

SUSE Linux 使您可以更新现有系统而不用完全重安装系统。更新有两种类型:更新个别的软件包更新整个系统。还可以使用包管理器 RPM 手工安装包。


3.1. 更新 SUSE Linux

从旧版本到新版本,软件的大小有增长的趋势。因此,在进行更新之前,请使用 df 查看可用分区空间。如果您怀疑磁盘空间不足,请在进行更新和重分区系统前保护好您的数据。对于每个分区应该具有多少空间,没有一般的经验可以借鉴。空间需求取决于特定的分区配置文件、所选的软件和 SUSE Linux 的版本号。

3.1.1. 准备工作

在进行更新之前,将以前的配置文件复制在单独的媒体上(例如 Streamer、可移动硬盘、USB stick 或 ZIP 驱动器)以保护数据。这主要适用于储存在 /etc 中的文件以及 /var/opt 中的一些目录和文件。最好将 /homeHOME 目录)中的用户数据也写入备份媒体。以 root 用户的身份备份此数据。只有 root 用户具有读取所有本地文件的权限。

在开始更新之前,记录必要的根分区信息。命令 df / 可以列出根分区的设备名。在例 3.1 “使用 df -h 列示信息”中,要记录的根分区是 /dev/hda3(作为 / 装入)。

例 3.1. 使用 df -h 列示信息

Filesystem     Size  Used Avail Use% Mounted on
/dev/hda3       74G   22G   53G  29% /
tmpfs          506M     0  506M   0% /dev/shm
/dev/hda5      116G  5.8G  111G   5% /home
/dev/hda1       39G  1.6G   37G   4% /windows/C
/dev/hda2      4.6G  2.6G  2.1G  57% /windows/D

3.1.2. 可能的问题

如果将默认系统从上一版本更新到这一版本,则 YaST 分析出所需更改并执行更改。根据您的自定义,一些更新步骤或整个更新过程都可能失败,此时必须将备份数据复制回来。在此,指出了在系统更新开始前要检查的更多问题。

3.1.2.1. 检查 /etc 中的 passwd 和 group

在更新系统之前,确保 /etc/passwd/etc/group 不包含任何语法错误。为此,以 root 用户身份启动校验实用程序 pwckgrpck 并消除任何报告的错误。

3.1.2.2. PostgreSQL

在更新 PostgreSQL (postgres) 之前,先转储数据库。请参见 pg_dump 的手册页。只有当实际上是在更新之前使用了 PostgreSQL 时才需要执行此操作。

3.1.3. 使用 YaST 进行更新

完成了第 3.1.1 节 “准备工作”中介绍的准备过程后便可以开始更新系统了:

  1. 像进行安装时那样引导系统,如第 1.1 节 “系统启动以进行安装” (↑启动)中所述。在 YaST 中,请选择语言并在安装方式对话框中选择更新。不要选择全新安装

  2. YaST 确定是否有多个根分区。如果只有一个根分区,则继续下一步。如果有多个根分区,则选择正确的分区并单击下一步第 3.1.1 节 “准备工作”的示例中选中了 /dev/hda3)进行确认。YaST 在此分区中读取旧的 fstab 进行分析,并装入此处列出的文件系统。

  3. 安装设置对话框中,请根据需要调整设置。通常情况下,可保留默认设置不动,但如果要增强系统,则选中软件选择子菜单中提供的包或添加其它语言支持。

    您也可以备份各种系统组件。选择备份将降低更新进程的速度。如果没有最近的系统备份,则使用此选项。

  4. 在随后的对话框中,选择只更新已安装的软件或将新软件部件添加到系统中(升级方式)。最好接受建议的组合,例如,基于选择“包含 KDE 的标准系统”进行更新“包含 GNOME 的标准系统”。以后可以使用 YaST 进行调整。

3.1.4. 更新个别的包

您总是可以更新个别的包,而不考虑整体已更新的环境。但是,从此开始您需要确保系统仍处于一致状态。http://www.novell.com/linux/download/updates/ 中提供了更新建议。

根据您的需要从 YaST 包选择列表中选择组件。如果选择的是对系统整体操作至关重要的包,则 YaST 将发出一个警告。只能在更新方式中更新此类包。例如,许多包包含共享库。如果在正在运行的系统中更新这些程序和应用程序,则系统可能会出现故障。