RHEL RPM 规范 post 安装 %post 未采购 shell 脚本

RHEL RPM spec post installation %post not sourcing shell script

在 RHEL7.4 中成功安装 rpm 后,我正在尝试 source root 环境中的 shell 脚本(因为我正在以 root 身份进行安装)盒子

rpm规格%post部分如下:

%post
source /etc/profile.d/env.sh

script env.sh 在上述路径安装后可用,用于设置 PYTHONPATH 环境变量,如下所示:

pypath="/opt/lib"
if [ "$(echo $PYTHONPATH | grep $pypath)" == "" ]; then
        export PYTHONPATH="$PYTHONPATH:$pypath"
fi

但是,即使我将“source”命令更改为“.”脚本,成功安装 rpm 后也不会发生这种情况

当我手动获取脚本 env.sh 时,变量被设置

命令可能 运行 正确,但您希望为每个人更改 PYTHONPATH;事实并非如此:仅针对 %post 部分的 shell 会话更改了 PYTHONPATH。

每次启动新的 shell(或 bash)会话时,您的环境变量都会被重置。您可以查看相关问题以获取有关如何永久更改环境变量的信息;然后您可以选择您的 rpm 包使用哪种策略,例如:

https://unix.stackexchange.com/questions/117467/how-to-permanently-set-environmental-variables