
我想打包、安裝和卸載一個 rpm,它可以在所有使用者的所有互動式 shell 啟動時添加上下文警告訊息(實際上,至少是 bash ssh 會話和 bash gnome 終端)。基本上,如果檔案遺失,程式碼將顯示警告訊息。
嗯,候選人是/etc/bashrc
、、、、。/etc/profile
/etc/profile.d/myscript.sh
/etc/skel/.bash_profile
/etc/skel/.bashrc
最簡單的方法是安裝一些東西,/etc/profile.d
但它並不能真正滿足我的需求(ssh bash 會話)。
我認為正確的地方是,/etc/skel/.bashrc + exisiting .bashrc
但我對在這些文件中添加/刪除代碼感到不安全……我的理解是,yum
放置rpm
和刪除文件;它們並非旨在安全地修改文字檔案。
我想要一些像是/etc/bashrc.d/
...
我該去哪裡安全安裝警告訊息,以便它可以在所有互動式 shell 中使用,並且安全解除安裝?我所說的安全是指不刪除任何不需要的內容。
答案1
該檔案/etc/bashrc
被標記為rpm%config(noreplace)
中的檔案setup
。這意味著如果您更新它,yum
將會不是代替它。升級包時,如果有更新的/etc/bashrc
,yum
會建立/etc/bashrc.rpmnew
.那麼你能如果您願意,請安全地修改它。
但看來沒有必要。看看/etc/bashrc
你的 centos/rhel/fedora/etc 系統,你會發現:
if ! shopt -q login_shell ; then # We're not a login shell
[...]
for i in /etc/profile.d/*.sh; do
if [ -r "$i" ]; then
if [ "$PS1" ]; then
. "$i"
else
. "$i" >/dev/null
fi
fi
done
[...]
該程式碼確保其中的檔案既針對登入 shell(在這種情況下運行它們)又針對非登入 shell(在這種情況下該循環負責運行它們)/etc/profile.d
運行。/etc/profile
換句話說,你已經有一個/etc/bashrc.d
,它的名字叫/etc/profile.d
。