如何在没有 %post 的情况下在 fedora/centos 上的 kickstart 安装过程中包含所有最新更新

如何在没有 %post 的情况下在 fedora/centos 上的 kickstart 安装过程中包含所有最新更新

在 fedora 或 centos 上使用 kickstart 文件进行标准安装只是从安装存储库安装软件包,这些软件包通常在新的 fedora/centos 版本发布几天后就过时了。因此,安装 fedora/centos 总是需要在 kickstart 文件中添加 %post 部分,您可以在其中调用 dnf/yum update -y 来升级旧的和过时的软件包。这是浪费时间和带宽,并且 dnf/yum 安装程序可以同时使用多个存储库并选择最新版本。

我如何告诉 anaconda 在全新安装期间包含“更新”存储库进行安装,以便之后不需要 yum/dnf update -y,因为更新已经安装了?

答案1

在 Fedora 的任何最新版本中,Anaconda 都附带了存储库的内置配置updates。因此,您应该只需添加以下行即可在 Fedora 安装中启用更新:

repo --name=updates

到您的启动。来自repo命令的 kickstart 文档

默认情况下,anaconda 有一组从 /etc/anaconda.repos.d 获取的配置存储库,以及介质安装情况下的特殊安装存储库。此目录中的具体存储库集因版本而异,无法在此处列出。可能总会有一个名为“updates”的存储库。

注意:如果您想启用 /etc/anaconda.repos.d 中默认禁用的存储库之一(如“更新”),则应使用 –name=,但不要使用其他选项。 anaconda 将自动寻找此名称的存储库。提供baseurl或mirrorlist URL将导致anaconda尝试添加另一个同名的repo,这将导致repo冲突错误。

该快捷方式在 CentOS 7 中应该可以正常工作(感谢评论中的 @maxschlepzig 进行检查!)。如果您必须处理较旧的内容,您仍然应该能够使用updates更完整的命令手动添加存储库repo

repo --name=centos-updates --mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates

这将在安装过程中启用 CentOS 更新存储库(具有完整的镜像支持!)。

答案2

对于那些提出这个问题并希望找到适用于 CentOS 8.x 的解决方案的人,我发现添加这些行就可以解决问题:

repo --name=centos-updates --mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=BaseOS --cost=1000
repo --name=appstream-updates --mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=AppStream --cost=1000
repo --name=extras-updates --mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=Extras --cost=1000

通过适当的修改和系统注册等,同样可以在 RHEL 8 上使用。

相关内容