使用 Zypper¶
Zypper 是一个命令行包管理器,用于安装、更新和删除包及管理安装源。
执行 Zypper 最简单的方式是,键入其名称后跟一个命令。例如,将所有需要的增补程序应用于系统类型:
--non-interactive
表示运行命令时不询问任何问题(自动应用默认回答):
zypper --non-interactive patch
多数 Zypper 命令都有 dry-run
选项,它模拟给定的命令。它可用于测试。
zypper remove --dry-run MozillaFirefox
使用 Zypper 安装和删除软件
zypper install <package_name>
zypper remove <package_name>
以下命令将安装名称以“Moz”开头的所有包。使用通配符要小心,特别是删除包的时候。
zypper install 'Moz*'
要同时安装和删除包,请使用 +/-
修饰符。要同时安装 emacs 并删除 vim,请使用:
zypper install emacs -vim
如果要安装源代码,则使用source-install
指令
zypper source-install <package_name>
如果要默认选项来答复zypper
的交互,SUSE使用了一个非常反直觉的-n
参数来表示non-interactive
模式,所以如果想直接安装而不需要输入y
,则使用
zypper -n install <package_name>
如果要搜索软件包,可以使用通配符
此外可以检查软件包的详情:
安装更新
如果某个安装源只包含新包,但未提供增补程序,则 zypper patch
不会产生任何作用。要使用新的可用版本更新所有安装的包,请使用:
要更新个别包,请用更新或安装命令指定包:
zypper update <package_name>
zypper install <package_name>
获取所有新的可安装包的列表:
安装补丁
可以使用zypper安装系统的补丁:
也可以安装指定的补丁:
zypper patch <patch name>
锁定一个特殊包
如果要避免某个软件包被系统更新,可以锁定这个软件包,此时就不能删除或更新这个软件包:
这里的al
命令表示Add Lock
要列出已经被锁定的软件包,则使用ll
命令,表示List Locks
显示输出类似
# | Name | Type | Repository
--+--------+---------+-----------
1 | ypbind | package | (any)
要移除锁定使用rl
表示Remove Lock
管理Zypper软件仓库
要查看当前的安装源,请输入:
如果没有源,会提示
Warning: No repositories defined.
Use the 'zypper addrepo' command to add one or more repositories.
要显示完整的仓库RUI,使用如下命令:
有关SuSE的软件仓库列表请参考 Package repositories ,添加方法可以参考 20 Zypper Command Examples to Manage Packages on SUSE Linux
例如,对于openSUSE 42.3版本(查看版本的方法是 cat /etc/os-release
),则使用如下方法:
zypper addrepo --check --refresh --name "Open Source Software - OSS" http://download.opensuse.org/distribution/leap/42.3/repo/oss/ "OSS"
添加安全更新仓库
zypper addrepo --check --refresh --name "OSS Update" http://download.opensuse.org/update/leap/42.3/oss/ "Update"
添加源代码仓库
zypper addrepo --check --refresh --name "OSS Source" http://download.opensuse.org/source/distribution/leap/42.3/repo/oss/ "Src-OSS"
添加Debug
zypper addrepo --check --refresh --name "OSS Debug" http://download.opensuse.org/debug/distribution/leap/42.3/repo/oss/ "Debug"
zypper addrepo --check --refresh --name "OSS Update Debug" http://download.opensuse.org/debug/update/leap/42.3/oss/ "Update-Debug"
不过,在国内访问openSUSE的官方网站似乎总是被断开,所以采用163镜像网站:
zypper addrepo --check --refresh --name "Open Source Software - OSS" http://mirrors.163.com/openSUSE/distribution/leap/42.3/repo/oss/ "OSS"
zypper addrepo --check --refresh --name "OSS Update" http://mirrors.163.com/openSUSE/update/leap/42.3/oss/ "Update"
zypper addrepo --check --refresh --name "OSS Source" http://mirrors.163.com/openSUSE/source/distribution/leap/42.3/repo/oss/ "Src-OSS"
zypper addrepo --check --refresh --name "OSS Debug" http://mirrors.163.com/openSUSE/debug/distribution/leap/42.3/repo/oss/ "Debug"
zypper addrepo --check --refresh --name "OSS Update Debug" http://mirrors.163.com/openSUSE/debug/update/leap/42.3/oss/ "Update-Debug"
注意:SUSE软件仓库配置位于 /etc/zypp/repos.d
目录下。
重命名软件仓库
zypper renamerepo mylocalrepo LOCALRPM-Repo
删除仓库
zypper removerepo LOCALRPM-Repo
备份仓库
zypper lr --export /var/tmp/backup.repo
禁用和激活仓库
zypper modifyrepo -d Mozillarepo
zypper modifyrepo -e Mozillarepo
刷新仓库
如果仓库长时间不同步,可以手工刷新
zypper refresh Mozillarepo
要设置自动刷新选项:
zypper modifyrepo --refresh mylocalrepo
创建一个本地软件仓库
可以在服务器上为一个本地目录创建一个本地软件仓库
zypper addrepo <Path_to_dir> <Repo Name>
例如:
zypper addrepo /var/stormgt/dsminst mylocalrepo
然后就可以搜索本地仓库
zypper search --repo mylocalrepo
参考