在 SUSE Linux 上管理包的 20 个 Zypper 命令示例

华为云 2022-09-23 09:22:49 阅读数:87

linux管理命令susezypper

yum适用于 CentOS 和 Redhat。

apt-get适用于 Debian 和 Ubuntu。

同样,zypper 适用于 SUSE Linux。

Zypper 是 OpenSUSE 和 SUSE Enterprise Linux 平台中用于包管理的命令行工具。

在高层次上,您可以使用 zypper 命令管理两个不同的事情:

  1. 管理软件包:Zypper 用于安装、删除、更新和查询本地或远程媒体的软件包。
  2. 管理存储库:Zypper 还能够使用存储库。您可以从命令行添加、删除、启用或禁用存储库。它还能够在安装过程中优先考虑您的存储库。

一、使用 Zypper 管理包

1. 使用 zypper 安装包

要使用 zypper 命令安装软件包,请使用以下语法:

zypper install <package Name>

例如,要安装 Mozilla firefox 及其所有依赖项,请执行以下命令:

# zypper install MozillaFirefoxLoading repository data...Reading installed packages...Resolving package dependencies...The following NEW packages are going to be installed: MozillaFirefox MozillaFirefox-branding-SLEDThe following packages are not supported by their vendor: MozillaFirefox MozillaFirefox-branding-SLED2 new packages to install.Overall download size: 964.0 KiB. After the operation, additional 3.4 MiB will be used.Continue? [y/n/?] (y): yRetrieving package MozillaFirefox-3.6.16-0.2.1.x86_64 (1/2), 949.0 KiB (3.4 MiB unpacked)Retrieving: MozillaFirefox-3.6.16-0.2.1.x86_64.rpm [done]Installing: MozillaFirefox-3.6.16-0.2.1 [done]Retrieving package MozillaFirefox-branding-SLED-3.5-1.1.5.x86_64 (2/2), 15.0 KiB (34.0 KiB unpacked)Retrieving: MozillaFirefox-branding-SLED-3.5-1.1.5.x86_64.rpm [done]Installing: MozillaFirefox-branding-SLED-3.5-1.1.5 [done]

2.安装源码包

要在存储库中安装源包,请使用 source-install 选项,如下所示。


# zypper source-install apache2-mod_nssReading installed packages...Loading repository data...Resolving package dependencies...Retrieving package mozilla-nss-devel-3.12.8-1.2.1.x86_64 (2/3), 473.0 KiB (2.6 MiB unpacked)Retrieving: mozilla-nss-devel-3.12.8-1.2.1.x86_64.rpm [done]Installing: mozilla-nss-devel-3.12.8-1.2.1 [done]Retrieving: apache2-mod_nss-1.0.8-17.5.src.rpm [done]

3.更新包

安装软件包后,您可以在可用时使用更新命令将其升级到新版本,如下所示。

以下将只升级 MozillaFirefox 包。

zypper update MozillaFirefox

以下会将您系统上的所有软件包升级到最新版本。

zypper update

您还可以使用 list-updates 选项查看所有可用更新,如下所示。

zypper list-updates

4. 全系统全分发升级

要在系统上执行完整的发行版升级,请使用 dup 选项和 zypper,如下所示:

# zypper dupWarning: You are about to do a distribution upgrade with all enabled repositories. Make sure these repositories are compatible before you continue. See 'man zypper' for more information about this command.Loading repository data...Reading installed packages...Computing distribution upgrade...The following NEW packages are going to be installed: drbd-xen libsoftokn3-32bit mozilla-nspr-32bit mozilla-nss-32bit mozilla-nss-certs-32bit suseRegister xen yast2-registration yast2-registration-branding-SLEThe following packages are going to be upgraded: libfreebl3-32bit libnsssharedhelper0 libnsssharedhelper0-32bitThe following packages are going to change vendor: libfreebl3-32bit SUSE LINUX Products GmbH, Nuernberg, Germany -> openSUSE Build Service libnsssharedhelper0 SUSE LINUX Products GmbH, Nuernberg, Germany -> openSUSE Build Service libnsssharedhelper0-32bit SUSE LINUX Products GmbH, Nuernberg, Germany -> openSUSE Build Service

5. 删除一个包

要删除包,请使用如下所示的删除选项。这也将删除所有依赖项。

# zypper remove MozillaFirefoxLoading repository data...Reading installed packages...Resolving package dependencies...The following packages are going to be REMOVED: MozillaFirefox MozillaFirefox-branding-SLED2 packages to remove.After the operation, 3.4 MiB will be freed.Continue? [y/n/?] (y): yRemoving MozillaFirefox-branding-SLED-3.5-1.1.5 [done]Removing MozillaFirefox-3.6.16-0.2.1 [done]

6. 搜索特定包

要从存储库中搜索包,请使用以下命令。您还可以在关键字中使用通配符。

在此示例中,它将搜索以关键字“usb”开头的所有包。

# zypper search usb*Loading repository data...Reading installed packages...S | Name | Summary | Type--+----------------+----------------------------------------------------------------+-------- | usb_modeswitch | A mode switching tool for controlling multiple-device USB gear | packagei | usbutils | Tools and libraries for USB devices 

7.查看包的详细信息

要显示有关特定包的信息,请使用 zypper 的 info 选项,如下所示:

# zypper info usbutilsLoading repository data...Reading installed packages...Information for package usbutils:Repository: @SystemName: usbutilsVersion: 0.73-38.19Arch: x86_64Vendor: SUSE LINUX Products GmbH, Nuernberg, GermanySupport Level: unknownInstalled: YesStatus: up-to-dateInstalled Size: 461.0 KiBSummary: Tools and libraries for USB devicesDescription:This package contains a utility for inspecting devices connected to USBports.It requires kernel version 2.3.99-pre7 or newer, or the USB backportwhich was introduced in 2.2.18 (supporting the /proc/bus/usbinterface).

8. 使用 Zypper 安装补丁

您还可以使用 zypper 在您的系统上安装补丁程序。

首先,使用补丁选项查看所有可用补丁,如下所示:

zypper patches

接下来,您可以使用补丁选项从上述输出安装特定补丁,如下所示。

zypper patch <patch name>

9.锁定一个特定的包

包锁定可防止对系统上的包进行更改。设置此锁定后,您将无法删除、升级软件包。

以下示例显示了如何设置包锁并在需要时将其移除。

使用“al”选项将包锁添加到 ypbind 包。al 代表“添加锁”

# zypper al ypbindSpecified lock has been successfully added.

要查看所有锁定的包,请使用“ll”选项。ll 代表“列表锁”。以下输出表明“ypbind”包当前被锁定,您无法删除或升级此包。

# zypper ll# | Name | Type | Repository--+--------+---------+-----------1 | ypbind | package | (any)

10.从包中删除锁

使用“rl”选项从 ypbind 包中删除包锁。rl 代表“删除锁定”

# zypper rl ypbindLoading repository data...Reading installed packages...1 lock has been successfully removed.

正如您在下面看到的,目前没有包被锁定。

# zypper llThere are no package locks defined.

二、使用 Zypper 管理存储库

11. 使用 Zypper 添加存储库

使用 http URI 添加存储库的一般语法如下:

zypper addrepo <options> <URI> <alias>

例如,要使用 URI 添加存储库,请执行以下操作:

# zypper addrepo --check --refresh --name "Mozilla-repo" http://download.opensuse.org/repositories/mozilla/SLE_11/ "Mozillarepo"Adding repository 'Mozilla-repo' [done]Repository 'Mozilla-repo' successfully addedEnabled: YesAutorefresh: YesURI: http://download.opensuse.org/repositories/mozilla/SLE_11/

12. 创建本地存储库

您还可以使用以下语法从服务器上包含所有 rpm 文件的本地目录创建本地存储库:

zypper addrepo <Path_to_dir> <Repo Name>

例如,要使用包含所有 rpm 的本地目录添加名为 myrepo 的存储库,请使用以下命令:

# zypper addrepo /var/stormgt/dsminst mylocalrepoAdding repository 'mylocalrepo' [done]Repository 'mylocalrepo' successfully addedEnabled: YesAutorefresh: NoURI: dir:///var/stormgt/dsminst# zypper search --repo mylocalrepoLoading repository data...Reading installed packages...S | Name | Summary | Type--+-------------+-----------------------------------------+--------i | TIVsm-API | the API | packagei | TIVsm-API64 | the API | packagei | TIVsm-BA | the Backup Archive Client | packagei | gskcrypt32 | IBM GSKit Cryptography Runtime | packagei | gskcrypt64 | IBM GSKit Cryptography Runtime | packagei | gskssl32 | IBM GSKit SSL Runtime With Acme Toolkit | packagei | gskssl64 | IBM GSKit SSL Runtime With Acme Toolkit | package

您还可以使用上述命令将 NFS 或 FTP 位置添加到存储库。

13.查看存储库

您可以使用以下 zypper 命令查看所有存储库:

# zypper lr# | Alias | Name | Enabled | Refresh--+--------------------------------------------------+--------------------------------------------------+---------+--------1 | Mozillarepo | Mozilla-repo | Yes | Yes2 | SUSE-Linux-Enterprise-Server-11-SP1 11.1.1-1.152 | SUSE-Linux-Enterprise-Server-11-SP1 11.1.1-1.152 | Yes | Yes

要显示 repo 的完整 URI,请使用以下命令:

# zypper lr --uri# | Alias | Name | Enabled | Refresh | URI--+--------------------------------------------------+--------------------------------------------------+---------+---------+----------------------------------------------------------1 | Mozillarepo | Mozilla-repo | Yes | Yes | http://download.opensuse.org/repositories/mozilla/SLE_11/2 | SUSE-Linux-Enterprise-Server-11-SP1 11.1.1-1.152 | SUSE-Linux-Enterprise-Server-11-SP1 11.1.1-1.152 | Yes | Yes | http://19.106.65.64/FUSELinux/600RC0

14. 在存储库中搜索包

要列出特定存储库中的所有包,请使用以下命令:

# zypper search --repo MozillarepoLoading repository data...Reading installed packages...S | Name | Summary | Type--+--------------------------------------+-------------------------------------------------------------------------+-----------i | MozillaFirefox | Mozilla Firefox Web Browser | packagei | MozillaFirefox-branding-SLED | SLED branding of MozillaFirefox | package | MozillaFirefox-branding-openSUSE | openSUSE branding of MozillaFirefox | package | MozillaFirefox-branding-openSUSE | openSUSE branding of MozillaFirefox | srcpackage

15.重命名存储库

要重命名任何存储库,请使用 renamerepo 选项。

在此示例中,存储库名称“mylocalrepo”已重命名为“LOCALRPM-Repo”

# zypper renamerepo mylocalrepo LOCALRPM-RepoRepository 'mylocalrepo' renamed to 'LOCALRPM-Repo'.

16.删除存储库

要删除存储库,请使用 removerepo 选项,如下所示。

# zypper removerepo LOCALRPM-RepoRemoving repository 'mylocalrepo' [done]Repository 'mylocalrepo' has been removed.

17. 备份存储库

您可以使用导出选项备份包含存储库列表的存储库文件,如下所示。这会将存储库列表存储在 backup.repo 文件中。

# zypper lr --export /var/tmp/backup.repoRepositories have been successfully exported to /var/tmp/backup.repo.

18. 从备份添加存储库

如果您有以前导出的存储库文件,则可以使用 addrepo 命令添加新的存储库,如下所示。

zypper addrepo /var/tmp/backup.rep

19.禁用或启用存储库

要禁用存储库,请使用带有 -d 标志的 modify repo 选项,如下所示。这将禁用 Mozilla 存储库。

# zypper modifyrepo -d MozillarepoRepository 'Mozillarepo' has been successfully disabled.

要启用之前禁用的存储库,请使用 -e 标志和 modifyrepo 选项,如下所示。

# zypper modifyrepo -e MozillarepoRepository 'Mozillarepo' has been successfully enabled.

20. 刷新存储库

当存储库过时时,刷新存储库非常重要。您可以按照以下示例进行手动刷新,也可以设置为在需要时自动刷新。

# zypper refresh MozillarepoRepository 'Mozilla-repo' is up to date.Specified repositories have been refreshed.

要为特定存储库设置自动刷新选项,请使用如下示例所示的命令:

# zypper modifyrepo --refresh mylocalrepoAutorefresh has been enabled for repository 'mylocalrepo'.
版权声明:本文为[华为云]所创,转载请带上原文链接,感谢。 https://bbs.huaweicloud.com/blogs/375692