6.3.6. 在 spec 文件中使用非 shell 脚本
spec 文件中的 -p scriptlet 选项使用户可以调用特定的解释器,而不是默认的 shell 脚本解释器(-p /bin/sh)。
下面的步骤描述了如何创建脚本,它会在安装 pello.py 程序后输出信息:
流程
-
打开
pello.spec文件。 找到以下行:
install -m 0644 %{name}.py* %{buildroot}/usr/lib/%{name}/在上面的行下,插入:
%post -p /usr/bin/python3 print("This is {} code".format("python"))- 按照构建 RPM 中所述构建您的软件包。
安装软件包:
# dnf install /home/<username>/rpmbuild/RPMS/noarch/pello-0.1.2-1.el9.noarch.rpm安装后检查输出信息:
Installing : pello-0.1.2-1.el9.noarch 1/1 Running scriptlet: pello-0.1.2-1.el9.noarch 1/1 This is python code
注意
要使用 Python 3 脚本,请在 spec 文件中的 install -m 下包含以下行:
%post -p /usr/bin/python3
要使用 Lua 脚本,在 SPEC 文件中的 install -m 下包含以下行:
%post -p <lua>
这样,您可以在 spec 文件中指定任何解释器。