8 安装或去除软件 #
使用 YaST 的软件管理模块,您可以搜索、安装和去除软件包。安装软件包时,YaST 将自动解析所有依赖项。要安装未存放在安装媒体中的软件包,可以添加软件储存库和 YaST 来管理它们。您还可以使用更新小程序管理软件更新,让系统保持最新状态。
YaST 软件管理器让您可以管理系统上的储存库。此 YaST 模块有两个版本:一个是 X Window 的图形版本,另一个是搭配命令行使用的基于文本的版本。下文会介绍图形变体 — 有关基于文本的 YaST 的细节,请参见第 4 章 “文本模式下的 YaST”。
安装、更新或去除软件包时,只有在单击
或 之后,才会应用软件管理器中的所有更改。YaST 有一个包含所有操作的列表,允许您在将更改应用于系统前对更改进行复查和修改。8.1 术语定义 #
要了解如何在 SUSE Linux Enterprise Server 中安装和去除软件,必须理解以下术语。
- 储存库
包含软件包和有关这些软件包的更多信息(软件包元数据)的本地或远程目录。
- (储存库)别名/储存库名称
储存库的简短名称(在 Zypper 中称为
Alias
,在 YaST 中称为 )。该别名可以由用户在添加储存库时选择且必须唯一。- 储存库描述文件
每个储存库都提供描述储存库内容(软件包名称、版本等)的文件。这些储存库描述文件将下载到 YaST 使用的本地缓存中。
- 产品
表示整个产品,例如 SUSE® Linux Enterprise Server。
- 软件集
软件集是一组专用于某种用途的可安装软件包。例如,
Laptop
软件集包含移动计算环境中所需的所有软件包。软件集定义软件包依赖项(比如必需的软件包或推荐的软件包),并预选择了标记为安装的软件包。这可确保在安装此软件集后某种用途所需的最重要的软件包在系统上可用。如有必要,您可以手动选择或取消选择某个软件集中的软件包。- 软件包
软件包是
rpm
格式的压缩文件,包含特定程序的文件。- 补丁
补丁由一个或多个软件包组成,可通过增量 RPM 应用。它也可能带来尚未安装的软件包的依赖项。
- 可解决
用于产品、模式、软件包或补丁的一个常用术语。最常见的可解决类型为软件包或补丁。
- 增量 RPM
增量 RPM 仅包含某个软件包的两个已定义版本之间的有区别二进制文件,因此其下载大小最小。安装前,需要在本地计算机上重构建完整 rpm 软件包。
- 软件包依赖项
一些软件包依赖于其他软件包,例如共享库。换句话说,一个软件包可能会
require
其他软件包,如果必需的软件包不可用,便无法安装软件包。除了必须满足的依赖关系(软件包要求)之外,某些软件包还会recommend
其他软件包。这些推荐的软件包仅在可用时才安装,否则系统将忽略它们,不过仍会安装推荐它们的软件包。
8.2 注册已安装的系统 #
如果您在安装期间跳过了注册,或者想重新注册系统,随时都可以注册系统。使用 YaST 模块产品注册或命令行工具 SUSEConnect
。
8.2.1 使用 YaST 注册 #
要注册系统,请启动 YaST,并依次切换到
和 。系统默认会在 SUSE Customer Center 中注册。如果您的组织提供了本地注册服务器,您可以从自动检测到的服务器列表中选择一个服务器,或手动提供 URL。
8.2.2 使用 SUSEConnect 注册 #
要从命令行注册,请使用命令
>
sudo
SUSEConnect -r REGISTRATION_CODE -e EMAIL_ADDRESS
将 REGISTRATION_CODE 替换为与 SUSE Linux Enterprise Server 副本一同收到的注册码。将 EMAIL_ADDRESS 替换为与您或贵组织管理订阅时所用 SUSE 帐户关联的电子邮件地址。
要使用本地注册服务器注册,还需提供该服务器的 URL:
>
sudo
SUSEConnect -r REGISTRATION_CODE -e EMAIL_ADDRESS --url "URL"
8.3 使用 YaST 软件管理器 #
从
选择 › 可以启动软件管理器。8.3.1 搜索软件 #
YaST 软件管理器可以从所有当前启用的储存库中安装软件包或软件集。它提供了不同的视图和过滤器,帮助更方便地查找要搜索的软件。
视图是窗口的默认视图。要更改视图,请单击 并从下拉框中选择以下项之一。选定视图会在新的选项卡中打开。列出系统上所有可用于安装的软件集。
列出所有软件包,按组排序,例如
、 或 。一个过滤器,用于列出添加某个新系统语言所需的所有软件包。
一个过滤器,用于按储存库列出软件包。要选择多个储存库,请按住 Ctrl 键的同时单击储存库名称。“伪储存库” 会列出当前安装的所有软件包。
显示哪些软件包属于特定的模块或扩展。选项一个项(例如
Basesystem
或High Availability
)可以显示属于此模块或扩展的软件包列表。可让您按照特定准则搜索软件包。输入搜索条件并按下 Enter。通过指定 和更改 来优化搜索。例如,如果您不知道软件包名称,只知道要搜索的应用程序名称,请尝试在搜索过程中包括软件包 。
如果已选择要安装、更新或去除的软件包,此视图会显示单击Shift–F1。
后将应用于系统的更改。要过滤此视图中具有特定状态的软件包,请激活或停用相应的复选框。要了解状态标志的细节,请按
要列出所有不属于活动安装源的包,可以选择
› › ,然后选择 › 。例如,如果您删除了某个储存库,并想要确保系统上不再安装该储存库中的任何软件包,则此操作就非常有用。联机搜索功能可以搜索所有已注册和未注册模块和扩展的软件包。
要联机搜索软件包,请执行以下步骤:
单击
› 打开联机搜索窗口。输入Enter 键或单击 。YaST 会连接 SUSE Customer Center 并在表格中显示结果,其中包括每个软件包的模块或扩展。选择某个软件包可查看更多细节。
,然后按单击表格中相应的行和
,选择一个或多个要安装的软件包。或者,您也可以双击某一行。如果软件包属于未注册的模块或扩展,YaST 会向您确认是否注册该模块或扩展。单击
,检查更改,然后安装软件包。
8.3.2 安装和去除软件包或软件集 #
一些软件包依赖于其他软件包,例如共享库。一些软件包不能与其他软件包在系统中共存。如果可行,YaST 会自动解决这些依赖项或冲突。如果您的选择导致无法自动解决的依赖项冲突,则需要按照第 8.3.4 节 “软件包依赖项”中所述手动解决冲突。
去除软件包时,默认情况下 YaST 仅去除所选的软件包。如果希望 YaST 还去除在去除指定软件包后变为不需要的所有其他软件包,请从主菜单中选择
› 。按照第 8.3.1 节 “搜索软件”中所述搜索软件包。
右窗格中会列出找到的软件包。要安装或删除某个软件包,可以右键单击它并选择Shift–F1 可获取帮助。
或 。如果相关选项不可用,可以检查软件包名称前的符号指示的软件包状态 — 按提示:对列出的所有软件包应用操作要对右窗格中列出的所有软件包应用某项操作,请转到主菜单,并从
› 中选择操作。要安装某个模式,可以右键单击模式名称并选择
。无法去除软件集。但可以选择软件集中要去除的软件包,并将它们标记为待去除。
要选择更多的软件包,请重复上述步骤。
在应用您的更改前,可以通过单击
› 对它们进行检查或修改。默认会列出所有将更改状态的软件包。要还原某个软件包的状态,可以右键单击该软件包并选择以下任一项:
(如果已安排要删除或更新软件包),或 (如果已安排要安装软件包)。要放弃所有更改并退出软件管理器,请单击 和 。完成后,单击
应用您的更改。如果 YaST 找到其他依赖项,会显示要安装、更新或去除的相关软件包的列表。单击
接受它们。安装、更新或去除所有选定软件包后,YaST 软件管理器会自动关闭。
目前无法通过 YaST 软件管理器安装源软件包。为了实现该目的,可以使用命令行工具 zypper
。有关详细信息,请访问 第 9.1.3.5 节 “安装或下载源软件包”。
8.3.3 更新软件包 #
除了更新单个软件包外,还可以从某个储存库更改所有安装的软件包或所有软件包。大批量更新软件包时,通常需要注意以下几个方面:
提供软件包的储存库的优先级,
软件包的体系结构(例如 AMD64/Intel 64),
软件包的版本号,
软件包的供应商。
哪个方面对选择候选更新软件包最重要,取决于您选择的相应更新选项。
要将所有安装的软件包更新到最新版本,请从主菜单中选择
› › 。系统会根据以下策略在所有储存库中检查有无可用的候选更新软件包:YaST 会先尝试将搜索范围限制在与已安装软件包的体系结构和供应商相同的软件包。如果找到结果,将根据以下过程选择“最佳”候选更新软件包。但是,如果找不到具有相同供应商的可比较软件包,则将搜索范围扩大到具有相同体系结构的所有软件包。如果还是找不到可比较软件包,将考虑所有软件包,并根据以下准则选择“最佳”候选更新软件包:
储存库优先级:使用优先级最高的储存库中的软件包。
如果这种选择的结果得出多个软件包,请选择体系结构“最佳”的软件包(最佳选择:与已安装软件包的体系结构匹配)。
如果所选的软件包的版本号比已安装软件包的高,将用所选的候选更新软件包更新并替换已安装软件包。
此选项会试图避免更改已安装软件包的体系结构和供应商,但在某些情况下,会容许此类更改。
注意:无条件更新如果选择的是
› › ,则会应用相同的准则,但会无条件安装找到的任何候选软件包。因此,选择此选项可能会使某些软件包降级。确保用于大批量更新的软件包来自特定安装源:
请按照第 8.3.1 节 “搜索软件”中所述选择要从中更新的安装源。
在窗口的右侧,单击
。此操作明确允许 YaST 在替换软件包时更改软件包供应商。单击
后,所有已安装的软件包都将替换为来自此储存库的软件包(如果可用)。这样会导致供应商和体系结构变更,甚至会使某些软件包降级。要避免这种情况,请单击
。只有在单击 按钮后才能取消。
在应用您的更改前,可以通过单击
› 对它们进行检查或修改。默认情况下,会列出所有将更改状态的软件包。如果所有选项都按照您的喜好设置完毕,请单击
确认您的更改以启动大批量更新。
8.3.4 软件包依赖项 #
大多数软件包都依赖于其他软件包。例如,如果软件包使用了某个共享库,则它依赖于提供该库的软件包。一些软件包无法共存,否则会产生冲突(例如,邮件传送代理 sendmail 与 postfix 之中,您只能安装一个)。安装或删除软件时,软件管理器会确保不留下任何未解决的依赖项或冲突,以保证系统完整性。
当依赖项或冲突只有一种解决方法时,将会自动解决依赖项或冲突。存在多种解决方法总是会导致需要手动解决的冲突。如果解决冲突涉及到更改供应商或体系结构,则它也需要手动解决。在软件管理器中单击
应用更改时,会显示由自动解析程序触发的所有操作的概述,需要您确认。默认情况下,会自动检查依赖项。每次更改软件包的状态时(例如,将某个软件包标记为供安装或删除),都会执行检查。通常它很有用,但在手动解决依赖项冲突时会令人厌烦。要禁用此功能,请转到主菜单,然后停用
› 。通过 › 手动执行依赖项检查。在单击 来确认您的选择时,总是会执行一致性检查。要查看软件包的依赖项,可以单击右键并选择
。此时会打开显示依赖项的图。已安装的软件包显示在绿框中。除非有经验,否则在处理软件包冲突时请遵循 YaST 所做的建议,不然可能无法解决它们。请注意,您所做的每个更改都可能会触发其他冲突,因此最终很容易导致冲突数量不断上升。发生这种情况时,请
软件管理器, 所有更改并重新开始。8.3.5 处理软件包建议 #
除了具有运行程序所需的硬依赖项(例如特定的库)以外,软件包还可能具有弱依赖项(例如,增加额外的功能或翻译)。这些弱依赖项称为软件包推荐。
安装新软件包时,默认情况下仍会安装推荐的软件包。更新现有软件包时,不会自动安装缺少的推荐软件包。要更改此设置,请在 /etc/sysconfig/yast2
中设置 PKGMGR_RECOMMENDED="yes"
。要安装已安装包的所有缺失推荐组件,请启动 › ,然后选择 › 。
要在安装新软件包时不安装推荐的软件包,请在 YaST 软件管理器中停用--no-recommends.
8.4 管理软件储存库和服务 #
要安装第三方软件,请向系统添加软件储存库。默认情况下,系统注册时会自动配置产品储存库(例如 SUSE Linux Enterprise Server-DVD 15 SP6)和匹配的更新储存库。有关注册的更多信息,请参见第 9.7 节 “注册”或第 4.8 节 “注册系统”。根据最初所选的产品,可能还会配置包含翻译、词典等的附加储存库。
要管理储存库,请启动 YaST,并选择
› 。将打开 对话框。在此,还可以通过将对话框右角的 更改为 来管理 订阅。此环境中的服务是一种 (RIS),它能提供一个或多个软件储存库。此类服务可通过其管理员或供应商手动更改。每个储存库都提供描述储存库内容(软件包名称、版本等)的文件。YaST 将这些储存库描述文件下载到本地缓存中。为了确保完整性,可使用软件储存库维护人员的 GPG 密钥来为储存库签名。每当您添加新的储存库时,YaST 都可让您导入其密钥。
将外部软件储存库添加到您的储存库列表前,请先确保此储存库可信。对于因安装的来自第三方软件储存库中的软件引起的任何问题,SUSE 不承担任何责任。
8.4.1 添加软件储存库 #
可以从 DVD/CD、USB 闪存盘、本地目录、ISO 映像或网络源添加储存库。
要通过 YaST 的
对话框添加储存库,请执行以下步骤:单击
。选择对话框中列出的选项之一:
图 8.2︰ 添加软件储存库 #要通过 SLP 在网络中扫描宣告了其服务的安装服务器,请选择
,然后单击 。要从可卸媒体添加安装源,请选择相关选项,并在计算机中插入媒体或连接 USB 设备。单击
开始安装。对于大多数储存库,在选择相应的选项并单击
后,系统会提示您指定媒体的路径(或 URL)。可以选择性地指定 。如果不指定任何储存库名称,YaST 将使用产品的名称或 URL 作为储存库名称。
默认情况下已激活
选项。如果停用该选项,YaST 稍后会根据需要自动下载这些文件。根据您添加的储存库,系统可能会提示您导入储存库的 GPG 密钥,或者要求您同意许可条款。
您确认后,YaST 即会下载并分析元数据。它会将储存库添加到
列表。如果需要,请根据第 8.4.2 节 “管理储存库属性”中所述调整储存库的 。
单击
确认所做的更改,并关闭配置对话框。成功添加储存库之后,会启动软件管理器,您可以从此储存库安装软件包。有关细节,请参见第 8 章 “安装或去除软件”。
8.4.2 管理储存库属性 #
通过
的 概述,可以更改以下储存库属性:- 状态
储存库状态可以为
或 。您只能从已启用的储存库安装软件包。要暂时关闭某个储存库,请将它选中并停用 。您还可以双击某个储存库名称来切换其状态。要彻底去除某个储存库,请单击 。- 刷新
刷新储存库时,会将其内容描述(软件包名称、版本等)下载到 YaST 使用的本地缓存中。对于诸如 CD 或 DVD 之类的静态储存库,该操作执行一次就已足够,而对于内容经常改变的储存库,应经常进行刷新。要使储存库的缓存保持最新,最简单的方式就是选择
。要执行手动刷新,请单击 并选择一个选项。安装前从远程储存库下载软件包。默认情况下,这些软件包安装成功后即会删除。激活
可防止删除已下载的软件包。下载位置在/etc/zypp/zypp.conf
中配置,默认为/var/cache/zypp/packages
。储存库
是介于1
到200
之间的值,1
是最高优先级,200
是最低优先级。默认情况下,通过 YaST 添加的任何新储存库的优先级都是99
。如果您不在意某个储存库的优先级值,还可以将值设置为0
,表示对该储存库应用默认优先级 (99
)。如果有多个储存库都提供了某个软件包,那么将优先使用优先级最高的储存库。因此,要避免从互联网下载不需要的软件包,可以为本地储存库(如 DVD)指定较高优先级。重要:优先级与版本的对比在任何情况下,优先级最高的储存库都是优先的。因此,请确保更新储存库总是具有最高优先级,否则您可能会安装过时的版本,直到下一次联机更新时才会更新该版本。
- 名称和 URL
要更改储存库名称或其 URL,可以从列表中单击选择它,然后单击
。
8.4.3 管理储存库密钥 #
为了确保完整性,可使用软件储存库维护人员的 GPG 密钥来为储存库签名。每当您要添加新的储存库时,YaST 都可让您导入其密钥。像校验任何其他 GPG 密钥一样对它进行校验,并确保它未更改。如果检测到密钥更改,则说明储存库可能存在错误。禁用它作为储存库,直到知道密钥更改原因为止。
要管理所有导入的密钥,请在
对话框中单击 。用鼠标选择一个项以在窗口底部显示密钥属性。单击相应按钮可 、 或 密钥。8.5 GNOME Package Updater #
SUSE 持续为您的产品提供软件安全补丁和更新。可以使用连同桌面一起提供的工具或者运行 YaST 联机更新模块来安装这些补丁和更新。本节介绍如何使用 通过 GNOME 桌面更新系统。
与 YaST Online Update 模块相比,GNOME
不仅可以从更新储存库安装补丁,而且还能安装已安装的软件包的新版本。(补丁可以修复安全问题或功能异常;功能和版本号通常不会更改。新版软件包的版本号会增大,并且软件包中会增加功能,或者引入重大更改。)每当有新的补丁或软件包更新可用时,GNOME 就会在通知区域或锁定屏幕中显示通知。
要配置
的通知设置,请启动 GNOME ,然后选择 › 。要安装补丁和更新,请单击通知消息。此时会打开 GNOME
。或者,在 中键入package U
并选择 ,以打开更新程序。更新已按四个类别排序:
- 安全性更新(补丁)
修复严重的安全性危害,请务必安装。
- 建议的更新(补丁)
修复可能危及计算机安全的问题。强烈建议安装此类更新。
- 可选更新(补丁)
修复非安全性相关的问题或提供增强功能。
- 其他更新
已安装的软件包的新版本。
系统已预先选择安装所有可用更新。如果您不想要安装所有更新,请先取消选择不需要的更新。强烈建议始终安装所有安全更新和建议的更新。
要查看某个更新的详细信息,请单击其标题,然后单击
。信息即会显示在软件包列表下面的框中。单击
以开始安装。某些更新可能需要重启动计算机或注销。检查安装后显示的消息,以获取相关说明。
8.6 使用 更新软件包 #
除 GNOME
以外,GNOME 还提供具有以下功能的 :安装、更新和去除通过 PackageKit 以 RPM 形式交付的软件
安装、更新和去除以 Flatpak 形式交付的软件
安装、更新和去除 GNOME 外壳扩展 (https://extensions.gnome.org)
使用 Linux 供应商固件服务(LVFS,请参见 https://fwupd.org)更新硬件设备的固件
还提供软件的屏幕截图、评级和评论。
与 SUSE Linux Enterprise Server 中提供的其他工具相比, 存在以下差别:
YaST 或 Zypper 可以安装打包为 RPM 的软件,而
则与此不同,它仅限于安装可提供 AppStream 元数据的软件。这包括大部分桌面应用程序。GNOME
会更新正在运行的系统中的软件包(这会强制您重启动相应的应用程序),而 则是下载更新并在重引导后应用这些更新。