Zypper 的使用说明

- ripple 译

-2008/06/13

# 类似于 debian/ubuntu 下面非常好用的命令行包和源管理工具 apt , dpkg , fedora 下面的 yum ,同样 opensuse 除了#拥有大家熟悉非常强大的图形界面包管理工具 yast2 software manager and yast2 repository manager 之外,也有相应的命令行工具,这就是 zypper ,下面我们详细介绍一下 zypper 及其使用

注:这篇文章是关于如何使用 zypper 的, zpyyer 是一个使用包管理库 libzypp 的命令行的包管理工具,它的语法非常类似于 rug (一个 zmd 的命令行前端),但是它的命令和选项集,以及产生的输出和行为等各方面就和 rug 有很大变化了,当然,如果你更熟悉和愿意使用 rug 风格, zypper 也可以工作在 rug 兼容模式下 。

版本信息: Version 0.8.23 这篇文章所描述的 zypper 版本是 0.8.23 。

下面开始正文

一般的语法:

一般的 zypper 命令语法是:

# zypper [global-options] command [command-options] [arguments] ...
中括号中的部分是可选参数,因此最简单的执行 zypper 方式就是打上 zypper 这个名字然后跟上一条命令,比如说,如果你需要给系统打包升级,只需要简单的 :
# zypper update
另外,你也可以通过在命令前面打上 global options 来选择一个或者多个 global options (通用选项)
比如:下面的这行命令意思是:(执行这个命令,不用交互式的问任何问题,一切都自己定)
# zypper --non-interactive update
用 options( 选项 ) 来指定特殊的命令,简单的把它们打在命令后面就可以了,比如:(对系统应用需要的不补丁包,别向我确认任何版权信息,我已经都读过了)
# zypper update --auto-agree-with-licenses
一些命令需要一个多个参数:(安装或者升级 mplayer 这个软件包)
# zypper install mplayer
一些 options (选项)也需要一些参数:(用更新的软件包升级系统)
# zypper update -t package
所有上面这些合起来:(使用 生产仓库 来安装  mplayer  和  amarok  并显示进度)
# zypper -v install --repo factory mplayer amarok  

词汇说明:

repository   软件仓库 -本地的或者远程的包含软件包和各种各样的包信息的目录。软件仓库以前也叫做安装源,服务和编目目录( install sources, services or catalogs )
alias  软件仓库别名-  软件仓库的别名是软件仓库名称的比较短小简洁的版本,经常用在处理软件仓库的命令和一些选项,比如  remove repo  或者  --repo
resolvable   可解析的以来关系 -用来描述一个包,补丁,模组,产品,这些依赖关系解析器工作的对象,最常用到可解析的对象是包和补丁。
Pattern   模组 -用来表达一组具有相互依赖辅助功能的软件包的集合。比如说一个 Http Server 模组,它就包含了与这个服务有依赖关系的,以及运行和管理一个 http server 所需要的所有的软件包,所以当安装一个模组的时候,这些软件包都将被安装。
Product   产品 -代表了整个产品(比如说 opensuse11.0) 

全局选项

下面的选项都能够在任何  zypper   事物中应用
-V, --version
输出版本号
-v, --verbose
调试输出,打印全部异常轨迹
-t, --terse
简洁输出,目前不支持,只用于 updater applet 来内部调用
-q, --quiet
取消正常输出,只输出一些简短信息 ( 特别是 结果提示)和错误信息,但是,如果和冲突的命令比如 --verbose  选项一起使用, --verbose  选项的优先级更高些。
-s, --table-style
表类型(整数)
-r, --rug-compatible
传换到 rug 兼容模式
-n, --non-interactive
传换到非交互模式,在这种模式下面,不会提示用户作任何决定,而是自动使用默认认为合理的设置。这在将 zypper 作为一个 cron ,或者作为脚本的一部分运行的时候特别有用。
--no-gpg-checks
忽略 GPG 检查失败,并且继续,如果使用这个选项,当发生 GPG 问题的时候, zypper 将打印比且记录一个警告信息并且不会中断任何操作而会继续。应当谨慎使用这个选项,因为你可能非常容易错过一些安全问题。
-R, --root <dir>
在一个不同的根目录上面操作。 

Commands 命令

Zypper 提供了一些命令。 其中最常用的可能就是 zypper update ,这条命令从已经定义的仓库下载并且安装需要的更新,如果你只需要更新软件,那么这个是你需要的唯一的命令。

打印帮助

一般语法:

help, -h
打印帮助,打印一般帮助可以用:
# zypper -h
打印一个命令的帮助,用:
# zypper -h [command]  

列出已定义的软件仓库

一般语法:
repos, lr
一个示例输出为:
# zypper lr
# | Enabled | Refresh | Type | Alias | Name
--+---------+---------+--------+---------+--------------------------
1 | Yes | No | rpm-md | factory | factory
2 | Yes | Yes | yast2 | guru | guru
3 | Yes | No | rpm-md | packman | Packman 10.3
4 | Yes | No | rpm-md | updates | openSUSE-10.3-Updates
5 | Yes | Yes | yast2 | main-no | Main Repository (NON-OSS)
6 | No   Yes    yast  | main    | Main Repository (OSS)
如果想要在列表中包含软件仓库的  URL  ,请和  zypper lr  一起使用  -v  全局选项  

添加软件仓库

安装任何软件包之前至少要先有一个软件仓库被定义。要添加一个软件仓库,清使用 addrepo 命令:

addrepo, ar <URI> <alias>  

这个命令接受以下选项:

-r, --repo <FILE.repo>

添加指定的 .repo 文件定义的软件仓库

举个例子:

# zypper ar  http://packman.iu-bremen.de/suse/10.3  pm
* Adding repository 'pm'
Repository 'pm' successfully added:
Enabled: Yes
Autorefresh: Yes
URL:  http://packman.iu-bremen.de/suse/10.3  

删除软件仓库

removerepo, rr <URI|alias> 

举个例子:

zypper rr  http://packman.iu-bremen.de/suse/10.3   

或者:

zypper rr pm 

重命名软件仓库

一般语法:

renamerepo, nr <alias> <new-alias> 

这个命令目前只有用该百年软件仓库的别名,如果你希望改变软件仓库的显示,清编辑存放在 /etc/zypp/repos.d 目录相应的 .repo 文件。

安装依赖

一般语法:

install, in <packagename> ...
install, in --capability <capability> ... 

前一种形式通过你指定的名字来选择安装的软件包 :

# zypper install subversion gcc 

安装名字为 subversion 和 gcc 的软件包

后一种形式则根据软件包所能提供的东西来选择安装的软件包:

# zypper install -C /usr/bin/svn file 

安装了能够提供 /usr/bin/svn 的软件包

# zypper install -C subversion=1.4.4 

安装了提供指定版本 subversion 的软件包

这条命令能够接受下列的选项标识:

  • -r, --repo <alias> - 只考虑用别名指定的软件仓库的以来关系。

  • -t, --type <resolvable> - 依赖关系的类型(默认:包依赖)

  • -n, --name - 选择由名字而不是提供能力来解析依赖。

  • -C, --capability - 有可提能力来解析。

  • -l, --auto-agree-with-licenses - 自动同意第三方版权确认提示。

  • --debug-solver - 为调试创建解析示例

  • -R, --force-resolution – 强迫解析器找到一个解决方案,即使意味着删除所有为满足条件的包。

去除依赖关系

一般语法 :

remove, rm <packagename> ...
remove, rm --capability <capability> ... 

它接受的选项和 install 命令相同,出了— force

搜索依赖关系

一般语法:

search, se [pattern] ...

接受下列选项标志:

  • --match-all - 在所有搜索字符串中搜索一个匹配(默认)

  • --match-any - 在任何一个搜索字符串中搜索一个匹配。

  • --match-substrings - 匹配可能只是搜索字符串中的部分字符(默认)

  • --match-words - 匹配只能是搜索字符串中的整字

  • --match-exact - 精确包名称匹配

  • -d, --search-descriptions - 也在包提要嘻嘻和描述中搜索

  • -c, --case-sensitive - 区分大小写搜索

  • -i, --installed-only - 已安装包搜索

  • -u, --uninstalled-only - 之搜索未安装包

  • -t, --type - 只搜索指定类型的包 .

  • --sort-by-name - 按名称排序(默认)

  • --sort-by-catalog – 安分类排序

其中通配符*和?也是支持的 .

举例说明:

# zypper se zypper

* Reading installed packages [100%]
S | Repository | Type | Name | Version | Arch
--+------------+---------+--------+----------+-------
| factory | package | zypper | 0.8.23-3 | i586
i | factory | package | zypper | 0.8.23-2 | x86_64 

检查补丁

一般语法:

patch-check, pchk 

这条命令将告诉你你的系统是否有可用的重要补丁如果有和补丁的个数。

例如:

 zypper pchk
* Reading repository '10.3 - Main Repository (NON-OSS)' cache
* Reading repository 'openSUSE-10.3-DVD 10.3' cache
* Reading repository 'openSUSE-10.3-Updates' cache
* Reading installed packages [100%]
9 patches needed (0 security patches) 

列出补丁

一般语法:

patches, pch 

列出所有可用补丁,包括不需要的可不适用的

例如:

# zypper pch
* Reading repository '10.3 - Main Repository (NON-OSS)' cache
* Reading repository 'openSUSE-10.3-DVD 10.3' cache
* Reading repository 'openSUSE-10.3-Updates' cache
* Reading installed packages [100%]
Repository: | Name | Version | Category | Status
----------------------+--------------------+---------+-------------+---------------
openSUSE-10.3-Updates | amarok | 4492-0 | recommended | Not Applicable
openSUSE-10.3-Updates | cpio | 4474-0 | recommended | Needed
openSUSE-10.3-Updates | evince | 4465-0 | recommended | Needed
openSUSE-10.3-Updates | fetchmsttfonts.sh | 4347-0 | optional | Not Needed
openSUSE-10.3-Updates | fvwm2 | 4475-0 | recommended | Needed
openSUSE-10.3-Updates | glibc | 4467-0 | recommended | Needed
openSUSE-10.3-Updates | gnome-main-menu | 4491-0 | recommended | Needed
openSUSE-10.3-Updates | gtk2 | 4466-0 | recommended | Needed
openSUSE-10.3-Updates | jfbterm | 4460-0 | recommended | Not Applicable
openSUSE-10.3-Updates | ksh | 4489-0 | recommended | Needed
openSUSE-10.3-Updates | libiniparser-32bit | 4488-0 | optional | Not Applicable
openSUSE-10.3-Updates | release-notes | 4464-0 | recommended | Needed
openSUSE-10.3-Updates | wvdial | 4461-0 | recommended | Needed 

获得补丁包的详细信息

一般语法:

patch-info [patchname] ...
info -t patch [patchname] ... 

显示关于指定补丁的全部信息

例如 :

testicek2:~ # zypper patch-info amarok
* Reading repository '10.3 - Main Repository (NON-OSS)' cache
* Reading repository 'openSUSE-10.3-DVD 10.3' cache
* Reading repository 'openSUSE-10.3-Updates' cache
* Reading installed packages [100%]
Information for patch amarok:
Name: amarok
Version: 4492-0
Arch: noarch
Status: Not Applicable
Category: recommended
Created On: Thu 04 Oct 2007 05:48:07 PM CEST
Reboot Required: No
Package Manager Restart Required: No
Interactive: No
Summary: Fixes to improve stability and playback with yauap
Description: This patch includes fixes to increase the stability of
Amarok when playing music and improves the collaboration
with the GStreamer/Yauap engine.
Provides:
patch: amarok == 4492-0
Requires:
atom: amarok-yauap == 1.4.7-37.2
atom: amarok-lang == 1.4.7-37.2
atom: amarok-xine == 1.4.7-37.2
atom: amarok == 1.4.7-37.2
atom: yauap == 0.2.1-21.2
atom: amarok-libvisual == 1.4.7-37.2 

列出更新

一般语法:

list-updates, lu 

列出所有可用更新。默认情况下,这条命令将列出所有可用的安全和需要补丁。用 -t 选项来选择你希望用那种依赖解析。

它接受下列标志作为选项:

  • -t, --type <type> - 依赖解析的类型(默认)

  • -r, --repo <alias> - 只列出指定别名的软件仓库的更新

  • --best-effort – 做最好的努力来更新,有可能更新到比最新最大版本号更低一些。

例如:

testicek2:~ # zypper lu
* Reading repository '10.3 - Main Repository (NON-OSS)' cache
* Reading repository 'openSUSE-10.3-DVD 10.3' cache
* Reading repository 'openSUSE-10.3-Updates' cache
* Reading repository 'factory' cache
* Reading installed packages [100%]
Repository: | Name | Version | Category | Status
----------------------+-----------------+---------+-------------+-------
openSUSE-10.3-Updates | cpio | 4474-0 | recommended | Needed
openSUSE-10.3-Updates | evince | 4465-0 | recommended | Needed
openSUSE-10.3-Updates | fvwm2 | 4475-0 | recommended | Needed
openSUSE-10.3-Updates | glibc | 4467-0 | recommended | Needed
openSUSE-10.3-Updates | gnome-main-menu | 4491-0 | recommended | Needed
openSUSE-10.3-Updates | gtk2 | 4466-0 | recommended | Needed
openSUSE-10.3-Updates | ksh | 4489-0 | recommended | Needed
openSUSE-10.3-Updates | release-notes | 4464-0 | recommended | Needed
openSUSE-10.3-Updates | wvdial | 4461-0 | recommended | Needed 

更新

一般语法:

update, up 

更新系统。默认这条命令将应用所有需要的补丁。如果需要更新其他类型的依赖请使用 -t 选项 .

  • -t, --type - 依赖解析的类型(默认:包类型)

  • -r, --repo <alias> - 只列出指定别名的软件仓库的更新。

  • --skip-interactive - 跳过更新过程中的交互。

  • -l, --auto-agree-with-licenses - 自动同意第三方版权提示信息。

  • --best-effort - 做最好的努力来更新,有可能更新到比最新最大版本号更低一些。

  • --debug-solver - 为调试创建解析试例。

  • -R, --force-resolution – 强迫解析器找到一个解决方案,即使意味着删除所有为满足条件的包。

例如:

testicek2:~ # zypper update
* Reading repository '10.3 - Main Repository (NON-OSS)' cache
* Reading repository 'openSUSE-10.3-DVD 10.3' cache
* Reading repository 'openSUSE-10.3-Updates' cache
* Reading installed packages [100%]
The following packages are going to be upgraded:
cpio fvwm2 evince glibc-i18ndata glibc-locale nscd glibc release-notes wvdial
gnome-main-menu gtk2 ksh
The following NEW packages are going to be installed:
evince-lang gnome-main-menu-lang
The following NEW patches are going to be installed:
gnome-main-menu release-notes evince gtk2 glibc ksh fvwm2 wvdial cpio
Overall download size: 28.0 M. After the operation, additional 2.9 M will be used.
Continue? [yes/no]: y
Downloading package evince-lang-2.20.0-5.2.i586, 519.4 K (2.0 M unpacked)
Downloading: evince-lang-2.20.0-5.2.i586.rpm
* Downloading [100%]
* Installing: evince-lang-2.20.0-5.2 [100%]
Downloading package glibc-i18ndata-2.6.1-18.2.i586, 3.6 M (10.0 M unpacked)
Downloading patch rpm: ./rpm/i586/glibc-i18ndata-2.6.1-18.2.i586.patch.rpm, 111.5 K
Downloading: glibc-i18ndata-2.6.1-18.2.i586.patch.rpm
* Downloading [100%]
* Installing: glibc-i18ndata-2.6.1-18.2 [100%]
Downloading package glibc-2.6.1-18.2.i686, 1.7 M (3.9 M unpacked)
Downloading delta: ./rpm/i686/glibc-2.6.1-18_18.2.i686.delta.rpm, 89.2 K
Downloading: glibc-2.6.1-18_18.2.i686.delta.rpm
* Downloading [100%]
Applying delta: /var/adm/mount/AP_0x00000001/rpm/i686/glibc-2.6.1-18_18.2.i686.delta.rpm
* Installing: glibc-2.6.1-18.2 [100%]
Downloading package release-notes-10.3.17-0.1.noarch, 113.6 K (608.5 K unpacked)
Downloading delta: ./rpm/noarch/release-notes-10.3.16_10.3.17-2_0.1.noarch.delta.rpm, 42.8 K
Downloading: release-notes-10.3.16_10.3.17-2_0.1.noarch.delta.rpm
* Downloading [100%]
Applying delta: /var/adm/mount/AP_0x00000001/rpm/noarch/release-notes-10.3.16_10.3.17-2_0.1.noarch.delta.rpm
* Installing: release-notes-10.3.17-0.1 [100%] 

获取包信息

一般语法:

info, if [packagename] ... 

显示指定包的所有信息。

例如:

# zypper info suspend
* Reading repository '10.3 - Main Repository (NON-OSS)' cache
* Reading repository 'openSUSE-10.3-DVD 10.3' cache
* Reading repository 'openSUSE-10.3-Updates' cache
* Reading installed packages [100%]
Information for package amarok:
Repository: openSUSE-10.3-Updates
Name: amarok
Version: 1.4.7-37.2
Arch: i586
Installed: No
Status: not installed
Installed Size: 8.3 M
Summary: Media Player for KDE
Description:
Amarok is a media player for all kinds of media. This includes MP3, Ogg
Vorbis, audio CDs, podcasts and streams. Play lists can be stored in
.m3u or .pls files.
Authors:
--------
Christian Muehlhaeuser <chris@chris.de>
Mark Kretschmann <markey@web.de>
Max Howell <max.howell@methylblue.com>
Stanislav Karchebny <berk@inbox.ru> 

导入 /导出

你也可以导出你的软件仓库的列表到一个文件,并且日后在导入到另外一台机器。

导出:

 zypper repos --export /tmp/foo.repo 

导入:

 zypper addrepo --repo file:///tmp/foo.repo 

在脚本中使用 zypper

zypper 支持很多的全局选项,这使得它很适合一些子的嗯处理的过程如脚本。 zypper 用户手册中也列出了很多不同退出码表示的意思,通过这些退出码,你可以在自动处理过程中检查状态。下面是一些详细信息。

非交互模式

这种模式下面, zypper 不会提示用户回到任何问题,而是都用默认设置来替代。使用这个选项可以保证 zypper 不会因为等待标准输入活这无限循环而挂着。

举个例子,为了不进行一些确认信息而自动更新系统,你可以输入

# zypper --non-interactive update  

这条命令不需要用户确认更新过程中的任何信息,忽略所有可能需要额外确认交互补丁,并且自动响应所有提示。

无 GPG检查 --no-gpg-checks

如果使用了这个选项,在 gpg 检查失败的时候 zypper 将总是选择继续,比如一个软件仓库文件没有签名,或者有签名但是 gpg 检查失败等等。

自动同意版权信息 – auto-agree-with-licenses

这个特殊的选项是为了安装,删除和更新命令而准备的,通过使用这个选项,用户将声明同意将要安装的版权信息中的所有条款, zypper 将同意所有版权信息。如果已经阅读了所有版权信息,并且想要自动安装相同的包到很多太机器,这个选项将非常有用,

提示

下面将是 zypper 需要用户交互以及在非交互模式下面的响应的完整列表。所有设计的附加选项都拥有比非交互模式更高的优先级,所以如果使用了,那么他们意味的响应将自动被使用,而不管是不是非交互模式。

GPG相关的提示

在 no-gpg 检查被应用的地方,一条信息或者一条警告将被些到标准错误设备或者记录下日志。

prompt

default answer

with --no-gpgp-checks

note

accept unsigned file?

N

Y

import key into keyring?

N

N

a new key can be imported in the interactive mode only

accept unknown key?

N

Y

trust key?

N

Y

verification of signed file failed, continue?

N

Y

no digest for a file, continue?

N

Y

accept unknown digest?

N

Y

Other Prompts

prompt

default answer

other answer

note

proceed with installation/removal/update?

Y

in addition, the --no-confirm option can be used with the install/remove/update commands even without the global --non-interactive

confirm 3rd party license

N

Y if --auto-agree-with-licenses is used

in addition, for zypper update, --skip-interactive option can be used to exclude interactive patches from to-be-installed list (a heritage of rug)

problem while installing/removing a resolvable, Abort/Retry/Ignore?

ABORT

this is ugly and can be improved in future

problem while downloading a package, Abort/Retry/Ignore?

ABORT

this is also ugly, can be enhanced somehow in the future

dependency conflict. Prompt for solution number, (c)ancel, or (r)etry

c

media change request

ABORT

sled11 sp2 opensuse zypper usage fr net相关推荐

  1. opensuse zypper源

    kvm新建的一台opensuse主机,版本:leap 15.1 zypper in nginx #安装软件报错 这里的问题应该是,使用iso文件安装完系统后,默认会添加原始cd源到main,需要删除. ...

  2. opensuse zypper

    科大镜像源: zypper ar -fc https://mirrors.ustc.edu.cn/opensuse/distribution/leap/42.3/repo/non-oss USTC:4 ...

  3. Win10如何运行经典200M游戏CS反恐精英(附安装包)

    CS反恐精英1.6是Windows XP时代的经典游戏,整款3D游戏仅有200MB, 由于年代久远,已经很难找到纯净的安装包,但功夫不负有心人,还是被我在一些资源论坛找到了,我找到的是CS的网吧版本, ...

  4. suse linux免费杀毒工具,Linux宝库 - 正文 - zypper(OpenSuse中的软件在线安装工具)的使用及suse 11.0 最新的中国源...

    zypper 是 opensuse 10.2之后版本中出现的命令行下管理软件的程序,功能十分强大.可以在线安装网上软件仓库中的软件,相当于Debian.Ubuntu中的apt-get,Fedora中的 ...

  5. 【openSUSE】软件源和软件搜索

    转载自:http://www.linuxsir.org/bbs/thread321545.html 大陆镜像服务器lizardsource.cn简介 主机名:lizardsource.cn 支持协议: ...

  6. SUSE 11 zypper 本地源配置

    存放repo 文件目录 cd /etc/zypp/repos.d 创建目录 mkdir or 赋予目录权限 chmod -R 777 or 挂载iso文件 mount -o loop SLES-11- ...

  7. linux命令与编程笔记

    本文章内容来自与"的Linux的命令行与外壳脚本编程大全.第3版" 目录 Linux命令. 1 进程相关. 5 Ps命令. 5 TOP命令. 6 Kill命令. 6 Type(查看 ...

  8. openresty 安装

    为什么80%的码农都做不了架构师?>>>    #Openresty #环境:openresty-1.11.2.2 + pcre-8.40 + openssl-1.0.1u #wge ...

  9. zabbix自动发现oracle表空间并监控其使用率

    监控需求 Oracle表空间使用率实时监控,当表空间使用率达到95%时触发告警机制.Oracle表空间分为系统默认表空间和用户创建的表空间,而表空间又有自动扩展和非自动扩展两种类型,用户(DBA)在创 ...

最新文章

  1. POJ 1062 昂贵的聘礼
  2. 如何右对齐弹性项目?
  3. linux centos7 xen虚拟机 安装方法
  4. python散点图拟合曲线-python 拟合曲线并求参
  5. php根据IP地址跳转对应的城市,淘宝REST api调用地址直接使用
  6. mysql中union与union all的区别
  7. jcmd,大约JDK 11
  8. C11标准委员会成员解读C语言新标准
  9. 深度学习分类任务常用评估指标
  10. 2017年高频率的互联网校园招聘面试题
  11. 测试网站的url脚本测试网站是否正常
  12. bShare一个强大的网页分享插件
  13. Python解析ofd文件
  14. Mimics:快捷键介绍
  15. Win10如何为命令提示符增加输入命令获取管理员权限功能?
  16. 网络---协议(TCP/IP五层模型)
  17. 浅谈IEEE会议论文的不出席政策Non-Presented Paper(No-Show)Policy
  18. matlab如何求状态方程,matlab状态方程解
  19. 【UVA12235 Help Bubu】
  20. SCCM通过PXE部署系统蓝屏Recovery

热门文章

  1. MSF Project Management Discipline
  2. databricks spark 读取postgresql表
  3. 友盟集成QQ第三方登录
  4. CIA-SSD: Confident IoU-Aware Single-Stage Object Detector From Point Cloud阅读
  5. The Frog Prince (青蛙王子) and Hello Kitty (凯蒂猫)
  6. 中国企业软件必然革命世界企业软件
  7. 使用zabbix监控VMware
  8. python————简易的编程题目
  9. MOS管及其外围电路设计
  10. WTL 绘制 圆角对话框 自绘对话框