本书将引导您完成 SUSE Linux Enterprise Server 的升级。如果您使用 SUSE Linux Enterprise Server 作为其他 SLE 产品或扩展的基础系统,另请参见这些产品的文档,以了解此产品或扩展特定的升级信息。
版权所有 © 2006–2024 SUSE LLC 和贡献者。保留所有权利。
根据 GNU 自由文档许可 (GNU Free Documentation License) 版本 1.2 或(根据您的选择)版本 1.3 中的条款,在此授予您复制、分发和/或修改本文档的权限;本版权声明和许可附带不可变部分。许可版本 1.2 的副本包含在题为“GNU Free Documentation License”的部分。
有关 SUSE 商标,请参见 https://www.suse.com/company/legal/。所有其他第三方商标分别为相应所有者的财产。商标符号(®、™ 等)代表 SUSE 及其关联公司的商标。星号 (*) 代表第三方商标。
本指南力求涵盖所有细节,但这不能确保本指南准确无误。SUSE LLC 及其关联公司、作者和译者对于可能出现的错误或由此造成的后果皆不承担责任。
前言 #
1 可用文档 #
- 联机文档
https://documentation.suse.com/#sles 上提供了此产品的相关联机文档。您可浏览或下载各种格式的文档。
https://documentation.suse.com/ 上提供了其他产品的相关联机文档。
注意:最新更新最新的文档更新通常会在文档的英文版中提供。
- 发行说明
有关发行说明,请参见 https://www.suse.com/releasenotes/。
- 在您的系统中
要以脱机方式使用,请参见安装的系统中
/usr/share/doc
下的文档。许多命令的手册页中也对相应命令进行了详细说明。要查看手册页,请运行man
后跟特定的命令名。如果系统上未安装man
命令,请使用sudo zypper install man
加以安装。
2 改进文档 #
欢迎您提供针对本文档的反馈及改进建议!我们提供了多种反馈渠道:
- 服务请求和支持
有关产品可用的服务和支持选项,请参见 https://www.suse.com/support/。
要创建服务请求,需在 SUSE Customer Center 中获取一个订阅。请转到 https://scc.suse.com/support/requests 并登录,然后单击 。
- Bug 报告
在 https://bugzilla.suse.com/ 中报告文档问题。要简化此过程,可以使用本文档 HTML 版本中的标题旁边的 链接。这样,就会在 Bugzilla 中预先选择正确的产品和类别,并添加当前章节的链接。然后,您便可以立即开始键入 Bug 报告。需要一个 Bugzilla 帐户。
- 贡献
要帮助改进本文档,请使用本文档 HTML 版本中的标题旁边的
链接。这些链接会将您转到 GitHub 上的源代码,在其中可以创建拉取请求。需要一个 GitHub 帐户。有关本文档使用的文档环境的详细信息,请参见储存库的 README。
- 邮件
另外,您也可以将有关本文档中的错误以及相关反馈发送至:<doc-team@suse.com>。请确保反馈中含有文档标题、产品版本和文档发布日期。请引用相关的章节号和标题(或者包含 URL),并提供问题的简要说明。
3 文档约定 #
本文档中使用了以下通知和排版约定:
/etc/passwd
:目录名称和文件名PLACEHOLDER:PLACEHOLDER 将会替换为实际的值
PATH
:环境变量 PATHls
、--help
:命令、选项和参数用户
:用户和组软件包名称 :软件包名称
Alt、Alt–F1:按键或组合键;这些键以大写形式显示,如在键盘上一样
AMD/Intel 本段内容仅与 AMD64/Intel 64 体系结构相关。箭头标记文本块的开始位置和结束位置。
IBM Z, POWER 本段内容仅与
IBM Z
和POWER
体系结构相关。箭头标记文本块的开始位置和结束位置。跳舞的企鹅(企鹅一章,↑其他手册):此内容参见自其他手册中的一章。
必须使用
root
特权运行的命令。您往往还可以在这些命令前加上sudo
命令,以非特权用户身份来运行它们。root #
command
tux >
sudo
command
可以由非特权用户运行的命令。
tux >
command
注意
警告:警报通知在继续操作之前,您必须了解的不可或缺的信息。向您指出有关安全问题、潜在数据丢失、硬件损害或物理危害的警告。
重要:重要通知在继续操作之前,您必须了解的重要信息。
注意:注意通知额外信息,例如有关软件版本差异的信息。
提示:提示通知有用信息,例如指导方针或实用性建议。
4 支持 #
下面提供了 SUSE Linux Enterprise Server 的支持声明和有关技术预览的一般信息。有关产品生命周期的细节,请参见第 2 章 “生命周期和支持”。
如果您有权获享支持,可在Book “管理指南”, Chapter 39 “收集系统信息以供支持所用”中查找有关如何收集支持票据所需信息的细节。
4.1 SUSE Linux Enterprise Server 支持声明 #
要获得支持,您需要一个适当的 SUSE 订阅。要查看为您提供的具体支持服务,请转到 https://www.suse.com/support/ 并选择您的产品。
支持级别的定义如下:
- L1
问题判定,该技术支持级别旨在提供兼容性信息、使用支持、持续维护、信息收集,以及使用可用文档进行基本查错。
- L2
问题隔离,该技术支持级别旨在分析数据、重现客户问题、隔离问题领域,并针对级别 1 不能解决的问题提供解决方法,或作为级别 3 的准备级别。
- L3
问题解决,该技术支持级别旨在借助工程方法解决级别 2 支持所确定的产品缺陷。
对于签约的客户与合作伙伴,SUSE Linux Enterprise Server 将为除以下软件包外的其他所有软件包提供 L3 支持:
技术预览。
声音、图形、字体和作品。
需要额外客户合同的软件包。
工作站扩展模块随附的某些软件包仅享受 L2 支持。
名称以 -devel 结尾的软件包(包含头文件和类似的开发人员资源)只能同其主软件包一起接受支持。
SUSE 仅支持使用原始软件包,即,未发生更改且未重新编译的软件包。
4.2 技术预览 #
技术预览是 SUSE 提供的旨在让用户大致体验未来创新的各种软件包、堆栈或功能。随附这些预览只是为了提供方便,让您有机会在自己的环境中测试新的技术。非常希望您能提供反馈!如果您测试了技术预览,请联系 SUSE 代表,将您的体验和用例告知他们。您的反馈对于我们的未来开发非常有帮助。
但是,技术预览存在以下限制:
技术预览仍处于开发阶段。因此,它们的功能可能不完备、不稳定,或者在其他方面不适合用于生产。
技术预览不受支持。
技术预览可能仅适用于特定的硬件体系结构。
技术预览的细节和功能可能随时会发生变化。因此,可能无法升级到技术预览的后续版本,而只能进行全新安装。
我们随时可能会放弃技术预览。例如,如果 SUSE 发现某个预览不符合客户或市场的需求,或者不能证明它符合企业标准,则可能会放弃该预览。SUSE 不承诺未来将提供此类技术的受支持版本。
有关产品随附的技术预览的概述,请参见 https://www.suse.com/releasenotes/ 上的发行说明。
1 升级路径和方法 #
SUSE® Linux Enterprise (SLE) 允许您将现有系统升级到新版本,例如,从 SLE 12 SP4 升级到最新的 SLE 15 服务包。不需新安装。主目录和数据目录以及系统配置等现有数据将保持不变。您可以从本地 CD 或 DVD 驱动器或从中央网络安装源进行更新。
本章介绍如何通过 DVD、网络、自动化过程或 SUSE Manager 手动升级 SUSE Linux Enterprise 系统。
1.1 升级与全新安装 #
SUSE 支持在两个 SUSE Linux Enterprise Server 主要版本之间进行升级。是进行升级还是执行全新安装更好,这取决于特定的场景。虽然升级所涉及的工作较少,但全新安装可以确保您能够得益于相应版本的所有新功能,例如磁盘布局更改、特定文件系统特性和其他改进。因此,为了充分利用您的系统,SUSE 建议在大多数情况下都执行全新安装。
无论是执行升级还是全新安装,客户都需要检查系统设置和默认值是否仍然满足其要求。
如果要从特定版本的某个服务包更新到相同代码流的另一个服务包,SUSE 建议进行就地更新,而不是全新安装。虽然如此,在这种情况下,客户也可能会出于某些原因和情形而执行全新安装。只能由客户来决定哪种方式更合适。
1.2 支持的 SLES 15 SP3 升级路径 #
在执行任何迁移操作之前,请阅读第 3 章 “准备升级”。
不支持跨体系结构升级!例如从 32 位版本的 SUSE Linux Enterprise Server 升级到 64 位版本,或者从大字节序升级到小字节序。
具体而言,从 SLE 11 on POWER(大字节序)升级到 SLE 15 SP3 on POWER(新增:小字节序)不受支持。
另外,由于 SUSE Linux Enterprise 15 只有 64 位版本,因此不支持从任何 32 位 SUSE Linux Enterprise 11 系统升级到 SUSE Linux Enterprise 15 和更高版本。
要跨体系结构升级,需执行全新安装。
最简单的升级路径是按顺序安装所有服务包。对于 SUSE Linux Enterprise 15 产品系列(GA 和后续服务包),还支持在升级时跳过某个服务包。例如,支持从 SLE 15 GA 升级到 15 SP2,或从 SLE 15 SP1 升级到 15 SP3。
此处所述的升级路径只适用于作为计算机操作系统的 SUSE Linux Enterprise,而不适用于其运行的所有应用程序。如果您使用了 PostgreSQL 或 MariaDB 数据库等工作负载,则可能需要进行中间操作系统升级以升级您的数据库。
升级操作系统之前,请参见发行说明以了解有关数据库版本的信息。如果提供了新的主要版本,请参见第 3 章 “准备升级”以了解升级说明。
- 从 SUSE Linux Enterprise Server 11 GA/SP1/SP2/SP3/SP4 升级
不支持从 SLES 11 SP4 或更早的服务包直接升级。您的版本至少需为 SLES 11 SP4 LTSS,才能升级到 SLES 15 SP3。
如果您无法执行全新安装,请先将已安装的 SLES 11 服务包升级到 SLES 11 SP4 LTSS。《SLES 11 SP4 部署指南》中介绍了此升级过程。
- 从 SUSE Linux Enterprise Server 11 SP4 LTSS 升级
要从 SLES 11 SP4 升级,仅支持采用脱机升级方式。有关细节,请参考第 4 章 “脱机升级”。
- 从 SUSE Linux Enterprise Server 12 GA/SP1/SP2/SP3/SP4 升级
不支持从 SLES 12 SP4 或更早的服务包直接升级。您的版本至少需为 SLES 12 SP5,才能升级到 SLES 15 SP3。
如果您无法执行全新安装,请先将已安装的 SLES 12 服务包升级到 SLES 12 SP5。《SLES 12 SP5 部署指南》中介绍了此升级过程。
- 从 SUSE Linux Enterprise Server 12 SP3 LTSS/SP4 LTSS 升级
仅支持采用脱机升级方式从 SLES 12 SP3 LTSS 或 SP4 LTSS 升级。有关细节,请参考第 4 章 “脱机升级”。
- 从 SUSE Linux Enterprise Server 12 SP5 升级
要从 SLES 12 SP5 升级,仅支持采用脱机升级方式。有关细节,请参考第 4 章 “脱机升级”。
- 从 SUSE Linux Enterprise Server 15 GA 升级
不支持直接从 SLES 15 GA 升级。您的版本至少需为 SLES 15 SP1,才能升级到 SLES 15 SP3。
- 从 SUSE Linux Enterprise Server 15 SP1/SP2 升级
支持采用联机和脱机方式从 SLES 15 SP1 或 SP2 升级。有关细节,请参考第 1.3 节 “联机和脱机升级”。
- 升级 SUSE Linux Enterprise 公有云 Guest
有关升级公有云中 SLE Guest 的指导,请参见“Using the SUSE Distribution Migration System”(使用 SUSE 发行套件迁移系统)。
- 从 openSUSE Leap 15 升级
支持从 openSUSE Leap 15 升级。请参见第 5.9 节 “从 openSUSE Leap 升级到 SUSE Linux Enterprise Server”。仅支持升级安装的 Leap 服务器。
1.3 联机和脱机升级 #
SUSE 支持以下升级和迁移方法。有关术语的详细信息,请参见第 2.1 节 “术语”。这些方法是:
- 联机
从正在运行的操作系统本身(系统处于启动和正在运行的状态)执行升级。示例:在通过 SUSE Customer Center 或储存库镜像工具 (RMT)、经由 SUSE Manager 的 Salt 策略建立连接后,使用 Zypper 或 YaST 进行联机更新。
有关详细信息,请参见第 5 章 “联机升级”。
在同一主要版本的服务包之间迁移时,建议使用下面两种方法:第 5.4 节 “使用联机迁移工具 (YaST) 升级”或第 5.5 节 “使用 Zypper 升级”。
- 脱机
脱机升级意味着要升级的操作系统未运行(系统处于关闭状态)。将会引导目标操作系统的安装程序(例如,通过安装媒体、网络或本地引导加载程序)并执行升级。
有关详细信息,请参见第 4 章 “脱机升级”。
如果您的计算机由 SUSE Manager 管理,请根据 SUSE Manager 文档中所述更新计算机。https://documentation.suse.com/suma/ 上的《SUSE Manager Upgrade Guide》(SUSE Manager 升级指南)中介绍了客户端迁移过程。
2 生命周期和支持 #
本章提供有关术语、SUSE 产品生命周期和服务包版本,以及建议的升级策略的背景信息。
2.1 术语 #
本节使用了一些术语。要理解这些信息,请阅读以下定义:
- 向后移植
向后移植是指通过较新版本的软件采取特定的更改,然后将这些更改应用到较旧版本的做法。最常见的用例是修复较旧软件组件中的安全漏洞。通常,它也是用于提供增强或新功能(不太常见)的维护模型的一部分。
- 增量 RPM
增量 RPM 仅包含某个软件包的两个已定义版本之间的有区别二进制文件,因此其下载大小最小。安装前,需要在本地计算机上重构建完整 rpm 软件包。
- 下游
开放源代码领域中的软件开发方式的形象说法(与上游相对)。下游一词指从上游将源代码与其他软件集成,从而构建供最终用户使用的发行套件的人员或组织,例如 SUSE。因此,软件将从其开发者开始,通过集成者向下游流向最终用户。
- 扩展, 附加产品
扩展和第三方附加产品为 SUSE Linux Enterprise Server 的产品价值提供附加功能。它们由 SUSE 及 SUSE 的合作伙伴提供,并且在基本产品 SUSE Linux Enterprise Server 的基础上注册和安装。
- LTSS
LTSS 是 Long Term Service Pack Support 的缩写,它以 SUSE Linux Enterprise Server 扩展的形式提供。
- 主要版本, 正式发布 (GA) 版本
SUSE Linux Enterprise(或任何软件产品)的主要版本是一个新版本,其中会引入新功能和工具、停用先前弃用的组件,并加入一些不向后兼容的更改。例如,SUSE Linux Enterprise 12 或 15 是主要版本。
- 迁移
使用联机更新工具或安装媒体更新到某个服务包 (SP),以安装相应的补丁。它会将安装的系统的所有软件包更新到最新状态。
- 迁移目标
系统可迁移到的兼容产品集,包含产品/扩展的版本以及储存库的 URL。迁移目标随时间而变化,并依赖于安装的扩展。可以选择多个迁移目标,例如 SLE 15 SP1 和 SES 6。
- 模块
模块则全部由 SUSE Linux Enterprise Server 负责支持,其生命周期也不同。它们都有明确定义的范围,只通过联机通道提供。要订阅 SUSE Customer Center、RMT(储存库镜像工具)或 SUSE Manager,必须先在这些通道中注册。
- 软件包
软件包是
rpm
格式的压缩文件,其中包含特定程序的所有文件,包括配置、示例和文档等可选组件。- 补丁
补丁由一个或多个软件包组成,可通过增量 RPM 方式应用。它也可能带来尚未安装的软件包的依赖项。
- 服务包 (SP)
将几个补丁合并到便于安装或部署的一个组织体中。服务包是有编号的并通常包含安全性修复、更新、升级或程序增强。
- 上游
开放源代码领域中的软件开发方式的形象说法(与下游相对)。术语上游表示以源代码形式分发的软件的原始项目、作者或维护者。反馈、补丁、功能增强或其他改进措施将从最终用户或贡献者流向上游开发者。开发者决定是要集成还是拒绝请求。
如果项目成员决定集成请求,则会在更新版本的软件中显示这一点。接受的请求将为所有相关方带来好处。
如果某个请求未被接受,则可能是因其他原因而遭到拒绝。原因是该请求的状态不符合项目的准则、该请求无效、已集成该请求,或者它不在项目的考虑范围或路线图内。未被接受的请求会给上游开发者带来不利,因为他们需要将其补丁与上游代码同步。通常会避免这种做法,但有时仍有必要予以采取。
- 更新
安装某个软件包的较新次要版本,其中通常包含安全修复或 Bug 修复。
- 升级
安装软件包或分发包的更新主要版本,引入新功能。有关升级选项的区别,请参见第 1.3 节 “联机和脱机升级”。
2.2 产品生命周期 #
SUSE 产品的生命周期如下:
SUSE Linux Enterprise Server 的生命周期为 13 年:10 年的标准支持,3 年的扩展支持。
SUSE Linux Enterprise Desktop 的生命周期为 10 年:7 年的标准支持,3 年的扩展支持。
主要版本每 4 年发行一次。服务包每 12-14 个月发行一次。
新服务包发行后,SUSE 对以前的服务包的支持会延续 6 个月。图 2.1 “主要版本和服务包”描述了以上某些方面。
如果您需要更多的时间来设计、验证和测试您的升级计划,长期服务包支持可以延长支持期,让您额外获得以 12 个月为增量的 12 到 36 个月的支持。如此,对于任何服务包,您一共可以得到 2 到 5 年的支持。有关详细信息,请参见图 2.2 “长期服务包支持”。
有关详细信息,请参见https://www.suse.com/products/long-term-service-pack-support/。
有关生命周期、发行频率和更迭期支持期限的详细信息,请参见 https://www.suse.com/lifecycle。
2.3 模块依赖项和生命周期 #
有关模块、其依赖项和生命周期的列表,请参见Article “模块和扩展快速入门”。
2.4 生成定期生命周期报告 #
SUSE Linux Enterprise Server 可定期检查所有已安装产品的支持状态更改,如有更改,则会通过电子邮件发送报告。要生成报告,请安装 zypper-lifecycle-plugin
(通过 zypper in zypper-lifecycle-plugin
命令)。
使用 systemctl
命令在系统上启用报告生成功能:
root #
systemctl
enable lifecycle-report
可使用任何文本编辑器,在 /etc/sysconfig/lifecycle-report
文件中配置报告电子邮件的收件人和主题,以及生成报告的时间段。MAIL_TO
和 MAIL_SUBJ
设置分别定义邮件收件人和主题,而 DAYS
则设置生成报告的间隔。
报告显示的是更改发生之后(而不是之前)的支持状态更改。如果更改是在最后一份报告生成之后立即发生的,则您最长可能需要 14 天才会收到更改通知。在设置 DAYS
选项时,需考虑到这一点。更改以下配置项可满足您的需要:
MAIL_TO='root@localhost' MAIL_SUBJ='Lifecycle report' DAYS=14
最新报告可在文件 /var/lib/lifecycle/report
中获得。该文件包含两个部分。第一段告知对所使用产品的支持已结束。第二部分列出软件包以及它们的支持结束日期和更新可用性。
2.5 支持级别 #
扩展支持级别的范围从第 10 年开始直至第 13 年。这些包含持续的 L3 工程级别诊断和反应性关键 bug 修复。具有这些支持级别,您将接收到针对以下漏洞的更新:内核中可被轻易利用的 root 漏洞,以及其他无需用户交互即可直接执行的 root 漏洞。此外,它们还支持现有的工作负载、软件堆栈和硬件,其中只对少数软件包不提供支持。表 2.1 “安全更新和 bug 修复”中提供了概览。
最新服务包 (SP) 的标准支持 |
上个 SP 的标准支持,含 LTSS |
含 LTSS 的扩展支持 | |||
---|---|---|---|---|---|
功能 |
第 1-5 年 |
第 6-7 年 |
第 8-10 年 |
第 4-10 年 |
第 10-13 年 |
技术服务 |
是 |
是 |
是 |
是 |
是 |
可访问补丁和修复 |
是 |
是 |
是 |
是 |
是 |
可访问文档和知识库 |
是 |
是 |
是 |
是 |
是 |
支持现有堆栈和工作负载 |
是 |
是 |
是 |
是 |
是 |
支持新部署 |
是 |
是 |
受限制(根据合作伙伴和客户要求) |
受限制(根据合作伙伴和客户要求) |
否 |
增强请求 |
是 |
受限制(根据合作伙伴和客户要求) |
受限制(根据合作伙伴和客户要求) |
否 |
否 |
硬件支持与优化 |
是 |
受限制(根据合作伙伴和客户要求) |
受限制(根据合作伙伴和客户要求) |
否 |
否 |
通过 SUSE SolidDriver 程序(前身为 PLDP)进行驱动程序更新 |
是 |
是 |
受限制(根据合作伙伴和客户要求) |
受限制(根据合作伙伴和客户要求) |
否 |
从最新 SP 向后移植修复 |
是 |
是 |
受限制(根据合作伙伴和客户要求) |
无 |
无 |
安全性更新 1 |
所有 |
所有 |
所有 |
仅关键 |
仅关键 |
缺陷解决方法 |
是 |
是 |
受限制(仅限严重性级别 1 和 2 缺陷) |
受限制(仅限严重性级别 1 和 2 缺陷) |
受限制(仅限严重性级别 1 和 2 缺陷) |
1 有关 SUSE Linux Enterprise 更新政策的更多信息,请参见下面的知识库文章。
2.6 使用 SUSEConnect 注册和取消注册计算机 #
注册时,系统将从 SUSE Customer Center(请参见 https://scc.suse.com/)或本地注册代理(如 SMT)接收储存库。储存库名称会映射到该客户中心内的特定 URI。要列出系统上所有可用的储存库,请按如下方式使用 zypper
:
root #
zypper
repos -u
这会显示系统上所有可用储存库的列表。每个储存库的别名、名称都会列出,并会指出它是否已启用且会刷新。使用选项 -u
也可以从 URI 的来源处获取该 URI。
要注册您的计算机,请运行 SUSEConnect,例如:
root #
SUSEConnect
-r REGCODE
要取消注册计算机,也可以使用 SUSEConnect:
root #
SUSEConnect
--de-register
要查看本地安装的产品及其状态,请使用以下命令:
root #
SUSEConnect
-s
2.7 识别 SLE 版本 #
如果需要识别 SLE 安装的版本,请检查 /etc/os-release
文件的内容。
可以使用 zypper
获取计算机可读的 XML 输出:
tux >
zypper --no-remote --no-refresh --xmlout --non-interactive products -i
<?xml version='1.0'?> <stream> <product-list> <product name="SLES" version="15" release="0" epoch="0" arch="x86_64" vendor="SUSE" summary="SUSE Linux Enterprise Server 15" repo="@System" productline="sles" registerrelease="" shortname="SLES15" flavor="" isbase="true" installed="true"><endoflife time_t="0" text="0"/><registerflavor/><description>SUSE Linux Enterprise offers [...]</description></product> </product-list> </stream>
3 准备升级 #
在开始升级过程之前,请确保您的系统已准备妥当。除了其他工作以外,准备工作还包括备份数据和查看发行说明。下一章将指导您完成这些步骤。
3.1 确保当前系统是最新的 #
仅支持从最新的增补级别升级系统。运行 zypper patch
或启动 YaST 模块 ,以确保已安装最新的系统更新。
3.2 阅读发行说明 #
有关所有更改、新功能和已知问题的列表,请参见发行说明。安装媒体上的 docu
目录中也提供了发行说明。
发行说明通常只包含两个连续的版本之间的更改。如果您跳过了一个或多个服务包,另请检查所跳过服务包的发行说明。
检查发行说明以了解:
您的硬件是否有特殊的注意事项;
所用的任何软件包是否已发生重大更改;
是否需要对您的安装实施特殊预防措施。
3.3 创建备份 #
升级前,将现有配置文件复制到独立媒体(例如磁带设备、可卸硬盘等)以备份数据。这主要适用于储存在 /etc
中的文件以及 /var
和 /opt
中的一些目录和文件。最好将 /home
(HOME
目录)中的用户数据也写入备份媒体。
以 root
身份备份所有数据。只有 root
对所有本地文件具有足够的权限。
如果您已在 YaST 中选择/etc/sysconfig
目录中的文件。但是,此备份尚不完整,因为缺少了上述所有其他重要目录。在 /var/adm/backup
目录中查找备份。
3.4 列出已安装的软件包和储存库 #
在全新安装某个新的主要 SLE 版本或还原到旧版本时(举例而言),您可以保存已安装软件包的列表。
请注意,并非所有已安装的软件包或使用的储存库在 SUSE Linux Enterprise 的较新版本中都可用。有些软件包或储存库可能已被重命名,有些可能已被取代。还有可能提供的一些软件包只是用于旧版,而默认会使用另一个替代它的软件包。因此,可能需要手动编辑一些文件。您可使用任何文本编辑器进行编辑。
创建包含全部所用储存库列表的文件
repositories.bak.repo
:root #
zypper
lr -e repositories.bak另外,创建包含所有已安装软件包的列表的文件
installed-software.bak
:root #
rpm
-qa --queryformat '%{NAME}\n' > installed-software.bak备份这两个文件。使用以下命令可恢复储存库和已安装的软件包:
root #
zypper
ar repositories.bak.reporoot #
zypper
install $(cat installed-software.bak)注意:更新到新的主要版本后,软件包数量会相应增加升级到新主要版本的系统 (SLE X+1) 包含的软件包可能会比初始系统 (SLE X) 的多,也会比选择相同模式执行的 SLE X+1 全新安装所包含的软件包多。原因如下:
软件包经过拆分,以便用户能以更高的粒度选择软件包。例如,SLE 11 上的 37 个 texlive 软件包已拆分成 SLE 15 上的 3000 多个软件包。
拆分某个软件包后,在升级过程中会安装所有新软件包,以与旧版本保持相同的功能。但是,SLE X+1 全新安装的新默认设置可能不会安装所有软件包。
出于兼容原因,可能会保留 SLE X 中的旧软件包。
软件包依赖项和模式范围可能已发生变化。
3.5 从 SUSE Linux Enterprise Server 11 SP4 升级 #
如果您在 SUSE Linux Enterprise Server 11 SP4 上使用的是 MySQL、PostgreSQL 或基于 Java MD5 的证书,请按以下各节所述准备系统。此外,请务必查看本章的其他各节,以了解其他需要执行的准备工作。
3.5.1 迁移 PostgreSQL 数据库 #
如果您在 SUSE Linux Enterprise Server 11 上使用的是 PostgreSQL 数据库,则需要升级数据库。有关详细信息,请参见第 3.6 节 “迁移 PostgreSQL 数据库”。
3.5.2 迁移 MySQL 数据库 #
从 SUSE Linux Enterprise 12 开始,SUSE 已从 MySQL 转移到 MariaDB。在开始任何升级操作之前,强烈建议您备份数据库。
要进行数据库迁移,请执行以下操作:
登录到 SUSE Linux Enterprise 11 计算机。
创建转储文件:
root #
mysqldump
-u root -p --all-databases > mysql_backup.sql默认情况下,
mysqldump
不会转储INFORMATION_SCHEMA
或performance_schema
数据库。有关详细信息,请参见 https://dev.mysql.com/doc/refman/5.5/en/mysqldump.html。将您的转储文件、配置文件
/etc/my.cnf
以及/etc/mysql/
目录储存在安全位置,以供日后调查(不要用于安装!)。执行 SUSE Linux Enterprise Server 升级。升级后,以前的配置文件
/etc/my.cnf
仍将保持不变。新配置保存在/etc/my.cnf.rpmnew
文件中。根据需要配置 MariaDB 数据库。不要使用以前的配置文件和目录,只是将其用作提醒,并对其进行改编。
确保启动 MariaDB 服务器:
root #
systemctl
start mariadb如果您希望每次引导时都启动 MariaDB 服务器,请启用以下服务:
root #
systemctl
enable mariadb通过连接数据库来校验 MariaDB 是否正常运行:
root #
mariadb
-u root -p
3.5.3 创建用于 Java 应用程序的非 MD5 服务器证书 #
从 SP1 更新到 SP2 期间,在安全性修复时禁用了基于 MD5 的证书。如果您之前创建的证书是 MD5 证书,请执行以下步骤重新创建证书:
打开终端窗口并以
root
身份登录。创建一个私用密钥:
root #
openssl
genrsa -out server.key 1024如果需要强度更高的密钥,请将
1024
替换为更大的数字,例如4096
。创建证书签名请求 (CSR):
root #
openssl
req -new -key server.key -out server.csr对证书自我签名:
root #
openssl
x509 -req -days 365 -in server.csr -signkey server.key -out server.crt创建 PEM 文件:
root #
cat
server.key server.crt > server.pem将
server.crt
、server.csr
、server.key
和server.pem
文件放在可在其中找到密钥的相应目录中。例如,对于 Tomcat,此目录为/etc/tomcat/ssl/
。
3.6 迁移 PostgreSQL 数据库 #
SUSE Linux Enterprise Server 15 SP3 随附 PostgreSQL 数据库版本 10、12 和 13。虽然默认版本是版本 13,但我们仍会通过 Legacy
模块提供版本 10 和 12,以便您可以从 SUSE Linux Enterprise Server 的早期版本升级。
由于需要完成数据库的迁移工作,因此无法使用自动升级过程。您需要手动执行从一个版本到另一个版本的迁移。
迁移过程通过使用 pg_upgrade
命令执行,这种方法可替代传统的转储和重新装载。与“转储和重新装载”方法相比,pg_upgrade
可缩短迁移所需的时间。
每个 PostgreSQL 版本的程序文件储存在不同版本的相关目录中。例如,版本 9.6 的程序文件储存在 /usr/lib/postgresql96/
中;版本 10 的储存在 /usr/lib/postgresql10/
中;版本 12 的储存在 /usr/lib/postgres12/
中。请注意,PostgreSQL 主要版本 9.6 与 10 的版本控制策略有所不同。有关详细信息,请参见https://www.postgresql.org/support/versioning/。
从 SLE 11 升级时,postgresql94
将被卸装,不可用于将数据库迁移到更高的 PostgreSQL 版本。因此,在这种情况下,请确保先迁移 PostgreSQL 数据库,然后再升级系统。
以下过程描述如何将数据库从版本 9.6 迁移到版本 10。使用不同的版本作为起始或目标时,请相应地替换版本号。
要进行数据库迁移,请执行以下操作:
确保满足以下先决条件:
如果尚未通过维护更新将旧 PostgreSQL 版本的任何软件包升级到最新版本,请执行该操作。
创建现有数据库的备份。
安装新 PostgreSQL 主要版本的软件包。对于 SLE15 SP3,这意味着要安装 postgresql10-server 及其依赖的所有软件包。
安装软件包 postgresql10-contrib, 其中包含命令
pg_upgrade
。确保 PostgreSQL 数据区域(默认为
/var/lib/pgsql/data
)中有足够的可用空间。如果空间不足,请对每个数据库使用以下 SQL 命令,以尝试减少大小(这可能需要花费很长时间!):VACUUM FULL
使用以下任一命令停止 PostgreSQL 服务器:
root #
/usr/sbin/rcpostgresql
stop或
root #
systemctl stop postgresql.service(取决于要用作升级起始版本的 SLE 版本)。
重命名旧数据目录:
root #
mv
/var/lib/pgsql/data /var/lib/pgsql/data.old使用
initdb
手动初始化新的数据库实例,或者启动再停止 PostgreSQL 让数据库实例自动初始化:root #
/usr/sbin/rcpostgresql
startroot #
/usr/sbin/rcpostgresql
stop或
root #
systemctl start postgresql.serviceroot #
systemctl stop postgresql.service(取决于要用作升级起始版本的 SLE 版本)。
如果您在旧版本中更改了配置文件,请考虑将这些更改转移到新配置文件。可能受影响的文件包括
postgresql.auto.conf
、postgresql.conf
、pg_hba.conf
和pg_ident.conf
。这些文件的旧版本位于/var/lib/pgsql/data.old/
中,新版本可在/var/lib/pgsql/data
中找到。请注意,不建议复制旧配置文件,因为这可能会重写新选项、新默认值和更改的注释。
以
postgres
用户身份启动迁移过程:root #
su - postgres postgres >pg_upgrade
\ --old-datadir "/var/lib/pgsql/data.old" \ --new-datadir "/var/lib/pgsql/data" \ --old-bindir "/usr/lib/postgresql96/bin/" \ --new-bindir "/usr/lib/postgresql10/bin/"使用以下任一命令启动新数据库实例:
root #
/usr/sbin/rcpostgresql
start或
root #
systemctl start postgresql.service(取决于要用作升级起始版本的 SLE 版本)。
检查迁移是否成功。测试范围取决于用例,没有任何普通的工具可以自动完成此步骤。
去除所有旧 PostgreSQL 软件包和旧数据目录:
root #
zypper
search -s postgresql96 | xargs zypper rm -uroot #
rm
-rf /var/lib/pgsql/data.old
有关升级数据库或使用逻辑复制等替代方法的详细信息,请参见 https://www.postgresql.org/docs/10/upgrading.html 上的官方 PostgreSQL 文档。
3.7 关闭虚拟机 Guest #
如果您的计算机充当 KVM 或 Xen 的 VM 主机服务器,请确保在更新之前关闭所有正在运行的 VM Guest。否则,更新后您可能无法访问 guest。
3.8 调整 SMT 客户端设置 #
如果您要升级的计算机已注册为 SMT 服务器的客户端,请注意以下事项:
检查主机上的 clientSetup4SMT.sh
脚本版本是否是最新的。较旧版 SMT 的 clientSetup4SMT.sh
无法管理 SMT 12 客户端。如果您在 SMT 服务器上定期应用软件补丁,那么位于 <SMT 主机名>/repo/tools/clientSetup4SMT.sh
处的 clientSetup4SMT.sh
始终都是最新版本。
如果将计算机升级到更高版本的 SUSE Linux Enterprise Server 失败,请按过程 3.1中所述从 SMT 服务器中取消注册该计算机。然后重启动升级过程。
登录客户端计算机。
以下步骤根据客户端的当前操作系统而异:
对于 SUSE Linux Enterprise 11,请执行以下命令:
tux >
sudo
suse_register -Etux >
sudo
rm -f /etc/SUSEConnecttux >
sudo
rm -rf /etc/zypp/credentials.d/*tux >
sudo
rm -rf /etc/zypp/repos.d/*tux >
sudo
rm -f /etc/zypp/services.d/*tux >
sudo
rm -f /var/cache/SuseRegister/*tux >
sudo
rm -f /etc/suseRegister*tux >
sudo
rm -f /var/cache/SuseRegister/lastzmdconfig.cachetux >
sudo
rm -f /etc/zmd/deviceidtux >
sudo
rm -f /etc/zmd/secret对于 SUSE Linux Enterprise 12,请执行以下命令:
tux >
sudo
SUSEConnect --de-registertux >
sudo
SUSEConnect --cleanuptux >
sudo
rm -f /etc/SUSEConnecttux >
sudo
rm -rf /etc/zypp/credentials.d/*tux >
sudo
rm -rf /etc/zypp/repos.d/*tux >
sudo
rm -f /etc/zypp/services.d/*
登录 SMT 服务器。
列出所有客户端注册,以检查是否已成功取消注册该客户端:
tux >
sudo
smt-list-registrations如果该客户端的主机名仍旧列在此命令的输出中,请从第一列获取该客户端的
唯一 ID
。(可能列出了该客户端的多个 ID。)删除此客户端的注册:
tux >
sudo
smt-delete-registration -g UNIQUE_ID如果列出了该客户端的多个 ID,请针对每个唯一 ID 重复上述步骤。
重新运行以下命令,以检查现在是否已成功取消注册该客户端:
tux >
sudo
smt-list-registrations
3.9 磁盘空间 #
从旧版本到新版本,软件的大小有增长的趋势。因此,在进行更新之前,请查看可用分区空间。如果您怀疑磁盘空间不足,请先备份数据,再通过调整分区大小等方法来增大可用空间。对于每个分区应该具有多少空间,没有一般的经验可以借鉴。空间要求取决于特定的分区配置文件和选定的软件。
在更新过程中,YaST 会检查可用磁盘空间的容量,并在安装大小可能超出可用空间时向用户显示警告。在该情况下,执行更新会导致系统不可用!只有在您完全了解自己要进行的操作的情况下(通过事先测试),才能跳过警告继续更新。
3.9.1 检查非 Btrfs 文件系统上的磁盘空间 #
使用 df
命令可列出可用磁盘空间。例如,在例 3.1 “使用 df -h
列示信息”中,根分区为 /dev/sda3
(作为 /
装入)。
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
3.9.2 检查 Btrfs 根文件系统上的磁盘空间 #
在 Btrfs 文件系统上,df
的输出可能有误导性,因为除了原始数据分配的空间以外,Btrfs 文件系统还会为元数据分配并使用空间。
因此,即使看上去仍有大量的可用空间,Btrfs 文件系统也可能会报告空间不足。发生这种情况时,为元数据分配的全部空间都已用尽。有关如何检查 Btrfs 文件系统上已用和可用空间的细节,请参阅Book “储存管理指南”, Chapter 1 “Linux 中文件系统的概述”, Section 1.2.2.3 “检查可用空间”。有关详细信息,请参见 man 8 btrfs-filesystem
和 https://btrfs.wiki.kernel.org/index.php/FAQ。
如果您在计算机上使用 Btrfs 作为根文件系统,请确保有足够的可用空间。检查所有装入分区上的可用空间。在最坏的情况下,升级进程需要将当前根文件系统的所有磁盘空间(不含 /.snapshot
)用于存放新快照。
下列建议已证实值得采纳:
包含 Btrfs 在内的所有文件系统需有足够的可用磁盘空间用于下载和安装大型 RPM。旧 RPM 的空间只会在新 RPM 安装之后释放。
对于包含快照的 Btrfs,至少需要有当前安装任务所需的可用空间。建议提供两倍于当前安装大小的可用空间。
如果没有足够的可用空间,您可以尝试使用
snapper
删除旧快照:root #
snapper
listroot #
snapper
delete NUMBER但这种做法并不总是有用。在迁移之前,大多数快照只会占用极少的空间。
3.10 AutoYaST 配置文件中的更改(从 SLE 12 到 15) #
要了解如何迁移 AutoYaST 配置文件,请参见Book “AutoYaST 指南”, 。
3.11 升级订阅管理工具 (SMT) 服务器 #
对于运行 SMT 的服务器,需要执行特殊的升级过程。请参见《Repository Management Tool Guide》中的Book “储存库镜像工具指南”, Chapter 3 “从 SMT 迁移到 RMT”。
3.12 暂时禁用内核多版本支持 #
SUSE Linux Enterprise Server 允许您在 /etc/zypp/zypp.conf
中启用相应设置来安装多个内核版本。为了升级到某个服务包,需要暂时禁用对此功能的支持。当更新成功完成后,可以重新启用多版本支持。要禁用多版本支持,请对 /etc/zypp/zypp.conf
中的相应行加上注释。结果应类似如下内容:
#multiversion = provides:multiversion(kernel) #multiversion.kernels = latest,running
要在成功更新后重新激活此功能,请去除注释符号。有关多版本支持的详细信息,请参见Book “部署指南”, Chapter 23 “安装多个内核版本”, Section 23.1 “启用和配置多版本支持”。
3.13 在 IBM Z 上升级 #
在 IBM Z 上升级 SUSE Linux Enterprise 安装需要设置 Upgrade=1
内核参数(例如,通过 parmfile)。请参见第 5.6 节 “parmfile — 自动进行系统配置”。
3.14 IBM POWER:启动 X 服务器 #
在 SLES 12 for IBM POWER 上,显示管理器配置为默认不启动本地 X 服务器。SLES 12 SP1 上的设置则相反,显示管理器现在会启动 X 服务器。
为了避免升级期间出现问题,SUSE Linux Enterprise Server 设置不会自动更改。如果想要在升级后让显示管理器启动 X 服务器,请按如下所示在 /etc/sysconfig/displaymanager
中更改 DISPLAYMANAGER_STARTS_XSERVER
的设置:
DISPLAYMANAGER_STARTS_XSERVER="yes"
4 脱机升级 #
本章介绍如何使用从安装媒体引导的 YaST,升级现有的 SUSE Linux Enterprise 安装。YaST 安装程序有多种启动方法,例如从 DVD 启动、通过网络启动或从系统所在的硬盘启动。
4.1 概念概述 #
在升级系统之前,请先阅读第 3 章 “准备升级”。
要升级系统,请像执行全新安装时那样从安装源引导。但是,当引导屏幕出现时,您需要选择
(而不是 )。可从以下媒体启动升级:可卸媒体: 包括 CD、DVD 或 USB 大容量储存设备等媒体。有关详细信息,请参见第 4.2 节 “从安装媒体启动升级”。
网络资源: 您可以从本地媒体引导然后选择相应的网络安装类型,或者通过 PXE 引导。有关详细信息,请参见第 4.3 节 “从网络来源启动升级”。
4.2 从安装媒体启动升级 #
下面的过程介绍如何从 DVD 引导,不过,您也可以使用其他本地安装媒体,例如 USB 大容量储存设备上的 ISO 映像。要选择的媒体和引导方法取决于系统体系结构,以及计算机使用的是传统的 BIOS 还是 UEFI。
选择并准备引导媒体,请参见Book “部署指南”。
插入 SUSE Linux Enterprise Server 15 SP3 的统一安装程序 DVD,并引导计算机。 屏幕即会显示,接着是引导屏幕。
可选:要强制安装程序仅安装 DVD 中的软件包而不安装网络来源中的软件包,请添加引导选项
media_upgrade=1
。在引导菜单中选择升级以启动系统。
按第 4.4 节 “升级 SUSE Linux Enterprise”中所述继续执行升级过程。
4.3 从网络来源启动升级 #
要从网络安装源开始升级,请确保满足以下要求:
- 网络安装源
网络安装源已按照Book “部署指南”, Chapter 16 “设置网络安装源”所述设置妥当。
- 网络连接和网络服务
安装服务器与目标计算机的网络连接均必须正常。必需的网络服务如下:
域名服务
DHCP(仅在通过 PXE 引导时需要,可在设置期间手动设置 IP)
OpenSLP(可选)
- 引导媒体
可引导的 SUSE Linux Enterprise DVD、ISO 映像或功能正常的 PXE 设置。有关通过 PXE 引导的细节,请参见Book “部署指南”, Chapter 17 “准备网络引导环境”, Section 17.4 “为 PXE 引导准备目标系统”。请参见Book “部署指南”, Chapter 11 “远程安装”,深入了解从远程服务器开始升级的相关信息。
4.3.1 通过网络安装源手动升级 — 从 DVD 引导 #
此过程举例说明了如何从 DVD 引导,不过,您也可以使用其他本地安装媒体,例如 USB 大容量储存设备上的 ISO 映像。如何选择引导方法以及从媒体启动系统取决于系统体系结构,以及计算机使用的是传统 BIOS 还是 UEFI。有关细节,请参见以下链接。
插入 SUSE Linux Enterprise Server 15 SP3 的统一安装程序 DVD,并引导计算机。 屏幕即会显示,接着是引导屏幕。
选择要使用的网络安装源类型(FTP、HTTP、NFS、SMB 或 SLP)。通常可以按 F4 选择此选项,但是,如果您计算机上装配的是 UEFI 而不是传统 BIOS,则可能需要手动调整引导参数。有关细节,请参见Book “部署指南”, Chapter 7 “引导参数”和Book “部署指南”, Chapter 8 “安装步骤”。
按第 4.4 节 “升级 SUSE Linux Enterprise”中所述继续执行升级过程。
4.3.2 通过网络安装源手动升级 — 通过 PXE 引导 #
要通过 PXE 引导从网络安装源执行升级,请按以下步骤操作:
调整 DHCP 服务器的设置以提供通过 PXE 引导所需的地址信息。有关详细信息,请参见Book “部署指南”, Chapter 17 “准备网络引导环境”, Section 17.1.1 “动态地址指派”。
设置 TFTP 服务器,以保存通过 PXE 引导所需的引导映象。为此,请使用 SUSE Linux Enterprise Server 15 SP3 的安装程序 DVD,或遵循Book “部署指南”, Chapter 17 “准备网络引导环境”, Section 17.2 “设置 TFTP 服务器”中的指导。
在目标计算机上准备 PXE Boot 和局域网唤醒。
对目标系统引导进行初始化,并用 VNC 远程连接到此计算机正运行的安装例程上。有关详细信息,请参见Book “部署指南”, Chapter 11 “远程安装”, Section 11.3 “通过 VNC 监视安装”。
按第 4.4 节 “升级 SUSE Linux Enterprise”中所述继续执行升级过程。
4.4 升级 SUSE Linux Enterprise #
在升级系统之前,请先阅读第 3 章 “准备升级”。要执行自动迁移,请如下操作:
如果您要升级的系统已在 SUSE Customer Center 中注册,请确保在执行以下过程期间可以连接因特网。
(从安装媒体或网络)引导后,请在引导屏幕上选择
这一项。警告:不当的选择可能会导致数据丢失此时请确保选择
。如果错误地选择了 ,将会执行全新安装,致使您的数据分区被重写。YaST 将启动安装系统。
在
屏幕上,选择 和 。单击 继续。YaST 将检查您的分区上是否已安装 SUSE Linux Enterprise 系统。
在
屏幕上,选择要升级的分区,然后单击 。YaST 会装入选定的分区,并显示所升级产品的许可协议。要继续升级,请接受许可条款。
在
屏幕上,调整储存库的状态。默认会去除所有储存库。如果您未添加任何自定义储存库,请不要更改设置。将从 DVD 安装待升级的软件包,您可在下一步骤中选择性地启用默认联机储存库。如果您有自定义储存库,可以采取两种做法:
让储存库保留“已去除”状态。在升级期间,将会去除从此储存库安装的软件。在没有任何与新版本匹配的储存库版本可用的情况下,请使用此方法。
更新并启用与新版本匹配的储存库。在列表中单击该储存库以更改其 URL,然后单击
。可通过选中 ,直到其状态设置为 来启用储存库。
不要保留上一版本中的储存库,否则系统可能不稳定甚至根本无法工作。然后单击
继续。下一步骤取决于升级的系统是否已在 SUSE Customer Center 中注册。
如果系统未在 SUSE Customer Center 中注册,YaST 将显示一条弹出讯息,建议使用另一个安装媒体,即 SLE-15-SP3-Full-ARCH-GM-media1.iso 映像。
如果您没有该媒体,那么不注册系统就无法升级。
如果系统已在 SUSE Customer Center 中注册,YaST 将会显示可能的迁移目标和摘要。
从列表中选择一个迁移目标,然后单击
继续。
在下一个对话框中,您可以选择性地添加额外的安装媒体。如果您有额外的安装媒体,请激活
选项,并指定媒体类型。检查升级的
。如果所有设置都符合您的需要,请单击
开始安装与去除过程。提示:在 SMT 客户端上升级失败如果要升级的计算机是 SMT 客户端并且升级失败,请参见过程 3.1 “从 SMT 服务器中取消注册 SUSE Linux Enterprise 客户端”,然后重启动升级过程。
升级过程成功完成后,请根据第 4.4.1 节 “升级后检查”中所述执行升级后检查。
4.4.1 升级后检查 #
检查任何“孤立的软件包”。升级过程中可能会将软件包重命名、去除、合并或分割。因此,有些软件包可能会变成孤立状态,不再受支持。系统会自动去除孤立的软件包。以下命令可以列出这些软件包:
tux >
zypper packages --orphaned --unneeded请使用该列表确定仍然需要的软件包以及可以安全去除的软件包。
检查所有
*.rpmnew
和*.rpmsave
文件,检查其内容,并在可能的情况下合并适宜的更改。如果升级包括对某个默认配置文件的更改,软件包会写入上述其中一个文件类型,而不会重写该配置文件。其中,*.rpmnew
包含新的默认配置且将原始文件保持原样不变,而*.rpmsave
是原始配置的副本且已由新的默认文件替换。您无需搜索整个文件系统中的
*.rpmnew
和*.rpmsave
文件,最重要的文件都已储存在/etc
目录中。使用以下命令可以列出这些文件:tux >
find /etc -print | egrep "rpmnew$|rpmsave$"
4.5 使用 AutoYaST 升级 #
升级过程可以自动执行。有关详细信息,请参见Book “AutoYaST 指南”, Chapter 4 “配置和安装选项”, Section 4.10 “升级”。
4.6 使用 SUSE Manager 升级 #
SUSE Manager 是一个服务器解决方案,用于提供适用于 SUSE Linux Enterprise 客户端的更新、补丁和安全修复。它随附了一套工具和基于 Web 的用户界面,用于执行管理任务。有关 SUSE Manager 的详细信息,请参见 https://www.suse.com/products/suse-manager/。
您可以使用 SUSE Manager 来执行系统升级。通过集成的 AutoYaST 技术,可以从一个主要版本升级到下一个主要版本。
如果您的计算机由 SUSE Manager 管理,请根据 SUSE Manager 文档中所述更新计算机。https://documentation.suse.com/suma/ 上的《SUSE Manager Upgrade Guide》(SUSE Manager 升级指南)中介绍了客户端迁移过程。
4.7 回滚后更新注册状态 #
执行服务包升级时,必须在注册服务器上更改配置,以提供对新储存库的访问权限。如果升级过程被中断或恢复(通过从备份或快照恢复),注册服务器上的信息会与系统的状态不一致。这样可能会导致您无法访问更新储存库,或是在客户端上使用错误的储存库。
如果回滚是通过 Snapper 完成的,系统会通知注册服务器以确保在引导过程中设置对正确储存库的访问信息。如果使用其他方法恢复了系统,或者与注册服务器通讯失败,请在客户端上手动触发回滚。例如,在因网络问题而无法访问服务器时,可以手动触发回滚。要进行回滚,请执行:
tux >
sudo
snapper
rollback
我们建议始终检查系统上是否设置了正确的储存库,特别是使用以下命令刷新服务后:
tux >
sudo
zypper
ref -s
此功能在 rollback-helper 软件包。
4.8 注册系统 #
如果在运行升级之前未注册系统,您随时都可使用 YaST 中的
模块来注册系统。注册系统可以获得以下优势:
有资格获得支持
获取安全性更新和 Bug 修复
访问 SUSE Customer Center
启动 YaST 并选择
› 以打开 对话框。提供与您或您的组织管理订阅时所用的 SUSE 帐户关联的https://scc.suse.com/) 创建一个帐户。
地址。如果您没有 SUSE 帐户,请转到 SUSE Customer Center 主页 (输入与 注册代码。
副本一同收到的如果您的网络中有一个或多个本地注册服务器可用,您可以从列表中选择一个。
要开始注册,请继续执行
。成功注册后,YaST 会列出系统可用的扩展、附加产品和模块。要选择并安装所列的项,请继续Book “部署指南”, Chapter 22 “安装模块、扩展和第三方附加产品”, Section 22.1 “从联机通道安装模块和扩展”。
5 联机升级 #
SUSE 提供了直观的图形工具和简单的命令行工具,供您将正在运行的系统升级到新服务包。它们提供“回滚”服务包支持及其他功能。本章将逐步介绍如何使用这些工具来执行服务包升级。
5.1 概念概述 #
SUSE 会定期发布用于 SUSE Linux Enterprise 系列的新服务包。为了方便客户迁移到新的服务包,并最大限度减少停机时间,SUSE 支持在系统运行时进行联机迁移。
从 SLE 12 开始,YaST Wagon 已经由 YaST 迁移 (GUI) 和 Zypper 迁移(命令行)替代。此项更改的优点在于:
在首个 RPM 更新之前,系统将始终处于定义的状态。
在首个 RPM 更新之前可以取消.
如果出现错误可以轻松恢复.
可以通过系统工具执行“回滚” - 无需备份或恢复。
使用所有活动储存库.
可以跳过服务包
仅支持在服务包之间进行联机迁移。不支持通过联机迁移升级到新的主要版本。有关详细信息,请参见第 1 章 “升级路径和方法”。
请通过脱机迁移升级到新的主要版本。有关详细信息,请参见第 4 章 “脱机升级”。
如果要升级的系统是 SUSE Manager 客户端,则无法通过 YaST 联机迁移或 zypper migration
进行升级。请改为使用客户端迁移过程。
《SUSE Manager Upgrade Guide》(SUSE Manager 升级指南)对此进行了说明。
5.2 服务包迁移工作流程 #
服务包迁移可通过 YaST、zypper
或 AutoYaST 执行。
在开始服务包迁移之前,必须在 SUSE Customer Center 或本地 RMT 服务器中注册您的系统。也可以使用 SUSE Manager。
不论使用哪种方式,服务包迁移都包含以下步骤:
在注册系统中查找可能的迁移目标。
选择一个迁移目标。
请求并启用新的储存库。
运行迁移。
迁移目标列表取决于您所安装和注册的产品。如果您安装的扩展没有新的 SP 可用,则无法向您提供迁移目标。
主机可用的迁移目标列表将始终从 SUSE Customer Center 检索,并与安装的产品或扩展相关。
5.3 取消服务包迁移 #
在迁移过程中,只能在特定阶段取消服务包迁移:
软件包升级过程开始之前,系统上只有极小的更改,例如服务和储存库的更改。恢复
/etc/zypp/repos.d/*
以便还原到之前的状态。软件包升级过程开始之后,可以使用 Snapper 快照(请参见Book “管理指南”, Chapter 7 “通过 Snapper 进行系统恢复和快照管理”)还原到之前的状态。
选择迁移目标之后,SUSE Customer Center 更改了储存库数据。要手动还原此状态,请使用
SUSEConnect
--rollback
。
5.4 使用联机迁移工具 (YaST) 升级 #
要通过 YaST 执行服务包迁移,请使用
工具。默认情况下,YaST 不会从第三方储存库安装任何软件包。如果某软件包是从第三方储存库安装的,YaST 会阻止该软件包替换成来自 SUSE 的相同软件包。执行服务包迁移时,YaST 会安装所有推荐的软件包。特别是在自定义最小安装的情况下,这样可能会大幅增加系统的安装大小。
要更改此默认行为并只允许必要的软件包,请调整 /etc/zypp/zypp.conf
中的 solver.onlyRequires
选项。
solver.onlyRequires = true
另外,请编辑文件 /etc/zypp/zypper.conf
并更改 installRecommends
选项。
installRecommends=false
这会更改所有与软件包相关操作的行为,例如安装补丁或新软件包的行为。要更改某次调用的 Zypper 行为,请在命令行上添加参数 --no-recommends
。
要开始服务包迁移,请执行以下操作:
停用注册服务器上所有未使用的扩展,以免将来发生依赖性冲突。如果您忘记了某个扩展,YaST 稍后会检测未使用的扩展储存库,并将其停用。
如果您已登录到要更新的计算机上某个正在运行的 GNOME 会话,请切换到文本控制台。建议不要从 GNOME 会话运行更新。请注意,这并不适用于从远程计算机登录的情况(除非您正在使用 GNOME 运行 VNC 会话)。
运行 YaST 联机更新以获得系统的最新软件包更新。
安装软件包 yast2-migration 及其依赖项(在 YaST 的 › 下)。
重启动 YaST;如果不重启动,新安装的模块将不会显示在控制中心中。
在 YaST 中,选择SUSE Linux Enterprise Server 版本,此模块会列于 或 类别下)。YaST 将显示可能的迁移目标和摘要。如果有多个迁移目标可用于系统,请从列表中选择一个。
(根据要升级的从列表中选择一个迁移目标,然后单击
继续。如果迁移工具提供更新储存库,建议单击
继续。如果“联机迁移”工具找到来自 DVD 或本地服务器的过时储存库,强烈建议您将其禁用。过时储存库来自上一个服务包。系统会自动去除来自 SUSE Customer Center 或 RMT 的所有旧储存库。
单击
,查看摘要并继续迁移过程。确认 。成功迁移后,请重启动系统。
5.5 使用 Zypper 升级 #
要用 Zypper 执行服务包迁移,请使用命令行工具 zypper
migration
(来自包
zypper-migration-plugin。
执行服务包迁移时,YaST 会安装所有推荐的软件包。特别是在自定义最小安装的情况下,这样可能会大幅增加系统的安装大小。
要更改此默认行为并只允许必要的软件包,请调整 /etc/zypp/zypp.conf
中的 solver.onlyRequires
选项。
solver.onlyRequires = true
另外,请编辑文件 /etc/zypp/zypper.conf
并更改 installRecommends
选项。
installRecommends=false
这会更改所有与软件包相关操作的行为,例如安装补丁或新软件包的行为。要更改某次调用的 Zypper 行为,请在命令行上添加参数 --no-recommends
。
要开始服务包迁移,请执行以下操作:
如果您已登录到要更新的计算机上某个正在运行的 GNOME 会话,请切换到文本控制台。建议不要从 GNOME 会话运行更新。请注意,这并不适用于从远程计算机登录的情况(除非您正在使用 GNOME 运行 VNC 会话)。
注册 SUSE Linux Enterprise 计算机(如果尚未注册):
tux >
sudo
SUSEConnect
--regcode YOUR_REGISTRATION_CODE开始迁移:
tux >
sudo
zypper migration
有关迁移过程的一些备注:
如果有多个迁移目标可用于系统,Zypper 会让您从列表中选择一个服务包。这与跳过一个或多个服务包一样。请注意,基础产品(SLES、SLED)的联机迁移仍然只适用于在主要版本的服务包之间进行。
默认情况下,Zypper 会使用
--no-allow-vendor-change
选项,以传递到zypper
dup
。如果某软件包是从第三方储存库安装的,此选项会阻止该软件包替换成来自 SUSE 的相同软件包。如果 Zypper 找到来自 DVD 或本地服务器的过时储存库,强烈建议您将其禁用。系统会自动去除旧的 SUSE Customer Center 或 RMT 储存库。
查看所有更改,特别是即将去除的软件包。键入
y
(要升级的软件包的确切数目会根据系统的不同而变化)继续:266 packages to upgrade, 54 to downgrade, 17 new, 8 to reinstall, 5 to remove, 1 to change arch. Overall download size: 285.1 MiB. Already cached: 0 B After the operation, additional 139.8 MiB will be used. Continue? [y/n/? shows all options] (y):
使用 Shift–Page ↑ 或 Shift–Page ↓ 键在外壳中滚动。
成功迁移后,请重启动系统。
5.6 使用 Plain Zypper 升级 #
如果因无法访问因特网或注册服务器而未能注册您的系统,则无法使用 YaST 迁移或 zypper migration
迁移到新服务包。在这种情况下,您仍可以通过普通的 Zypper 和一些手动交互来迁移到新服务包。
只有因无法访问因特网或注册服务器而未能注册的系统才支持通过此路径迁移到新服务包。例如,位于受特殊保护的网络中的计算机。如果您的系统已注册,请使用 YaST 或 Zypper 迁移。
此迁移路径需要提供新服务包的安装源,应位于所要迁移计算机可访问的位置。例如,您可以将安装源设置为 RMT 服务器或 SLP 服务器。
此外,系统必须能够访问所安装产品版本的最新更新储存库。
如果您已登录到要迁移计算机上正在运行的图形会话,请注销该会话,并切换到文本控制台。不建议从图形会话内部运行更新。请注意,这并不适用于从远程计算机登录的情况(除非您正在使用 X 运行 VNC 会话)。
用旧 SUSE Linux Enterprise 储存库更新软件包管理工具:
tux >
sudo
zypper
patch --updatestack-only获取当前未指派储存库的软件包(孤立的软件包)列表。将不会迁移这些软件包,且不保证迁移后它们可正常工作(因为这些软件包所依赖的其他软件包可能发生了更改,与这些软件包不再兼容)。若要获取该列表,请运行:
tux >
sudo
zypper packages --orphaned仔细检查该列表,去除所有不再需要的孤立软件包。记下所有剩余的孤立软件包,稍后需要进行比较。
运行以下命令,获取系统当前已订阅的所有储存库的列表:
tux >
sudo
zypper repos -u更新每个储存库 URL,使其产品版本号变为
15-SP3
。例如,如果某个储存库的 URL 为http://rmt.example.com/repo/SUSE/Products/SLE-15-SP2-Product-SLES/x86_64/product/
请将其变为
http://rmt.example.com/repo/SUSE/Products/SLE-15-SP3-Product-SLES/x86_64/product/
需要对已启用的所有储存库执行此操作。同时请考虑对当前已禁用的储存库执行此操作,以免未来在激活这些储存库时,系统中包含错误的安装源。
要更改储存库 URL,请采取以下做法:
使用
› › 。选择一个储存库,然后单击 以进行必要更改。针对所有储存库重复此过程。使用 Zypper.运行以下命令去除旧储存库
tux >
sudo
zypper removerepo OLD_REPO_ID然后运行以下命令添加相应的新储存库
tux >
sudo
zypper addrepo -f URL NAME-15-SP3编辑
/etc/zypp/repos.d
中的储存库配置文件。每个储存库由一个配置文件表示。必须在每个文件中更改baseurl
参数的值。
运行
zypper repos -u
检查更改,然后运行以下命令更新储存库:tux >
sudo
zypper refresh -f -s如果更新储存库失败,请再次检查是否输入了错误的 URL。如果无法解决问题,建议禁用失败的储存库。
如果正确配置了所有储存库,请再次运行
tux >
sudo
zypper refresh -f -s,以确保所有储存库都是最新的。
在开始迁移之前,建议先执行测试运行:
tux >
sudo
zypper dup -D --no-allow-vendor-change --no-recommends参数
-D
将执行试运行,即模拟迁移而不实际更改系统。如果出现问题,请先解决问题,然后再继续。如果测试运行成功,请运行以下命令来执行实际迁移:tux >
sudo
zypper dup --no-allow-vendor-change --no-recommends-no-allow-vendor-change
确保第三方 RPM 不会重写基础系统中的 RPM。--no-recommends
选项可确保初始安装过程中取消选择的软件包不会再次被添加。迁移完成且系统已引导进入新的服务包版本后,请再次运行孤立软件包检查:
tux >
sudo
zypper packages --orphaned将新列表与开始迁移之前生成的列表进行比较。如果列表中出现新软件包,原因可能是这些软件包已移到新服务包中的其他模块。如果以前的安装中不包含该模块,则不会更新该软件包。
您可以在 https://scc.suse.com/packages 上检查软件包所属的模块。使用
zypper addrepo
或 YaST 软件储存库模块添加缺失的模块,然后运行以下命令更新孤立的软件包:tux >
sudo
zypper install --no-recommends LIST OF PACKAGES现已成功迁移到新服务包!
5.7 回滚服务包 #
如果服务包对于您而言不起作用,则 SUSE Linux Enterprise 支持将系统恢复到开始服务包迁移之前的状态。前提是对 Btrfs 根分区启用了快照(自 SLES 12 开始,这一直是默认设置)。有关详细信息,请参见 Book “管理指南”, Chapter 7 “通过 Snapper 进行系统恢复和快照管理”。
获取所有 Snapper 快照的列表:
tux >
sudo
snapper list查看输出以找到在开始服务包迁移之前刚创建的快照。
列包含相应的声明,并且 列中会将该快照标记为important
。记住 列中的快照编号,以及 列中该快照的日期。重新启动系统。从引导菜单中选择15 SP3 开头的项并引导它。
,然后选择上一步中记下的日期和编号所对应的快照。此时会装载第二个引导菜单(快照中的那个)。选择以 SLES系统会引导到先前的状态,并且系统分区会以只读方式装入。以
root
身份登录,并检查您是否选择了正确的快照。另外,请确保一切如常。请注意,由于根文件系统是以只读方式装入的,因此功能可能受限。如果出现问题,或者您引导了错误的快照,请重新引导并选择从另一个快照引导 — 到此为止,系统尚未进行任何永久更改。如果快照正确并且按预期工作,请运行以下命令让更改永久生效:
tux >
sudo
snapper rollback然后重引导。在引导屏幕上,选择默认的引导项以重引导至恢复后的系统。
检查是否已正确重设置储存库配置。另外,检查是否所有产品均已正确注册。如果以上任何一项不正确,则稍后可能无法再有效地执行系统更新,或者可能会使用错误的软件包储存库更新系统。
请先确保系统可以访问因特网,再开始此过程。
运行以下命令以刷新服务和储存库:
tux >
sudo
zypper ref -fs运行以下命令以获得活动的储存库列表:
tux >
sudo
zypper lr仔细检查此命令的输出。为此次更新添加的服务和储存库不应该包含在列表中。例如,如果您是从 SLES 15 SP3 回滚到 SLES15 GA,则列表中必须包含
SLES15-GA
储存库,而不包含SLES15-SP3
储存库。如果列出了错误的储存库,请将其删除,必要时,请用与您的产品或服务包版本匹配的版本替换它们。有关受支持迁移路径的储存库列表,请参见第 2.3 节 “模块依赖项和生命周期”。(请注意,没有必要进行手动干预,因为储存库会自动更新,但最好进行校验并执行任何必要的更正。)
最后,通过运行以下命令检查所有已安装产品的注册状态:
tux >
sudo
SUSEConnect --status所有产品都应该报告为
已注册
。若非如此,请运行以下命令修复注册:tux >
sudo
SUSEConnect --rollback
现在,您已成功将系统恢复到就在开始服务包迁移之前捕获的状态。
5.8 使用 SUSE Manager 升级 #
SUSE Manager 是一个服务器解决方案,用于提供适用于 SUSE Linux Enterprise 客户端的更新、补丁和安全修复。它随附了一套工具和基于 Web 的用户界面,用于执行管理任务。有关 SUSE Manager 的详细信息,请参见 https://www.suse.com/products/suse-manager/。
SP 迁移允许从一个服务包 (SP) 迁移到同一个主要版本中的另一个服务包(例如,从 SLES 15 GA 迁移到 SLES 15 SP3)。
如果您的计算机由 SUSE Manager 管理,请根据 SUSE Manager 文档中所述更新计算机。https://documentation.suse.com/suma/ 上的《SUSE Manager Upgrade Guide》(SUSE Manager 升级指南)中介绍了客户端迁移过程。
5.9 从 openSUSE Leap 升级到 SUSE Linux Enterprise Server #
您可以将 openSUSE Leap 安装升级到 SUSE Linux Enterprise Server。升级过程与第 5.4 节 “使用联机迁移工具 (YaST) 升级”类似,但需要执行一些额外的步骤。在生产系统上执行此过程之前,建议您先在复制了生产系统设置的测试系统上运行此过程。
要了解哪些 openSUSE Leap 版本支持迁移,请参见第 1.2 节 “支持的 SLES 15 SP3 升级路径”。
openSUSE 提供的软件包比 SUSE Linux Enterprise Server 的要多。大多数额外的软件包都可通过 SUSE Package Hub 获得并且将会迁移。任何无法通过 SUSE Package Hub 获得的额外软件包在迁移后都不会再接收更新,因此应在迁移后将其去除。
请确保 SUSE Linux Enterprise Server 和 SUSE Package Hub 储存库中提供了运行系统所需的全部软件包。有关 SUSE Package Hub 的详细信息,请参见Book “部署指南”, Chapter 22 “安装模块、扩展和第三方附加产品”, Section 22.3 “SUSE Package Hub”。
要从 openSUSE Leap 迁移到 SUSE Linux Enterprise Server,请执行以下步骤:
切换到 TTY,例如,按 Ctrl–Alt–F1 键切换。然后以
root
身份登录。安装 yast2-registration 和 rollback-helper 软件包:
root #
zypper in yast2-registration rollback-helper
启用
rollback-helper
服务:root #
systemctl enable rollback
在 SUSE Customer Center 中注册系统:
root #
yast2 registration
执行迁移:
root #
yast2 migration
如果发生软件包冲突,YaST 提供了一个可供选择的解决方案列表。
去除孤立的软件包:
root #
zypper rm $(zypper --no-refresh packages --orphaned | gawk '{print $5}' | tail -n +5)
重引导系统:
root #
reboot
现在,您已成功将系统迁移到 SUSE Linux Enterprise Server。
如果您在迁移后遇到问题,可以像升级服务包一样还原迁移。有关说明,请参见第 5.7 节 “回滚服务包”。
6 源代码向后移植 #
SUSE 广泛使用了向后移植,例如当前的软件修复和功能迁移到过去发布的 SUSE Linux Enterprise 软件包中。本章中的信息解释通过比较版本号来判断 SUSE Linux Enterprise 软件包的功能和安全性为何有误导性。此外,本章还会说明 SUSE 如何在确保系统软件安全且最新的同时,保持 SUSE Linux Enterprise 产品上所运行应用程序软件的兼容性。您还将了解如何检查在 SUSE Linux Enterprise 系统软件中实际解决了哪些公共安全问题,以及您的软件的当前状态。
6.1 向后移植的原因 #
上游开发者主要关心所开发软件的进度。他们往往会在修复 bug 的同时引入尚未经过广泛测试并可能会造成新 bug 的新功能。
对于分发包开发者而言,必须区分两种情况:
在对功能造成有限中断的情况下执行的 bug 修复;以及
可能会中断现有功能的更改。
通常情况下,当某个软件包已属于所发布的发行套件时,发行套件开发者不会遵照所有的上游更改。通常,他们会继续使用最初发布的上游版本,并根据上游更改来创建补丁以修复 bug。这种做法称为向后移植。
通常,分发包开发者只会在两种情况下引入软件的更新版本:
当他们的软件包与上游版本之间的差异过大,以致向后移植的做法不再可行,或者
软件(例如防恶意软件的软件)由于固有的性质而变得不合时宜。
由于我们致力于在几个企业软件考虑因素之间实现合理的平衡,SUSE 广泛使用了向后移植。其中,最重要的考虑因素包括:
提供稳定的接口 (API),软件供应商在构建可用于 SUSE 企业产品的产品时可以依赖这些接口。
确保 SUSE 企业产品版本中使用的软件包具有最好的质量,这些软件包本身以及在成为整个企业产品的一部分后已经过充分的测试。
由其他供应商对 SUSE 的企业产品维持各种认证,就像对 Oracle 或 SAP 产品的认证一样。
让 SUSE 开发人员专注于开发下一个产品版本,而不是顾此失彼地将精力分散在众多不同的修订版上。
清楚明了特定企业版本中包含的功能和特性,以便我们的支持可以提供有关该版本的准确及时的信息。
6.2 不向后移植的原因 #
不要将新的上游软件包版本引入我们的企业产品,这是常见的策略规则,但不是硬性规则。对于特定的软件包类型,尤其是防病毒软件,安全方面是我们考虑更多的因素,而不是优先考虑质量保证方面的保守做法。对于这个种类的软件包,偶尔会将更新的版本引入企业产品系列的发布版本。
有时,对于其他类型的软件包,我们也会选择引入新版本,而不是向后移植。当生成向后移植在经济效益上不可行,或者由于极其相关的技术原因而需要引入更新版本时,我们会采取这种做法。
6.3 向后移植对版本号解读的影响 #
由于采用向后移植的做法,用户不能简单地通过比较版本号来确定 SUSE 软件包是否包含针对特定问题的修复,或者其中是否添加了特定的功能。在使用向后移植时,SUSE 软件包版本号的上游部分只是表示 SUSE 软件包基于的上游版本。它可能包含相应上游版本中没有但已向后移植到 SUSE 软件包中的 bug 修复和功能。
在涉及到向后移植时,版本号的这种有限价值可能会造成在特定情况下产生问题,也就是在使用安全扫描工具的时候。某些安全漏洞扫描工具(或者在此类工具中进行特定的测试)只能基于版本号运行。因此,在涉及到向后移植时,这些工具和测试很容易生成“误报”(将某个软件错误地识别为有漏洞)。在评估安全扫描工具生成的报告时,请始终检查其中的条目是基于版本号,还是基于实际的漏洞测试。
6.4 检查已修复的 bug 和向后移植的功能 #
有关向后移植的 bug 修复和功能等的信息储存在几个位置:
软件包的更改日志:
tux >
rpm -q --changelog name-of-installed-packagetux >
rpm -qp --changelog packagefile.rpm其输出简要记录了软件包的更改历史记录。
软件包的更改日志可能包含类似于引用 SUSE Bugzilla 跟踪系统中的
bsc#1234
(“Bugzilla Suse.Com”) 之类的项,或者包含指向其他 Bug 跟踪系统的链接。出于保密政策的缘故,您不一定能够访问所有此类信息。软件包中可能包含
/usr/share/doc/PACKAGENAME/README.SUSE
文件,该文件包含特定于 SUSE 软件包的一般概要信息。RPM 源软件包包含构建普通二进制 RPM 期间应用的补丁,这些补丁以独立文件的形式存在,如果您熟知如何阅读源代码,可以对这些文件进行解释。有关安装 SUSE Linux Enterprise 软件源的信息,请参见Book “管理指南”, Chapter 6 “使用命令行工具管理软件”, Section 6.1.3.5 “安装或下载源软件包”。有关在 SUSE Linux Enterprise 上构建软件包的信息,请参见Book “管理指南”, Chapter 6 “使用命令行工具管理软件”, Section 6.2.5 “安装和编译源软件包”。请参见《Maximum RPM》(充分利用 RPM)一书,了解有关 SUSE Linux Enterprise 软件包构建的细节。
有关安全 Bug 修复,请查阅 SUSE 安全声明。这些声明往往以公共漏洞和披露 (CVE) 项目所维护的标准化名称(例如
CAN-2005-2495
)来表示 Bug。
A GNU licenses #
This appendix contains the GNU Free Documentation License version 1.2.
GNU Free Documentation License #
Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
0. PREAMBLE #
The purpose of this License is to make a manual, textbook, or other functional and useful document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or non-commercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.
This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.
We have designed this License to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.
1. APPLICABILITY AND DEFINITIONS #
This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you". You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law.
A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language.
A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them.
The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none.
The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words.
A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not "Transparent" is called "Opaque".
Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only.
The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text.
A section "Entitled XYZ" means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as "Acknowledgements", "Dedications", "Endorsements", or "History".) To "Preserve the Title" of such a section when you modify the Document means that it remains a section "Entitled XYZ" according to this definition.
The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License.
2. VERBATIM COPYING #
You may copy and distribute the Document in any medium, either commercially or non-commercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3.
You may also lend copies, under the same conditions stated above, and you may publicly display copies.
3. COPYING IN QUANTITY #
If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.
If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public.
It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.
4. MODIFICATIONS #
You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:
Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission.
List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement.
State on the Title page the name of the publisher of the Modified Version, as the publisher.
Preserve all the copyright notices of the Document.
Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.
Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below.
Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice.
Include an unaltered copy of this License.
Preserve the section Entitled "History", Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence.
Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission.
For any section Entitled "Acknowledgements" or "Dedications", Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein.
Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles.
Delete any section Entitled "Endorsements". Such a section may not be included in the Modified Version.
Do not retitle any existing section to be Entitled "Endorsements" or to conflict in title with any Invariant Section.
Preserve any Warranty Disclaimers.
If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles.
You may add a section Entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard.
You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one.
The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.
5. COMBINING DOCUMENTS #
You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers.
The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work.
In the combination, you must combine any sections Entitled "History" in the various original documents, forming one section Entitled "History"; likewise combine any sections Entitled "Acknowledgements", and any sections Entitled "Dedications". You must delete all sections Entitled "Endorsements".
6. COLLECTIONS OF DOCUMENTS #
You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects.
You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.
7. AGGREGATION WITH INDEPENDENT WORKS #
A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an "aggregate" if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate.
8. TRANSLATION #
Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail.
If a section in the Document is Entitled "Acknowledgements", "Dedications", or "History", the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title.
9. TERMINATION #
You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
10. FUTURE REVISIONS OF THIS LICENSE #
The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See https://www.gnu.org/copyleft/.
Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation.
ADDENDUM: How to use this License for your documents #
Copyright (c) YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled “GNU Free Documentation License”.
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the “with...Texts.” line with this:
with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation.
If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.