通常、私はプログラムをビルドするときなど、次のワークフローにemacs
従いtmux
ます。
/home/opt/[name of the program]/builds/[version]/
bin
lib
share
たとえば、私のようなプログラムでは、tmux
次のようなものがあります。
/my_local_opt/tmux/builds/1.7.-227/
bin
lib
share
/home/bin/
次に、私が持っている特定のビルドを指すPATH
シンボリックリンクを作成します/home/bin
。
たとえば、上記の例では
- シンボリックリンクの作成:開始:
/home/bin/tmux
終了:/my_local_opt/tmux/builds/1.7.-227/bin/tmux
- のみ
PATH
を含む/home/bin
man
しかし、(MANPATH
)とlib
()のパスに対してLD_LIBRARY_PATH
同様のアプローチを実行できるかどうかはわかりません。
たとえば、ビルド後に次のような項目が
tmux
生成されたことを確認しました。.. /share/man/man1/tmux.1
そこで、そこでファイルへのシンボリックリンクを作成し、パスを含めるように修正し
/home/share
ましMANPATH
た。ただし、入力すると機能man tmux
しません( "No manual entry for tmux
"と表示されます)。なぜ?どうですか
lib
?私はLD_LIBRARY_PATH
各プログラムの特定のディレクトリを変更し、シンボリックリンクを使用して埋め込みバージョンを制御できると思いました。これは良い考えですか?
より一般的には、システムのバージョンを管理するためにシンボリックリンクを使用するのが良い考えですか?長期的には、複数の設定を追跡するためにgitリポジトリにシンボリックリンクを維持したいと思います。
ソフトウェアをビルドするコンピュータに対する管理者権限がないため、ビルドを簡単に構成および管理する方法として使用したいと思います(パスが保存されている環境変数を継続的に編集する必要はありません)。
答え1
あなたの目標とGentooプレフィックスただし、ビルドされたアプリケーションは別々に保存せず、Gitへのシンボリックリンクも保存しません。
LD_LIBRARY_PATH
ただし、マンページとライブラリの要件が変更されます(警告を設定するか、ハードコーディングされた特定のパスを持つ設定とバイナリが必要です)。
さらに、git-of-symlinksモデル自体は概念的にOverlayFS / AUFSモデルと似ていますが、より多くのミックスとマッチング機能があります。