次の行で調整するように指示されました/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
しかし、Ubuntu 14.04 を使用しているため、ファイルが見つからないようですprofile.local
。いずれにせよ、これを実行する必要があるプログラムは 内のコマンドを探しているのでcmds
、これはパスを更新しているだけだと思いますか?
私は Linux にかなり不慣れなので、どんな助けでもありがたいです。グローバルを更新してみました/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
zsh
これらのファイルは、ユーザーがやbash
、 などの Bourne スタイルのシェルを使用してログインしたときに取得されます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
すべてのユーザーにとって、2 つの状況があります。
ユーザーが存在しない場合は、この行を追加します
/etc/skel/.profile
ユーザーがすでにファイルを持っている場合、SKEL ディレクトリはデフォルトで欠落する可能性があります
~/.bash_profile
。~/.bash_login
また、既存のユーザーには機能しません。既存のユーザー (たとえば、root の場合) の場合は に手動で追加し、
/root/.profile
他のユーザーの場合は~/.profile
または に追加する必要があります~/.bash_profile
。この手順の後に再度ログインします。
このアドバイスは、Ubuntu などの OS に適しています。他の OS にもこの組み込みソリューションがある場合があります。たとえば、SUSE Linux などです。