更新 SUSE Linux Enterprise

目录

7.1. 更新 SUSE Linux Enterprise
7.2. 部署服务包
7.3. 原子更新
7.4. 从 V 11 到 V 11 SP1 的软件更改

摘要

SUSE® Linux Enterprise 使您可以将现有系统更新为新版本而不用完全重安装系统。 不需新安装。 用户主目录和系统配置等旧数据保持不变。 在产品使用周期内,您可以使用“服务包”提高系统安全性和更正软件缺陷。 从本地 DVD 驱动器或中央网络安装源安装。

更新 SUSE Linux Enterprise

如果要从 SUSE Linux Enterprise Server 10 SP3 或 11 GA 升级到 SUSE Linux Enterprise Server 11 SP1,请按照本部分所列步骤进行操作。请先确保将旧系统更新为最新的增补程序级别。

[Note]系统版本要求

有关升级到此版本的具体系统版本要求,请参考更新产品随附的发行说明。在发行说明中,您可以找到有关升级过程的详细信息。

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

准备工作

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

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

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

Filesystem     Size  Used Avail Use% Mounted on
/dev/sda3       74G   22G   53G  29% /
tmpfs          506M     0  506M   0% /dev/shm
/dev/sda5      116G  5.8G  111G   5% /home
/dev/sda1       44G    4G   40G   9% /data

可能的问题

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

检查 /etc 中的 passwd 和 group

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

PostgreSQL

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

使用 YaST 进行更新

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

  1. (可选)准备安装服务器。 有关背景信息,请参见 第 14.2.1 节 “使用 YaST 设置安装服务器”

  2. 像进行安装时那样引导系统,如 第 6.5 节 “系统启动以进行安装” 中所述。 在 YaST 中,请选择语言并在安装方式对话框中选择更新。 不要选择全新安装。另外,还需添加安装源以确保所有可用的软件都得到更新。有关安装的安装源的更多信息,请参见第 6.10.1 节 “外接式附件产品”

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

    [Warning]永久设备名称

    /etc/fstab 中的条目用于指定哪些分区要使用内核设备名称装入,在执行更新前所有条目都必须更改为任何其他受支持的方法。内核设备名称不是永久的,因此在更新过程中的使用是不可靠的。上述操作可以使用 YaST 专家分区程序,更改 fstab 选项设置中使用的方法来完成;有关更多信息,请参见第 15.1 节 “使用 YaST 分区程序”

  4. 检查以前使用的安装源(如果有)。启用所有仍要使用和要更新第三方软件的安装源。根据需要单击每个列表项的转换状态

  5. 如果在升级过程中按上述建议添加安装源,现在就可激活您真正感兴趣的安装源。

  6. 安装设置对话框中,请根据需要调整设置。 通常,大多数默认设置都不用更改。在更新选项中,考虑选择安装新软件和功能以执行更新。如果想要进一步增强系统功能,请选择子菜单中提供的软件,或添加其他语言的支持。但是,那些调整也可以随后与 YaST 一起进行。

    您也可以备份各种系统组件。选择备份将会减慢升级速度。如果没有最近的系统备份,则使用此选项。

  7. 单击开始更新以确认升级。

完成基本升级安装后,如 YaST 对话框中所提供的测试因特网连接。最后,YaST 会更新其余软件并显示发行说明。单击完成以写入 YaST 配置。

用 zypper 升级分发包

zypper 命令行实用程序,可以将分发包升级到下一个版本。最为重要的是,您可以在正在运行的系统中启动系统升级过程。

此功能适用于要运行远程升级或在多数配置类似的系统上运行升级的高级用户。无经验的用户会首选用第 7.1.3 节 “使用 YaST 进行更新”中介绍的 YaST 进行升级。

开始用 zypper 升级前

为了避免在用 zypper 升级过程中出现意外错误,请尽可能减少有风险的操作。

从上一个版本 (SUSE Linux Enterprise 11) 升级到此版本 (SUSE Linux Enterprise 11 SP1),不要跳过中间的任何服务包版本,也就是说不要一次性从 SUSE Linux Enterprise 10 SP3 或更低版本升级到此服务包 (SUSE Linux Enterprise 11 SP1) 或从 SUSE Linux Enterprise 11 升级到 SUSE Linux Enterprise 11 SP2(如果可用)。请先确保所有可用的联机更新都已成功应用,再开始系统升级。

尽量关闭应用程序和不必要的服务,并注销所有普通用户。

在开始升级前禁用第三方安装源,或降低这些安装源的优先级,以确保来自默认系统安装源的包具有优先权。完成升级后重新启用它们,并编辑版本字符串,使其与已升级的运行中系统的分发包版本号匹配。

升级过程

[Warning]检查系统备份

在真正开始升级过程前,请检查系统备份是否为最新且可恢复。因为以下许多步骤都必须手动输入,所以这一点尤其重要。

  1. 运行联机更新以确保软件管理堆栈为最新的。有关详细信息,请参见第 1 章 YaST 联机更新 (↑管理指南)。

  2. 配置要用作更新源的安装源。拥有此权限至关重要。使用 YaST(参见第 9.3 节 “管理软件安装源和服务”)或 zy per(参见第 4.1 节 “使用 Zypper” (第 4 章 使用命令行工具管理软件, ↑管理指南))。

    [Tip]安装源名称

    以下步骤中用到的安装源名称可能因您的自定义而有所不同。

    考虑准备或更新自己的安装服务器。有关背景信息,请参见 第 14.2.1 节 “使用 YaST 设置安装服务器”

    要查看当前的安装源,请输入:

    zypper lr -u
    
    1. 将系统安装源版本号从 11 增加到 11-SP1;用以下命令添加新的 11_SP1 安装源:

      server=http://download.example.org
      zypper ar $server/distribution/11-SP1/repo/oss/ SLE-11-SP1
      zypper ar $server/update/11-SP1/ SLE-11-SP1-Update
      

      并且删除旧安装源:

      zypper rr SLE-11
      zypper rr SLE-11-Update
      
    2. 禁用第三方安装源或其他 openSUSE 构建服务安装源,因为 zypper dup 只能保证与默认安装源一起工作:

      zypper mr -d repo-alias
      

      或者,您也可以降低这些安装源的优先级。

      [Note]处理未解决的依赖性

      zypper dup 会删除所有具有未解决的依赖性的包,但只要依赖性要求符合,它就会保留已禁用安装源的包。

      zypper dup 保证了所有安装的包都来自某个可用的安装源。它不考虑已安装包的版本、体系结构或供应商,因此它仿效全新安装。安装源中不再可用的包会当作孤立包。如果这些包的依赖性不能满足,则会卸装它们。如果这些包的依赖性能够满足,则不会卸装它们。

    3. 完成后,用以下项检查安装源配置:

      zypper lr -d
      
  3. zypper ref 刷新本地元数据和安装源内容。

  4. zypper in zypper 从 11 SP1 安装源进入 zypper。

  5. zypper dup 运行实际的分发包升级。系统会要求您确认 SUSE Linux Enterprise 和一些包的许可证,具体取决于已安装包的设置。

  6. SuSEconfig 执行基本系统配置。

  7. shutdown -r now 重引导系统。

部署服务包

用服务包更新一个 SUSE Linux Enterprise 安装。 有几种不同方法可以应用服务包。 即可更新现有的安装,也可用服务包媒体开始全新安装。 第 14.2 节 “设置存放安装源的服务器”介绍更新系统和设置中央网络安装源的可能情形。

[Tip]安装更改

阅读服务包媒体里的安装指导以进一步了解更改。

安装服务包

[Note]

要将现有 SUSE Linux Enterprise 11 系统升级为 SUSE Linux Enterprise 11 服务包 (SP),请参见第 7.2.2 节 “升级到服务包(迁移)”

安装 SUSE Linux Enterprise 服务包与安装原始 SUSE Linux Enterprise 媒体的方法很类似。 在原始安装中,可选择从本地 DVD 驱动器或中央网络安装源安装。

从本地 DVD 驱动器安装

在开始 SUSE Linux Enterprise SP 的新安装之前,请确保所有的服务包安装媒体 (DVD) 都可用。

过程 7.1. 从服务包媒体引导

  1. 插入第一张 SUSE Linux Enterprise SP 媒体后引导计算机。一个类似于 SUSE Linux Enterprise 11 原始安装的引导屏幕就会出现。

  2. 选择安装并按照第 6 章 使用 YaST 进行安装中的 YaST 安装说明所述继续。

网络安装

在启动 SUSE Linux Enterprise SP 网络安装前,确认满足以下要求:

网络安装 - 从 DVD 引导

要用 SP DVD 作为引导媒体执行网络安装,请执行如下操作:

  1. 插入 SUSE Linux Enterprise SP DVD 1 后引导计算机。一个类似于 SUSE Linux Enterprise 11 原始安装的引导屏幕就会出现。

  2. 单击安装引导 SP 内核,然后使用 F3 选择网络安装源的类型(FTP、HTTP、NFS 或 SMB)。

  3. 提供相应的路径信息或选择 SLP 作为安装源。

  4. 从所提供的服务器里选择相应的安装服务器,或用引导选项提示提供安装源类型和实际地址(如 第 6.1.2 节 “从没有 SLP 的网络源安装” 中所示)。 YaST 启动。

    第 6 章 使用 YaST 进行安装中所述完成安装。

网络安装 - PXE 引导

要通过网络执行 SUSE Linux Enterprise 服务包网络安装,请执行以下操作:

  1. 按照第 14.3.5 节 “准备目标系统的 PXE 引导”调整您的 DHCP 服务器设置以提供 PXE 引导需要的地址信息。

  2. 设置 TFTP 服务器来储存 PXE 引导需要的引导映像。

    用 SUSE Linux Enterprise 服务包的第一张 CD 或 DVD 执行此操作,或按照第 14.3.2 节 “设置 TFTP 服务器”的说明进行。

  3. 在目标计算机上准备 PXE 引导和局域网唤醒。

  4. 对目标系统引导进行初始化,并用 VNC 远程连接到此计算机正运行的安装例程上。 有关更多信息,请参见第 14.5.1 节 “VNC 安装”

  5. 接受许可协议,然后选择语言、默认桌面以及其他安装设置。

  6. 单击是,安装开始安装。

  7. 照常继续安装(输入 root 的密码,完成网络设置,检测网络连接,激活联机更新服务,选择用户身份验证方法并输入用户名和密码)。

    有关安装 SUSE Linux Enterprise 的详细说明,请参见 第 6 章 使用 YaST 进行安装

升级到服务包(迁移)

将系统升级到服务包 (SP) 功能级别有两种首选方法。一种方法是从 SP 媒体引导。另一种方法是运行“YaST 联机更新”或桌面更新小程序,然后选择更新到服务包 X 增补程序。通过更新到新的功能级别,可为系统提供新驱动程序或软件增强等附加功能。

[Warning]请勿忽略更新到服务包增补程序

如果没有选择更新到服务包增补程序,系统将保持先前的功能级别,且您将只在有限的时间内(对于 SUSE Linux Enterprise 11 GA,该期限现在延长到六个月)获得 bug 修复和安全更新。因此,为了获得持续系统完整性,建议尽早切换到新功能级别。

其他升级方法有手动运行 zypper 命令、使用增补程序 CD,或使用本地安装的 SMT 系统。

[Note]

在 System z 系统上,增补程序 CD 更新选项不可用。

从 SP 媒体引导以进行更新

从 SP 媒体引导并选择更新作为 YaST 中的安装方式。关于详细信息和如何完成更新,请参见第 7.1.3 节 “使用 YaST 进行更新”

使用 YaST 联机更新

在启动 YaST 联机更新以更新到 SP 功能级别之前,请确保符合以下要求:

  • 整个更新过程中系统必须联机,因为此过程需要访问 Novell Customer Center。

  • 如果安装涉及第三方软件或附加软件,请在另一台计算机上测试此过程,以确保更新不会破坏相关性。

  • 确保整个过程成功完成。否则系统将不一致。

[Tip]使用 YaST 联机迁移

或者,您还可以使用 YaST 联机迁移过程。以 root 用户身份从命令行使用 yast2 wagon 启动它。

图 7.1. 包管理更新

包管理更新

图 7.2. 更新到 Service Pack

更新到 Service Pack

[Note]

在使用 YaST 联机更新升级迁移的过程中,包管理堆栈进行了更新。因此,建议避免使用诸如 zypper 或桌面更新小程序的任何其他软件管理工具。建议迁移期间停止桌面更新小程序。

  1. 在运行的 SUSE Linux Enterprise 系统中,选择计算机+YaST+软件+联机更新

    如果不是以 root 用户登录,系统提示时输入 root 密码。

  2. 则显示联机更新对话框。 会预先选择几个增补程序。向下滚动增补程序列表并校验已预先选择了服务包更新触发器。然后按应用以安装选定更新。

  3. 确认安装后,联机更新会自动重启动。

  4. 重启动后,按接受以应用所有可用更新和一个新内核。安装后,必须重引导系统。

  5. 在重启动的联机更新中,现在应向下滚动增补程序列表并选择更新到服务包 (slessp0-sle11-sp1-migration),如图 7.2 “更新到 Service Pack”中所示。确认选择。

    slessp0-sle11-sp1-migration 增补程序标有可选字样。如果没有选择它,您的系统将停留在 GA 功能级别,且您将只能在有限的时间里(SP1 可用后六个月)获得 bug 修复和安全更新。

  6. 增补程序下载和安装对话框跟踪迁移增补程序安装的进展日志。当总进度达到 100% 时,它会自动完成。

  7. 重引导系统。

使用 zypper

如果需要脚本可编写的解决方案用于更新,请使用 zypper

请先确保满足第 7.2.2.2 节 “使用 YaST 联机更新”中列出的要求,再使用 zypper 启动联机更新以更新到 SP 功能级别。

下面是将系统迁移到 SP1 增补程序级别所需的最小命令序列:

zypper ref -s                 1
zypper up -t patch            2
zypper up -t patch            3
grep '<product>' /etc/products.d/*.prod        4
zypper in -t product SUSE_SLES-SP1-migration   5
suse_register -d 2 -L /root/.suse_register.log 6
zypper ref -s                  7
zypper mr --disable repo-alias 8
zypper mr --enable  repo-alias 9
zypper dup                     10 
suse_register -d 2 -L /root/.suse_register.log 11
reboot

1

刷新所有服务和安装源。

2

更新增补程序,尤其是包管理堆栈。

3

使用刚刚更新的包管理堆栈更新其余增补程序。

4

读取迁移产品信息...

5

...并使用以前获取的名称进行安装。

6

注册产品。

7

刷新所有服务和安装源。

8

禁用旧安装源 (GA)。

9

启用新安装源 (SP1)。

10

用 zypper 升级分发包。

11

重新注册新产品。它会将旧 GA 替换为新 SP1 更新安装源。

原子更新

原子更新所基于的工具能够管理系统的两个副本,并在更新失败后可以轻松地恢复系统。提供的工具需要特殊的磁盘分区设置。每个系统副本都驻留在自己的主分区上。如果更新失败,总是可以转换回以前的系统状态,该系统状态在其他分区上。

设置

[Warning]严格的分区要求

磁盘分区的实施有严格的要求,第一个 root 分区是 /dev/sda1,占用空间不得超过整个磁盘大小的一半。然后工具会为系统的第二个 root 分区创建 /dev/sda2。 其他分区(如果有)在两个 root 分区的基础上共享大小,即要考虑 root 分区的大小,并相应减小第一个分区的大小;大致计算方法如下:

整个磁盘大小减去 sda1sda2 等于其他分区的可用空间。

  1. /dev/sda1 作为单个 root 分区安装系统,其空间小于整个磁盘大小的一半。

  2. 根据需要自定义已安装系统。确保 multi-update-tools 包已安装。

  3. 运行 multi-update-setup --partition,创建大小类似的第二个 root 分区 (/dev/sda2)。

  4. 根据需要对剩余磁盘空间分区,并继续自定义 (*)。

  5. 运行 multi-update-setup --clone 将系统复制到其他分区。用此命令还可以更改目标系统 /etc/fstab 中的 /(root) 条目。

  6. 如果需要,请执行进一步自定义 (*)。

  7. 运行 multi-update-setup --bootloader 初始化引导加载程序设置。这样引导加载程序菜单就会包含引导另一个系统的条目。

    [Warning]强制安装 GRUB 引导加载程序

    安装 GRUB 引导加载程序是强制性的。这些工具与其他引导加载程序不兼容。

  8. 如果没有对标有 (*) 的项进行自定义,请运行 multi-update-setup --complete 执行所有三个步骤。

更新另一个系统

运行 multi-update。此命令在 chroot 环境中运行 zypper,更新另一个系统 - 不管哪一个处于活动状态。其引导菜单在引导时作为默认值提供。

查错

如果更新的系统在更新后具有损坏的引导加载程序,必须更改活动标志,将该标志分配给另一个系统的 root 分区,以便可以引导系统。

如果更新的系统根本无法引导,则需要访问引导加载程序菜单以选择另一个系统。

有关 GRUB 的更多信息,请参见第 8 章 引导加载程序 GRUB (↑管理指南)。

更多信息

有关更多信息,请参见随 multi-update-tools 包一起提供的 /usr/sha e/doc/packages/multi-update-tools/README

从 V 11 到 V 11 SP1 的软件更改

[Note]从 SLES 11 到 SLES 11 SP 1 的软件更改

要查看从 SUSE Linux Enterprise Server 11 到 SUSE Linux Enterprise Server 10 SP1 的软件和配置更改的详细列表,请参见服务包的发行说明。在已安装的系统中用 YaST 发行说明模块查看它们。