注意:本文采用 openSUSE Linux 15.2 64位
zypper 是 SUSE Linux 发行版所特有的包管理命令,类似于 yum 和 apt-get,适用于社区发行版 openSUSE 和企业发行版 SUSE Linux Enterprise。
zypper [--全局选项] <命令> [--命令选项][参数]
全局选项:
--help,-h 帮助。
--version,-V 输出版本号。
--quiet,-q 减少普通输出,仅打印错误信息。
--verbose,-v 增加信息的详细程度
--no-abbrev,-A 表格中不出现缩写文本。
--table-style,-s 表格样式(整数)。
--rug-compatible,-r 开启与rug的兼容。
--non-interactive,-n 不询问任何问题,自动使用默认的回复。
--xmlout,-x 切换到XML输出。
--reposd-dir,-D <dir> 使用其他的安装源定义文件目录。
--cache-dir,-C <dir> 使用其他的元数据缓存数据库目录。
--raw-cache-dir <dir> 使用其他的原始元数据缓存目录。
Repository Options:
--no-gpg-checks 忽略GPG检查失败并继续。
--plus-repo,-p <URI> 使用额外的安装源。
--disable-repositories 不从安装源读取元数据。
--no-refresh 不刷新安装源。
目标选项:
--root,-R<dir> 在不同的根目录下操作。
--disable-system-sources、-D 不读取系统安装的可解析项。
命令:
help,? 打印帮助。
shell,sh 一次接受多个命令.
安装源操作:
repos,lr 列出所有定义的安装源。
addrepo,ar 添加一个新的安装源。
removerepo,rr 删除指定的安装源。
renamerepo,nr 重命名指定的安装源。
modifyrepo,mr 修改指定的安装源。
refresh,ref 刷新所有安装源。
clean 清除本地缓存。
软件管理:
install,in 安装软件包。
remove,rm 删除软件包。
verify,ve 检验软件包的依赖关系的完整性。
update,up 将已经安装的软件包更新到新的版本。
dist-upgrade,dup 执行整个系统的升级。
source-install,si 安装源代码软件包和它们的编译依赖。
查询:
search,se 查找符合一个模式的软件包。
info,if 显示指定软件包的完整信息。
patch-info 显示指定补丁的完整信息。
pattern-info 显示指定模式的完整信息。
product-info 显示指定产品的完整信息。
patch-check,pchk 检查补丁。
list-updates,lu 列出可用的更新。
patches,pch 列出所有可用的补丁。
packages,pa 列出所有可用的软件包。
patterns,pt 列出所有可用的模式。
products,pd 列出所有可用的产品。
what-provides,wp 列出能够提供指定功能的软件包。
软件包锁定:
addlock,al 添加一个软件包锁定。
removelock,rl 取消一个软件包锁定。
locks,ll 列出当前的软件包锁定。
下面将以 emacs 软件包作为实例。Emacs,著名的集成开发环境和文本编辑器。Emacs被公认为是最受专业程序员喜爱的代码编辑器之一,另外一个vim。如下图:
使用“zypper search package”命令搜索名称为“package”的安装包。
实例:搜索 emacs 安装包
hx@install:~> zypper search emacs 正在加载软件源数据... 正在读取已安装的软件包... S | Name | Summary | Type --+-------------------------+----------------------------------------------------------------+--------- | ccrypt-emacs | Integration for ccrypt with emacs | 软件包 | emacs | GNU Emacs Base Package | 软件包 | emacs | GNU Emacs Base Package | 源代码包 | emacs-apel | A Portable Emacs Library | 软件包 | emacs-auctex | AUC TeX: An Emacs Extension | 软件包 | emacs-color-theme | Color themes for emacs | 软件包 | emacs-completion-golang | Golang 的 Emacs 自动补全文件 | 软件包 | emacs-dash | A modern list library for Emacs | 软件包
注意,也可以使用“zypper se emacs”来搜索 emacs 软件包。
使用“zypper install package”命令安装名称为“package”的软件包。
实例:安装 emacs 软件包
hx@install:~> zypper install emacs 需要 Root 权限才可运行此命令。 hx@install:~> sudo zypper install emacs [sudo] root 的密码: 正在加载软件源数据... 正在读取已安装的软件包... 正在解决软件包依赖关系... 将安装以下 5 个新软件包: emacs emacs-info emacs-x11 etags libXaw3d8 5 个软件包将新装. 总下载大小:25.7 MiB。已缓存:0 B。 操作完成后,将使用额外的 104.7 MiB。 继续吗? [y/n/v/...? 显示全部选项] (y): y 正在撷取 软件包 libXaw3d8-1.6.2-lp152.3.6.x86_64 (1/5), 140.5 KiB (解压后 386.9 KiB) 正在检索: libXaw3d8-1.6.2-lp152.3.6.x86_64.rpm ...............................................................................[完毕] 正在撷取 软件包 emacs-info-25.3-lp152.5.3.1.noarch (2/5), 4.5 MiB (解压后 4.4 MiB) 正在检索: emacs-info-25.3-lp152.5.3.1.noarch.rpm ...............................................................[完毕 (287.3 KiB/s)] 正在撷取 软件包 etags-25.3-lp152.5.3.1.x86_64 (3/5), 99.8 KiB (解压后 237.5 KiB) 正在检索: etags-25.3-lp152.5.3.1.x86_64.rpm ..................................................................................[完毕] 正在撷取 软件包 emacs-25.3-lp152.5.3.1.x86_64 (4/5), 15.4 MiB (解压后 67.7 MiB) 正在检索: emacs-25.3-lp152.5.3.1.x86_64.rpm ......................................................................[完毕 (8.8 MiB/s)] 正在撷取 软件包 emacs-x11-25.3-lp152.5.3.1.x86_64 (5/5), 5.6 MiB (解压后 32.0 MiB) 正在检索: emacs-x11-25.3-lp152.5.3.1.x86_64.rpm ..................................................................[完毕 (1.4 MiB/s)] 正在检查文件冲突: ............................................................................................................[完毕] (1/5) 正在安装:libXaw3d8-1.6.2-lp152.3.6.x86_64 ..............................................................................[完毕] (2/5) 正在安装:emacs-info-25.3-lp152.5.3.1.noarch ............................................................................[完毕] 额外的 RPM 输出: install-info: No such file or directory for /usr/share/info/info.info.info.gz (3/5) 正在安装:etags-25.3-lp152.5.3.1.x86_64 .................................................................................[完毕] (4/5) 正在安装:emacs-25.3-lp152.5.3.1.x86_64 .................................................................................[完毕] (5/5) 正在安装:emacs-x11-25.3-lp152.5.3.1.x86_64 .............................................................................[完毕]
注意,命令“sudo zypper in emacs”和上面命令效果一致。
可以使用“zypper update package”命令去升级指定的升级包 package。
例如:升级 emacs 软件包
hx@install:~> sudo zypper update emacs 正在加载软件源数据... 正在读取已安装的软件包... 没有 'emacs-25.3-lp152.5.3.1.x86_64' 的更新候选。已安装了可获取的最高版本。 正在解决软件包依赖关系... 无事可做。
使用“zypper remove package”命令卸载名称为“package”软件包。
例如:卸载 emacs 软件安装包,如下:
hx@install:~> sudo zypper remove emacs [sudo] root 的密码: 正在读取已安装的软件包... 正在解决软件包依赖关系... 将移除以下 2 个软件包: emacs emacs-x11 2 个软件包将移除. 操作完成后,将释放 99.7 MiB。 继续吗? [y/n/v/...? 显示全部选项] (y): y (1/2) 正在移除 emacs-25.3-lp152.5.3.1.x86_64 ................[完毕] (2/2) 正在移除 emacs-x11-25.3-lp152.5.3.1.x86_64 ............[完毕]
使用“zypper list-updates”命令查看所有可用的新软件包列表,实例:
hx@install:~> zypper list-updates 正在加载软件源数据... 正在读取已安装的软件包... S | Repository | Name | Current Version | Available Version | Arch --+--------------------------------+------------------+--------------------+--------------------+------- v | openSUSE15.2-Aliyun-UPDATE-OSS | libnghttp2-14 | 1.40.0-lp152.1.3 | 1.40.0-lp152.2.3.1 | x86_64 v | openSUSE15.2-Aliyun-UPDATE-OSS | libpoppler-cpp0 | 0.79.0-lp152.1.7 | 0.79.0-lp152.2.3.1 | x86_64 v | openSUSE15.2-Aliyun-UPDATE-OSS | libpoppler-glib8 | 0.79.0-lp152.1.7 | 0.79.0-lp152.2.3.1 | x86_64 v | openSUSE15.2-Aliyun-UPDATE-OSS | libpoppler-qt5-1 | 0.79.0-lp152.1.8 | 0.79.0-lp152.2.3.1 | x86_64 v | openSUSE15.2-Aliyun-UPDATE-OSS | libpoppler89 | 0.79.0-lp152.1.7 | 0.79.0-lp152.2.3.1 | x86_64 v | openSUSE15.2-Aliyun-UPDATE-OSS | poppler-tools | 0.79.0-lp152.1.7 | 0.79.0-lp152.2.3.1 | x86_64 v | openSUSE15.2-Aliyun-UPDATE-OSS | yast2-security | 4.2.14-lp152.2.6.1 | 4.2.16-lp152.2.9.1 | noarch
上面介绍 zypper 工具进行查询、安装、更新和卸载命令。下面还有一些常用命令:
安装某个版本的软件包:zypper install package=version
安装以某个单词名字开头的所有软件包:zypper install package*
检验软件包的依赖关系的完整性:zypper verify package
执行系统升级:zypper dist-upgrade
执行源代码软件安装和其依赖:zypper source-install package.tgz