SUSE Linux – Zypper 命令示例及安装多个内核
什么是zypper?
zypper 是原生 ZYpp 包管理器的命令行界面。zypper 主要存在于 SLES(SUSE Linux Enterprise Server)和 openSUSE 发行版中。zypper 用于安装、删除、更新和查询软件包。
zypper常用命令
root@kerneltalks # zypper
用法:
zypper [--global-options] <command> [--command-options] [arguments]
zypper <subcommand> [--command-options] [arguments]
> 全局选项:
--help, -h 帮助
--version, -V 输出版本号
--promptids 输出 zypper 用户提示符列表
--config, -c <file> 使用指定的配置文件来替代默认的
--userdata <string> 在历史和插件中使用的用户自定义事务 id
--quiet, -q 忽略正常输出,只打印错误信息
--verbose, -v 增加冗长程度
--color
--no-color 是否启用彩色模式,如果 tty 支持的话
--no-abbrev, -A 表格中的文字不使用缩写
--table-style, -s 表格样式(整型)
--non-interactive, -n 不询问任何选项,自动使用默认答案
--non-interactive-include-reboot-patches
针对带有重启标志的补丁,不使用交互模式
--xmlout, -x 切换至 XML 输出
--ignore-unknown, -i 忽略未知的包
--reposd-dir, -D <dir> 使用自定义仓库文件目录
--cache-dir, -C <dir> 为所有缓存启用可选路径
--raw-cache-dir <dir> 启用可选 raw 元数据缓存路径
--solv-cache-dir <dir> 启用可选 solv 文件缓存路径
--pkg-cache-dir <dir> 启用可选包缓存路径
> 仓库选项:
--no-gpg-checks 忽略 GPG 检查失败并跳过
--gpg-auto-import-keys 自动信任并导入新仓库的签名密钥
--plus-repo, -p <URI> 使用附加仓库
--plus-content <tag> 另外使用禁用的仓库来提供特定的关键词
尝试使用 '--plus-content debug' 选项来启用仓库
--disable-repositories 不从仓库中读取元数据
--no-refresh 不刷新仓库
--no-cd 忽略 CD/DVD 中的仓库
--no-remote 忽略远程仓库
--releasever 设置所有 .repo 文件中的 $releasever 变量(默认值:发行版版本)
Target Options:
--root, -R <dir> 在另一个根路径下进行操作
--disable-system-resolvables 取已安装包
> 仓库管理:
repos, lr 列出所有自定义仓库
addrepo, ar 添加一个新仓库
removerepo, rr 移除指定仓库
renamerepo, nr 重命名指定仓库
modifyrepo, mr 修改指定仓库
refresh, ref 刷新所有仓库
clean 清除本地缓存
> 服务管理:
services, ls 列出所有自定义服务
addservice, as 添加一个新服务
modifyservice, ms 修改指定服务
removeservice, rs 移除指定服务
refresh-services, refs 刷新所有服务
> 软件管理:
install, in 安装包
remove, rm 移除包
verify, ve 确认包依赖的完整性
source-install, si 安装源码包及其构建依赖
install-new-recommends, inr
安装由已安装包建议一并安装的新包
> 更新管理:
update, up 更新已安装包至更新版本
list-updates, lu 列出可用更新
patch 安装必要的补丁
list-patches, lp 列出必要的补丁
dist-upgrade, dup 进行发行版更新
patch-check, pchk 检查补丁
> 查询:
search, se 查找符合匹配模式的包
info, if 展示特定包的完全信息
patch-info 展示特定补丁的完全信息
pattern-info 展示特定模式的完全信息
product-info 展示特定产品的完全信息
patches, pch 列出所有可用的补丁
packages, pa 列出所有可用的包
patterns, pt 列出所有可用的模式
products, pd 列出所有可用的产品
what-provides, wp 列出提供特定功能的包
> 包锁定:
addlock, al 添加一个包锁定
removelock, rl 移除一个包锁定
locks, ll 列出当前的包锁定
cleanlocks, cl 移除无用的锁定
> 其他命令:
versioncmp, vcmp 比较两个版本字符串
targetos, tos 打印目标操作系统 ID 字符串
licenses 打印已安装包的证书和 EULAs 报告
download 使用命令行下载指定 rpm 包到本地目录
source-download 下载所有已安装包的源码 rpm 包到本地目录
> 子命令:
subcommand 列出可用子命令
安装多个内核
摘要
SUSE Linux Enterprise Server 支持多个内核版本的平行安装。安装第二个内核时,将自动创建一个引导项和一个 initrd,因此无需做进一步的手动配置。重引导计算机时,新增的内核可用作附加的引导选项。
使用此功能,您可以安全测试内核更新,同时,还始终能够回退到已经过验证的前一内核。执行此操作时,请不要使用更新工具(例如 YaST 联机更新或更新小程序),而应该遵照本章中所述的过程。
启用和配置多版本支持
以 root 身份使用所选的编辑器打开 /etc/zypp/zypp.conf。
搜索字符串 multiversion。如果为所有支持此功能的内核包启用多版本,以下行可能会取消注释:
multiversion = provides:multiversion(kernel)
COPY
要对特定的内核类型限制多版本支持,请将逗号分隔的包名称列表添加到 /etc/zypp/zypp.conf 中的 multiversion 选项 — 例如
multiversion = kernel-default,kernel-default-base,kernel-source
COPY
保存所做的更改。
## 保留多个内核(特殊版本、正在运行等)
以 root 身份使用所选的编辑器打开 /etc/zypp/zypp.conf。
搜索字符串 multiversion.kernels,并通过取消注释对应的行来激活此选项。此选项将会使用包含以下值的逗号分隔列表:
4.4.126-48:: 保留具有指定版本号的内核
latest:: 保留具有最高版本号的内核
latest-N:: 保留版本号排在第 N 位的内核
running:: 保留正在运行的内核
oldest:: 保留具有最低版本号的内核(最初 SUSE Linux Enterprise Server 随附的内核)
oldest+N: 保留版本号排在倒数第 N 位的内核
以下是一些示例
multiversion.kernels = latest,running
保留最新内核以及当前正在运行的内核。这相当于不启用多版本功能,不过,旧内核是在下一次重引导后才去除的,而不是在安装后立即去除。
multiversion.kernels = latest,latest-1,running
保留最新的两个内核,以及当前正在运行的内核。
multiversion.kernels = latest,running,4.4.126-48
保留最新的内核、当前正在运行的内核,以及 4.4.126-48。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!