SUSE linux的软件管理工具-zypper

zypper:openSUSE中用于在CLI下管理软件包的安装,升级和删除。同时可以管理软件仓库。

1 常规用法

zypper的语法结构如下:

zypper [--global-options] COMMAND [--command-options] [arguments]

zypper command

最简单的使用方式就是输入名称,然后跟参数,例如,应用所有补丁到系统,使用下面的命令:

SUSE15:~ # zypper patch

Global options

另外,在zypper命令后面可以跟一个或多个全局选项,例如:

SUSE15:~ # zypper --non-interactive patch

上面例子的选项代表这是非交互式命令。

Command-specific options

如果要指定特定的功能,需要在后面指定参数:

SUSE15:~ # zypper patch --auto-agree-with-licenses

在上面的列子中,选项的意思是在应用补丁时不再需要任何许可的确认,意思是许可被自动接收。

Arguments

一些命令需要一个或多个参数,例如,使用命令install,你需要指定你需要要安装的软件包:

SUSE15:~ # zypper install mplayer

有些选项也需要一些参数,下面的命令用于先列出所有已知的模式:

SUSE15:~ # zypper search -t pattern

上面所有的选项/参数都可以混合使用。例如,下面的命令将会从factory仓库安装mcvim软件包,并显示详细信息:

SUSE15:~ # zypper -v install --from factory mc vim

--from参数在所有的仓库都不关闭的情况下指定安装软件包的仓库。--repo是它的一个别名,可以任意使用其中一个。
大多数的zypper命令会有dry-run选项,用于模拟后面给出来的命令,多用于测试:

SUSE15:~ # zypper remove --dry-run MozillaFirefox

zypper支持全局的--userdata STRING选项。你可以指定一个字符串,这个字符串会写入到zypper的日志文件中,主要是起标记作用。

SUSE15:~ # zypper --userdata STRING patch

2 使用zypper子命令

zypper的子命令是一些可执行文件,存放在zypper可执行文件目录/usr/lib/zypper中。如果在这里没有找到,zypper会自动搜索你的$PATH。通过下面的命令列出可用的子命令:

SUSE15:~ # zypper help subcommand

...
Available zypper subcommands in '/usr/lib/zypper/commands'

      appstream-cache       <No manual entry for zypper-appstream-cache>
      lifecycle             products and packages lifecycle information


Zypper subcommands available from elsewhere on your $PATH

      log                   Zypper logfile reader


Type 'zypper help <subcommand>' to get subcommand-specific help if available.

3 使用zypper安装和删除软件

命令格式如下:

SUSE15:~ # zypper install openvpn
SUSE15:~ # zypper remove openvpn

3.1 选择具体需要安装或删除的软件包

有很多方式来寻找软件包,例如:

指定软件包的具体名称

SUSE15:~ # zypper install MozillaFirefox

指定软件包的名称和版本

SUSE15:~ # zypper install MozillaFirefox-52.2

指定使用的仓库和软件包名

SUSE15:~ # zypper install mozilla:MozillaFirefox

使用正则表达式的来匹配包名

如果不清楚软件包的具体名字,可以输入部分字符,其他字符以*代替。或者需要删除很多相关联的软件包时,也可以采用这种方式。

SUSE15:~ # zypper install Mozilla*

当debug某个问题时,可能需要临时安装大量的- debuginfo软件包,这些软件包会输出大量的有用信息。在完成debug后,需要清空环境,可以使用命令zypper remove '*-debuginfo'

按功能(capability)

例如,如果安装一个不太清楚具体名字的软件包,可以根据提供的功能来进行模糊名称安装:

SUSE15:~ # zypper install firefox

按功能、硬件架构或版本

  1. 指定功能,以及运行的硬件架构
SUSE15:~ # zypper install 'firefox.x86_64'
  1. 指定版本范围,有一些选项可供使用:

< (lesser than), <= (lesser than or equal), = (equal), >= (greater than or equal), > (greater than).

SUSE15:~ # zypper install 'firefox>=74.2'
  1. 也可以将上面两种选项混合使用
SUSE15:~ # zypper install 'firefox.x86_64>=74.2'

给出RPM文件的路径

可以指定本地或远程的软件包路径:

SUSE15:~ # zypper install /tmp/install/MozillaFirefox.rpm
SUSE15:~ # zypper install http://download.example.com/MozillaFirefox.rpm

类似CentOS的yum localinstall

3.2 安装和删除结合

要同时安装和删除软件包,可以使用+-符号。例如在安装emacs的同时删除vim

SUSE15:~ # zypper install emacs -vim

删除emacs的同时安装vim

SUSE15:~ # zypper remove emacs +vim

为了避免混淆(如以-开头的包),符号建议用在第二个参数中,如果必须使用,需要添加--参数

SUSE15:~ # zypper install -emacs +vim # Wrong
SUSE15:~ # zypper install vim -emacs # Correct
SUSE15:~ # zypper install -- -emacs +vim # Correct
SUSE15:~ # zypper remove emacs +vim # Correct

3.3 清除已删除软件的依赖包

SUSE15:~ # zypper rm --clean-deps MozillaFirefox

3.4 在脚本中使用zypper

默认情况下,zypper在使用时会有一些交互选项。添加下面的选项后变成非交互式:

SUSE15:~ # zypper --non-interactive install MozillaFirefox

这样就可以用在脚本或者定时任务中了。

3.5 安装或下载源码包

SUSE15:~ # zypper source-install nginx

以root身份执行时,安装源包的默认位置是/usr/src/packages/,以用户身份运行时则在~/rpmbuild。 这些值可以在本地rpm中修改。

安装时会自动安装依赖包,如果不需要,可以添加-D选项。

如果只是安装依赖包,使用-d选项。

上面的命令仅限于添加了源码包的仓库。

下面的命令列出仓库中所有可用的源码包:

SUSE15:~ # zypper search -t srcpackage
Loading repository data...
Reading installed packages...

S | Name                          | Summary                                  | Type
--+-------------------------------+------------------------------------------+-----------
  | atftp                         | Advanced TFTP Server and Client          | srcpackage
  | createrepo_c                  | RPM repository metadata generation uti-> | srcpackage
  | discord                       | Voice and Text Chat for Gamers           | srcpackage
  | gstreamer-plugins-bad         | GStreamer Streaming-Media Framework Pl-> | srcpackage
  | lsb                           | LSB Fake Package                         | srcpackage
  | openSUSE-Addon-NonOss-release | openSUSE Leap 15.3 NonOSS Addon          | srcpackage
  | openSUSE-release              | openSUSE Leap 15.3                       | srcpackage
  | opera                         | Proprietary web browser                  | srcpackage
  | product-builder               | SUSE Product Builder                     | srcpackage
  | rpm-repos-openSUSE            | openSUSE package repositories            | srcpackage
  | rpmlint-mini                  | RPM file correctness checker             | srcpackage
  | steam                         | Installer for Valve's digital software-> | srcpackage
  | virtualbox                    | VirtualBox is an Emulator                | srcpackage
  | virtualbox-kmp                | Kernel modules for VirtualBox            | srcpackage
  | xfce4-branding-openSUSE       | openSUSE Branding of the Xfce Desktop -> | srcpackage
  | xfce4-panel                   | Panel for the Xfce Desktop Environment   | srcpackage
  | xfce4-settings                | Tools for Managing Xfce Settings         | srcpackage

也可以所用下面的命令将所有的源码包下载到本地

SUSE15:~ # zypper source-download

默认下载到/var/cache/zypper/source-download/,该命令的额外选项:

  • --directory:在下载时修改目录。
  • --status:只显示丢失或无关的包,不下载或删除任何内容
  • --delete:删除无关包
  • --no-delete:禁用删除

3.6 从关闭的仓库安装包

正常来讲,只能从启用的仓库安装软件。--plus-content选项可以指定需要使用的仓库,在当前命令中临时启用,完成后会禁用。
例如:临时开启debug仓库,并安装-debuginfo包,使用下面的选项:

SUSE15:~ # zypper --plus-content debug install "debuginfo(build-id)=eb844a5c20c70a59fc693cd1061f851fb7d046f4"

由于缺少debuginfo包,gdb会报告build-id字符串。

4 使用zypper升级软件

有三种方式升级软件:安装补丁,安装新版本的软件或升级整个系统。

4.1 安装所有补丁

很粗犷的做法就是直接安装补丁

SUSE15:~ # zypper patch
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 2 NEW patches are going to be installed:
  openSUSE-2021-820 openSUSE-2021-863

The following 2 packages are going to be upgraded:
  openSUSE-release openSUSE-release-dvd

The following product is going to be reinstalled:
  "openSUSE Leap 15.3"

2 packages to upgrade.
Overall download size: 694.9 KiB. Already cached: 0 B. After the operation, additional
895.0 B will be used.

    Note: Package manager restart required. (Run this command once again after the update
    stack got updated)
Continue? [y/n/v/...? shows all options] (y): y
Retrieving package openSUSE-release-dvd-15.3-lp153.146.1.x86_64
                                                    (1/2),   8.1 KiB (   66   B unpacked)
Retrieving delta: ./x86_64/openSUSE-release-dvd-15.3-lp153.138.1_lp153.146.1.x86_64.drpm, 3.8 KiB
Retrieving: openSUSE-release-dvd-15.3-lp153.138.1_lp153.146.1.x86_64.drpm .....................................[done]
Applying delta: ./openSUSE-release-dvd-15.3-lp153.138.1_lp153.146.1.x86_64.drpm ...............................[done]
Retrieving package openSUSE-release-15.3-lp153.146.1.x86_64                     (2/2), 686.8 KiB (231.6 KiB unpacked)
Retrieving: openSUSE-release-15.3-lp153.146.1.x86_64.rpm .........................................[done (89.6 KiB/s)]

Checking for file conflicts: ..................................................................................[done
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-风中叮铃-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值