![CentOS kickstart-强制内核版本](https://linux22.com/image/661623/CentOS%20kickstart-%E5%BC%BA%E5%88%B6%E5%86%85%E6%A0%B8%E7%89%88%E6%9C%AC.png)
我想使用特定内核版本(略低版本)来启动某些服务器,但无法找出 kickstart 文件中的正确语法。我尝试在“%packages”部分中指定此语法,同时使用带减号前缀的内核包(以将其删除)和不带前缀的条目,但我收到了多库错误消息。
来自 kickstart 文件:
%packages --nobase
-kernel-2.6.32-504.23.4.el6.x86_64
kernel-2.6.32-504.16.2.el6.x86_64
...other packages...
错误信息:
Protected multilib versions:
kernel-2.6.32-504.23.4.el6.x86_64 != kernel-2.6.32-504.16.2.el6.x86_64
谢谢!
答案1
根据 Petter 的建议,降级 %post 部分中的内核是可行的:
%post
rpm -ivh --oldpackage http://my.repo.server/centos/6.6/updates/x86_64/Packages/kernel-2.6.32-504.16.2.el6.x86_64.rpm
rpm -ivh --oldpackage http://my.repo.server/centos/6.6/updates/x86_64/Packages/kernel-firmware-2.6.32-504.16.2.el6.x86_64.rpm
谢谢!
答案2
你的语法是正确的:
%packages kernel-2.6.32-504.16.2.el6.x86_64
通常会安装特定的包及其依赖项(如果有)。
Multilib 错误通常表示 32 位和 64 位库之间的交互存在问题,但根据我的经验,它也可能表示核心包之间存在无法解决的冲突。
建议让系统处于这种状态,然后使用 提取完整的软件包列表rpm -qa | sed 's/.rpm//'
,然后将其粘贴到 kickstart%post
部分。