21.3.3. %post 脚本


%post 脚本是安装后脚本,可在安装完成后运行,但在第一次重启系统前运行。您可以使用这部分来运行任务,比如系统订阅。

您可以添加系统在安装结束后但在第一次重启该系统之前要运行的命令,。此部分必须以 %post 开头并以 %end 结尾。

%post 部分可用于安装其他软件或配置其他名称服务器等功能。post-install 脚本是一个 chroot 环境中运行的,因此,从安装介质中复制脚本或 RPM 软件包等任务在默认情况下不起作用。您可以使用 --nochroot 选项更改此行为,如下所述。然后 %post 脚本将在安装环境中运行,而不是在安装的目标系统中的 chroot 中运行。

由于安装后脚本在 chroot 环境中运行,因此大多数 systemctl 命令将拒绝执行任何操作。

在执行 %post 部分的过程中,必须仍然插入安装介质。

21.3.3.1. %post 脚本部分选项

以下选项可以用来改变安装后脚本的行为。要使用某个选项,请将其附加到脚本开头的 %post 行中。例如:

%post --interpreter=/usr/libexec/platform-python
-- Python script omitted --
%end
--interpreter=

允许指定不同的脚本语言,如 Python。例如:

%post --interpreter=/usr/libexec/platform-python

可以使用系统中可用的脚本语言;在大多数情况下,它们是 /usr/bin/sh/usr/bin/bash/usr/libexec/platform-python

platform-python 解释器使用 Python 版本 3.6。对于新路径和版本,您必须将您的针对以前的 RHEL 版本的 Python 脚本进行更改,以适用于新的路径和版本。另外,platform-python 用于系统工具:使用安装环境之外的 python36 软件包。有关 Red Hat Enterprise Linux 中 Python 的详情,请查看 Python 简介

--nochroot

允许您指定在 chroot 环境之外运行的命令。

以下示例将 /etc/resolv.conf 文件复制到刚安装的文件系统中。

%post --nochroot
cp /etc/resolv.conf /mnt/sysroot/etc/resolv.conf
%end
--erroronfail
如果脚本失败,显示错误并停止安装。错误消息会指示您记录故障原因的位置。安装的系统可能会处于不稳定且无法引导的状态。您可以使用 inst.nokill 选项调试脚本。
--log=

将脚本的输出记录到指定的日志文件中。无论是否使用 --nochroot 选项,都必须考虑日志文件的路径。例如,没有 --nochroot:

%post --log=/root/ks-post.log

使用 --nochroot:

%post --nochroot --log=/mnt/sysroot/root/ks-post.log
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部