
在Debian/Ubuntu下有apt来管理软件和系统,在Redhat系的系统下则是dnf和yum,对于openSUSE 系统,则使用zypper作为其命令行包管理器,同样,zypper具有优秀的依赖解析能力。这里简单的罗列了一些常用的命令作为备忘。
1. 基础包管理
这是最常用的增删改查命令,绝大多数指令都有简写形式。
搜索软件包
zypper se <关键词> # 基础搜索 (search)
zypper se -s <关键词> # 详细搜索,列出所有可用版本和所属仓库
安装软件包
sudo zypper in <包名> # 安装 (install)
sudo zypper in -f <包名> # 强制重新安装 (覆盖损坏的文件时非常有用)
卸载软件包
sudo zypper rm <包名> # 卸载 (remove)
sudo zypper rm -u <包名> # 卸载软件包,并同时清理不再被依赖的孤儿包
查看软件包信息
zypper info <包名> # 查看包的描述、大小、依赖和所在仓库
锁定/解锁软件包
sudo zypper al <包名> # 添加锁定 (addlock)
sudo zypper rl <包名> # 解除锁定 (removelock)
zypper ll # 列出当前所有的锁定列表 (locks)
2. 系统更新与升级
刷新软件源
sudo zypper ref # 刷新所有仓库的元数据 (refresh)
更新升级
sudo zypper dup # 发行版升级 (distribution upgrade),Tumbleweed系统用该命令进行日常更新
sudo zypper up # 普通版本,如Leap使用该命令更新
注意:Tumbleweed绝对不要使用zypper up更新!!!
3. 软件源 (Repository) 管理
添加第三方源(如 Packman)或私有驱动时常用的命令。
列出当前软件源
zypper lr # 列出软件源 (list-repositories)
zypper lr -d # 详细列出,包含 URL 和优先级参数
添加软件源
sudo zypper ar -f <URL> <别名> # 添加仓库并开启自动刷新 (addrepo)
删除或禁用软件源
sudo zypper rr <别名或编号> # 删除源 (removerepo)
sudo zypper mr -d <别名或编号> # 仅禁用源,不删除 (modifyrepo -disable)
启用某个软件源
sudo zypper mr -e <源> # -e 代表 enable
批量禁用/开启所有源
sudo zypper mr -da # 禁用所有源 (disable all)
sudo zypper mr -ea # 启用所有源 (enable all)
修改源是否自动刷新 (Auto-Refresh)
sudo zypper mr -r <源> # 开启自动刷新(推荐绝大多数源保持开启) -r 代表 refresh (小写),加a可以批量操作所有
sudo zypper mr -R <源> # 关闭自动刷新 -R 代表关闭 refresh (大写),,加a可以批量操作所有
设置某个源的优先级
sudo zypper mr -p <数字> <源> # -p 代表 priority
# 一次性完成三个设置:启用该源 (-e)、开启自动刷新 (-r)、并将其优先级提升到 90 (-p 90)
# 参考:sudo zypper mr -e -r -p 90 packman
4. 进阶运维与清理
允许供应商变更 (Vendor Change)
当你从 Packman 等第三方源安装多媒体解码器,且与官方源冲突时,Zypper 默认不会自动切换供应商。
sudo zypper dup --allow-vendor-change
清理缓存
sudo zypper clean -a # 清除所有下载的包缓存和元数据,释放空间