質問: 環境変数を永続的に設定する方法 私の変数はld_library_path=/usr/lib/oracle/11.2/client64/lib oracle_home=/usr/lib/oracle/11.2/client64 これらの変数を永続的に保存する方法は?
回答: すべてのユーザー/シェルの場合、ディストリビューションに応じて/etc/environmentまたは/etc/profileを使用できます。 /etc/profile.dで新しいファイルを作成すると、パッケージングシステムによって行われた更新と競合する可能性が低くなるので、存在する場合はそれをお勧めします。/etc/environmentでは、変数は通常name=valueで設定されます。例:oracle_home=/usr/lib/oracle/11.2/client64 /etc/profileでは、これはスクリプトなので、exportを使用する必要があります。例:export oracle_home=/usr/lib/oracle/11.2/client64 同じことが/etc/profile.dの下のファイルにも当てはまります。ファイルが機能するために満たす必要のある命名の制限がある場合もあります。 debianでは、ファイルの拡張子は.shである必要があります(ただし、ソースが指定されているため、強行や実行可能権限は必要ありません)。ディストリビューションのドキュメントを確認するか、/etc/profileスクリプトを参照して、これらのファイルがどのように読み込まれるかを確認してください。ld_library_pathを永続的に設定することは、潜在的に 問題 になる可能性があることにも注意してください。これには、セキュリティ上のリスクも含まれます。別の方法として、実行する前に必要な各プログラムのコマンドラインの先頭にld_library_pathを追加する方法を見つけることをお勧めします。例えば:ld_library_path=/usr/lib/oracle/11.2/client64/lib myprog これを行う1つの方法は、ラッパースクリプトを使用してプログラムを実行することです。これをプログラムと同じ名前にして、/usr/local/binまたはpath内のプログラムの場所の前の前に置くことができます。スクリプトの例を次に示します(chmod +xスクリプトを忘れないでください)。#!/bin/sh ld_library_path=/usr/lib/oracle/11.2/client64/lib /real/location/of/myprog "$@"