Ubuntu で profile.local に追加しますか?

Ubuntu で profile.local に追加しますか?

次の行で調整するように指示されました/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 つの状況があります。

  1. ユーザーが存在しない場合は、この行を追加します

    /etc/skel/.profile
    

    ユーザーがすでにファイルを持っている場合、SKEL ディレクトリはデフォルトで欠落する可能性があります~/.bash_profile~/.bash_loginまた、既存のユーザーには機能しません。

  2. 既存のユーザー (たとえば、root の場合) の場合は に手動で追加し、/root/.profile他のユーザーの場合は~/.profileまたは に追加する必要があります~/.bash_profile。この手順の後に再度ログインします。

このアドバイスは、Ubuntu などの OS に適しています。他の OS にもこの組み込みソリューションがある場合があります。たとえば、SUSE Linux などです。

関連情報