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

举报
Tiamo_T 发表于 2022/09/22 23:59:17 2022/09/22
【摘要】 yum适用于 CentOS 和 Redhat。 apt-get适用于 Debian 和 Ubuntu。 同样,zypper 适用于 SUSE Linux。

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 MozillaFirefox
Loading repository data...
Reading installed packages...
Resolving package dependencies...
The following NEW packages are going to be installed:
  MozillaFirefox MozillaFirefox-branding-SLED
The following packages are not supported by their vendor:
  MozillaFirefox MozillaFirefox-branding-SLED
2 new packages to install.
Overall download size: 964.0 KiB. After the operation, additional 3.4 MiB will be used.
Continue? [y/n/?] (y): y
Retrieving 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_nss
Reading 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 dup
Warning: 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-SLE
The following packages are going to be upgraded:
  libfreebl3-32bit libnsssharedhelper0 libnsssharedhelper0-32bit
The 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 MozillaFirefox
Loading repository data...
Reading installed packages...
Resolving package dependencies...
The following packages are going to be REMOVED:
  MozillaFirefox MozillaFirefox-branding-SLED
2 packages to remove.
After the operation, 3.4 MiB will be freed.
Continue? [y/n/?] (y): y
Removing 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 | package
i | usbutils       | Tools and libraries for USB devices                  

7.查看包的详细信息

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

# zypper info usbutils
Loading repository data...
Reading installed packages...
Information for package usbutils:
Repository: @System
Name: usbutils
Version: 0.73-38.19
Arch: x86_64
Vendor: SUSE LINUX Products GmbH, Nuernberg, Germany
Support Level: unknown
Installed: Yes
Status: up-to-date
Installed Size: 461.0 KiB
Summary: Tools and libraries for USB devices
Description:
This package contains a utility for inspecting devices connected to USB
ports.
It requires kernel version 2.3.99-pre7 or newer, or the USB backport
which was introduced in 2.2.18 (supporting the /proc/bus/usb
interface).

8. 使用 Zypper 安装补丁

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

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

zypper patches

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

zypper patch <patch name>

9.锁定一个特定的包

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

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

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

# zypper al ypbind
Specified lock has been successfully added.

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

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

10.从包中删除锁

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

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

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

# zypper ll
There 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 added
Enabled: Yes
Autorefresh: Yes
URI: http://download.opensuse.org/repositories/mozilla/SLE_11/

12. 创建本地存储库

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

zypper addrepo <Path_to_dir> <Repo Name>

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

# zypper addrepo /var/stormgt/dsminst mylocalrepo
Adding repository 'mylocalrepo' [done]
Repository 'mylocalrepo' successfully added
Enabled: Yes
Autorefresh: No
URI: dir:///var/stormgt/dsminst
# zypper search --repo mylocalrepo
Loading repository data...
Reading installed packages...
S | Name        | Summary                                 | Type
--+-------------+-----------------------------------------+--------
i | TIVsm-API   | the API                                 | package
i | TIVsm-API64 | the API                                 | package
i | TIVsm-BA    | the Backup Archive Client               | package
i | gskcrypt32  | IBM GSKit Cryptography Runtime          | package
i | gskcrypt64  | IBM GSKit Cryptography Runtime          | package
i | gskssl32    | IBM GSKit SSL Runtime With Acme Toolkit | package
i | gskssl64    | IBM GSKit SSL Runtime With Acme Toolkit | package

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

13.查看存储库

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

# zypper lr
# | Alias                                            | Name                                             | Enabled | Refresh
--+--------------------------------------------------+--------------------------------------------------+---------+--------
1 | Mozillarepo                                      | Mozilla-repo                                     | Yes     | Yes
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

要显示 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 Mozillarepo
Loading repository data...
Reading installed packages...

S | Name                                 | Summary                                                                 | Type
--+--------------------------------------+-------------------------------------------------------------------------+-----------
i | MozillaFirefox                       | Mozilla Firefox Web Browser                                             | package
i | 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-Repo
Repository 'mylocalrepo' renamed to 'LOCALRPM-Repo'.

16.删除存储库

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

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

17. 备份存储库

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

# zypper lr --export /var/tmp/backup.repo
Repositories 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 Mozillarepo
Repository 'Mozillarepo' has been successfully disabled.

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

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

20. 刷新存储库

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

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

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

# zypper modifyrepo --refresh mylocalrepo
Autorefresh has been enabled for repository 'mylocalrepo'.
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。