摘要
本章描述 Zypper 和 RPM,这是两个用于管理软件的命令行工具。
Zypper 是用于安装和更新包的命令行工具。zypper 的语法类似于 rug 的语法。与 rug 相反,zypper 不需要在场景后运行 zmd 守护程序。有关 rug 兼容性的更多信息,请参见 man zypper 的 “COMPATIBILITY WITH RUG” 部分。这一点对于完成远程软件管理任务或从外壳脚本管理软件尤其有用。
zypper 在以下位置中包含有帮助概述:
zypper help
zypper 的常用语法为:
zypper[global-options]command[command-options][arguments]...
不需要括在括号中的组件。执行 zypper 最简单的方式是,键入其名称后跟一个命令。例如,将所有需要的增补程序应用于系统类型:
zypper patch
或者,可以从一个或多个全局选项中选择,方法是:只需在命令前面键入这些选项。例如,--non-interactive 表示运行此命令且不作任何询问,自行决定:
zypper --non-interactive patch
要使用特定于某一特定命令的选项,请在此命令后面键入这些选项。例如,--auto-agree-with-licenses 表示将所有所需增补程序应用于系统且不要求确认任何许可证(所有这些许可证事先都已读取):
zypper patch --auto-agree-with-licenses
某些命令需要一个或多个自变量:
zypper install mplayer
某些选项也需要自变量。以下方式列出所有已知的模式:
zypper search -t pattern
您可以组合上述所有模式。例如,以下方式仅使用 factory 安装源安装 mplayer 和 amarok 包,并且使用详细日志方式:
zypper -v install --repo factory mplayer amarok
要安装来自注册安装源的包,请使用:
zypper install package_name要安装特定版本的包,请使用
zypper install package_name=version
zypper 也支持通配符。例如,要安装以 开头的所有包,请使用
package_name
zypper install package_name*
您还可以直接安装本地或远程 RPM - Zypper 还将根据以下命令自动安装所有 package_name 包:
zypper install http://www.example.com/package_name.rpm要删除已安装的包,请使用
zypper remove package_name
要一次安装和删除多个包,请使用 +/- 或 ~/! 修改键一次性安装和删除包:
zypper install emacs -vim
或:
zypper remove emacs +vim
或者,如果选择将 - 和指定的第一个包一起使用,则必须在该包之前写上 --,以免将其解释为命令选项:
zypper install -- -vim emacs
![]() | 请勿删除系统必需的包 |
|---|---|
请勿删除如 | |
默认情况下,在安装或删除选定包之前或发生问题时,zypper 会要求确认。请使用 --non-interactive 选项覆盖此行为。在实际命令(install、remove 和 patch)之前必须提供此选项,如同
zypper--non-interactiveinstallpackage_name
此选项允许在脚本和 Cron 任务中使用 zypper。
如果要安装某包的对应源代码包,请使用
zypper source-install package_name
使用此命令,还可安装指定包的构建依赖性。如果不想执行此操作,请如下所示添加开关 --no-build-deps:
zypper source-install --no-build-deps package_name
当然,仅当您已将带有源代码包的安装源添加到安装源列表中时,此操作才有效。输入 zypper search -t srcpackage 以获取安装源中可用的源包。有关添加安装源的更多信息,请参见第 4.1.4 节 “管理安装源”。
如果安装期间发生错误,或认为需要的任何时候,可以校验是否仍满足所有依赖性要求:
zypper verify
使用 zypper 更新软件共有两种不同的方式。要将所有已正式发布的增补程序集成到您的系统中,只需运行
zypper patch
这种情况下,会对安装源中的所有可用增补程序进行相关性检查,如有需要,还会安装这些增补程序。注册 SUSE Linux Enterprise 安装之后,包含此类增补程序的官方更新安装源将添加到您的系统中。需要应用它们时,只需输入上述命令。
如果某个安装源只包含新包,但未提供增补程序,则 zypper patch 不会产生任何作用。要使用新的可用版本更新所有安装的包,请使用:
zypper update
要更新单个包,请使用带自变量的更新命令:
zypper update package_name或安装命令:
zypper install package_name可使用此命令来获取所有可用新包的列表:
zypper list-updates
类似的,要列出所有所需的包,请使用:
zypper list-patches
zypper 的所有安装或增补程序命令均基于 zypper 已知的安装源列表。要列出系统已知的所有安装源,请使用命令:
zypper repos
结果将类似于与以下输出:
# | Alias | Name | Enabled | Refresh --+-----------------------------------+-----------------------------------+---------+-------- 1 | SUSE-Linux-Enterprise-Server 11-0 | SUSE-Linux-Enterprise-Server 11-0 | Yes | No 2 | SLES-11-Updates | SLES 11 Online Updates | Yes | Yes 3 | broadcomdrv | Broadcom Drivers | Yes | No
当在各个命令中指定安装源时,可以使用别名、URI 或 zypper repos 命令输出中的安装源编号。但要注意,在修改安装源列表后,这些编号可能会更改。别名本身不会更改。
如果要从此列表中删除某个安装源,请将命令 zypper removerepo 和要删除的安装源的别名或编号结合使用。要删除示例中的 Broadcom Drivers,请使用以下命令:
zypper removerepo 3
要添加安装源,请运行
zypper addrepoURIAlias
URI 可以是因特网安装源、目录或 CD 或 DVD。Alias 是安装源的唯一简写标识符。您可以自由选择别名,唯一的例外情况是别名必须唯一。如果指定的别名已在使用,zypper 将发出警告。
要使得安装源更便于使用,请使用简短易记的别名。安装源别名可以使用 renamerepo 命令更改。例如,要将示例长名称 SUSE-Linux-Enterprise-Server 11-0 更改为简短的标签 main,请输入:
zypper renamerepo 1 main
可以使用各种查询命令,如 search、info 或 what-provides。
search 可用于包名或(可选)包摘要和说明,并在所发现包的列表的第一列中显示状态 (S) 信息。
带有作为自变量的包名的 info 会显示包的详细信息。
what-provides 类似于 rpm -q --whatprovides packagepackage,但是 rpm 只能查询 RPM 数据库(即所有已安装包的数据库)。另一方面,Zypper 将告诉您任意安装源的功能的提供商,而非仅已安装的安装源功能的提供商。
有关更多查询命令和详细的用法信息,请参见 zypper 手册页 (man zypper)。