我被告知要使用/etc/profile.local
以下几行进行调整(以 root 用户身份):
export PATH=$PATH:~/cmds:.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/lib
export LIBRARY_PATH=$LIBRARY_PATH:~/lib
export ALLOW=1
但我似乎找不到profile.local
文件,我在 Ubuntu 14.04 上。无论如何,我需要执行此操作的程序正在查找命令cmds
,所以我假设这只是更新我的路径?
我对 Linux 相当陌生,所以任何帮助将不胜感激。我尝试更新 global /etc/profile
,但这没有任何作用。
答案1
如果/etc/profile.local
不存在,那么您可以简单地创建它并在任何文本编辑器中编写这些行,或者简单地复制并粘贴此行:
cat <<EOF>/etc/profile.local
export PATH=$PATH:~/cmds:.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/lib
export LIBRARY_PATH=$LIBRARY_PATH:~/lib
export ALLOW=1
EOF
之所以告诉您将其放入,/etc/profile.local
是因为该文件不会被覆盖,而是/etc/profile
会在系统更新时更新。
答案2
作为中描述的方法的替代方法@jimmij 关于的回答/etc/profile.local
,诸如此类的更改也可以放置在下面的文件中/etc/profile.d
。
该目录中的文件是在帐户登录时获取的。例如:
$ ls -l /etc/profile.d/ | head -5
total 120
-rw-r--r--. 1 root root 771 Mar 26 2014 256term.csh
-rw-r--r--. 1 root root 841 Mar 26 2014 256term.sh
-rw-r--r--. 1 root root 2864 Apr 23 04:28 autojump.bash
-rw-r--r--. 1 root root 619 Apr 23 04:28 autojump.sh
当用户使用任何 bourne 风格的 shell(例如zsh
或bash
或csh
.
这些文件只是包含您的导出,如下所示:
$ more /etc/profile.d/lithograph_software.sh
export PATH=$PATH:$HOME/cmds:.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/lib
export LIBRARY_PATH=$LIBRARY_PATH:$HOME/lib
export ALLOW=1
答案3
遇到同样的问题,但没有在任何地方找到这个简单的解决方案。通过添加自定义命令创建文件后,您应该在用户文件/etc/profile.local
中添加下一个字符串.profile
test -s /etc/profile.local && . /etc/profile.local
对于所有用户,您有两种情况:
如果用户不存在,请将此行添加到
/etc/skel/.profile
~/.bash_profile
如果您的用户已经有 SKEL 目录或文件,则默认情况下可能会错过 SKEL 目录~/.bash_login
。而且它不适用于现有用户。对于现有用户(例如,如果这是 root),您应该手动将其添加到
/root/.profile
或将其他用户添加到~/.profile
或~/.bash_profile
。并在这一步后重新登录。
此建议适用于 Ubuntu 等操作系统。其他操作系统可以有这个内置解决方案。例如 SUSE Linux。