卸载 rpm 时从 PATH 中删除条目
remove entries from PATH while uninstalling rpm
为了让系统保持更干净的状态,我试图从我的 rpm 规范文件的 %preun 部分的 PATH 中删除条目。
我在 Whosebug 上发现了几个我试过的线程
What is the most elegant way to remove a path from the $PATH variable in Bash?
和
Linux: Remove path from $PATH variable
当我在终端上手动 运行 时,这两个链接中的答案都能完美运行。
但是,当我 运行 rpm -e xx 命令时它们不起作用。
如果安装成功后我的 PATH 看起来像这样:
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/lpp/mmfs/bin
我正在尝试删除 /usr/lpp/mmfs/bin、
rpm 卸载后 PATH 如下所示:
/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin
问题:
1) 当前面链接中提到的命令来自规范文件 运行 时,我是否需要做一些不同的事情?
2) 在 rpm 卸载期间删除 PATH 条目的一些推荐方法是什么?
备注
我在规范文件中尝试过的命令是:
PATH=$(echo $PATH | sed -e 's;:\?/home/user/bin;;' -e 's;/home/user/bin:\?;;')
和
PATH=${PATH/:\/home\/user\/bin/}
RPM %preun
脚本 不能 影响任何 运行 shell 的 PATH
变量。那是不可能的。
它也不能(直接)影响任何新 shell 的 PATH
变量。
它唯一能做的就是删除它对系统(或用户 shudder)所做的任何更改 shell 导致 PATH
的启动文件要添加的变量。
删除这些更改将导致任何新的 shell 不进行这些更改,因此也不会有那些额外的 PATH
条目。
添加到 PATH
的正确方法(随后,稍后将其删除)是在 /etc/profile.d
中删除文件 yourpackage.sh
和 yourpackage.csh
。
我也同意其他人的看法,这可能是个坏主意,但如果您需要这样做,我会这样做。
为了让系统保持更干净的状态,我试图从我的 rpm 规范文件的 %preun 部分的 PATH 中删除条目。
我在 Whosebug 上发现了几个我试过的线程
What is the most elegant way to remove a path from the $PATH variable in Bash? 和 Linux: Remove path from $PATH variable
当我在终端上手动 运行 时,这两个链接中的答案都能完美运行。 但是,当我 运行 rpm -e xx 命令时它们不起作用。 如果安装成功后我的 PATH 看起来像这样:
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/lpp/mmfs/bin
我正在尝试删除 /usr/lpp/mmfs/bin、
rpm 卸载后 PATH 如下所示:
/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin
问题: 1) 当前面链接中提到的命令来自规范文件 运行 时,我是否需要做一些不同的事情?
2) 在 rpm 卸载期间删除 PATH 条目的一些推荐方法是什么?
备注 我在规范文件中尝试过的命令是:
PATH=$(echo $PATH | sed -e 's;:\?/home/user/bin;;' -e 's;/home/user/bin:\?;;')
和
PATH=${PATH/:\/home\/user\/bin/}
RPM %preun
脚本 不能 影响任何 运行 shell 的 PATH
变量。那是不可能的。
它也不能(直接)影响任何新 shell 的 PATH
变量。
它唯一能做的就是删除它对系统(或用户 shudder)所做的任何更改 shell 导致 PATH
的启动文件要添加的变量。
删除这些更改将导致任何新的 shell 不进行这些更改,因此也不会有那些额外的 PATH
条目。
添加到 PATH
的正确方法(随后,稍后将其删除)是在 /etc/profile.d
中删除文件 yourpackage.sh
和 yourpackage.csh
。
我也同意其他人的看法,这可能是个坏主意,但如果您需要这样做,我会这样做。