私は次のような状況にあります。
私のすべてのソフトウェアはその/home/daniel/*
パスにインストールされ、内部的に参照されます。ただし、ネットワークドライブを使用すると参照がに変わり、/home/foo/daniel
ソフトウェアを使用できなくなります。
たとえば、いくつかのプログラムを呼び出すか、いくつかの環境変数を変更してgoパスを変更する方法はありますか?それとも2つのプログラムが必要ですか?
ベストアンサー1
ソフトウェアがどのように機能するかによって異なります。おすすめ内部パスで。
環境変数を介してのみ実行できる場合は、次のことができます。
eval "$(export -p | sed 's|/home/daniel|/home/foo/daniel|g')"
すべての/home/daniel
sを対応/home/foo/daniel
する値に変更します。
追加/home/foo/daniel/lib
(または共有ライブラリがインストールされている場所)は、プログラム$LD_LIBRARY_PATH
でそのライブラリを見つけるのに役立ちます。ただし、一部のソフトウェアがconfファイルを見つけるか、または特定の/home/daniel/etc
データファイルを見つけるようにハードコードされている場合は、/home/daniel/share
それを上書きするように設定できる同等の標準環境変数がありません。
問題を解決するために/home/daniel
- >シンボリックリンクを追加したり、chrootまたはユーザーインストールの名前空間を作成できない場合は、たとえばソフトウェアを再コンパイルすることをお勧めします。これにより、任意の場所にいつでもシンボリックリンクを使用できます。../foo/daniel
--prefix=/var/tmp/daniel