シンボリックリンクとgitを使用したビルドの管理

シンボリックリンクとgitを使用したビルドの管理

通常、私はプログラムをビルドするときなど、次のワークフローに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同様のアプローチを実行できるかどうかはわかりません。

  1. たとえば、ビルド後に次のような項目がtmux生成されたことを確認しました。

    .. /share/man/man1/tmux.1

    そこで、そこでファイルへのシンボリックリンクを作成し、パスを含めるように修正し/home/shareましMANPATHた。ただし、入力すると機能man tmuxしません( " No manual entry for tmux"と表示されます)。なぜ?

  2. どうですかlib?私はLD_LIBRARY_PATH各プログラムの特定のディレクトリを変更し、シンボリックリンクを使用して埋め込みバージョンを制御できると思いました。これは良い考えですか?

より一般的には、システムのバージョンを管理するためにシンボリックリンクを使用するのが良い考えですか?長期的には、複数の設定を追跡するためにgitリポジトリにシンボリックリンクを維持したいと思います。

ソフトウェアをビルドするコンピュータに対する管理者権限がないため、ビルドを簡単に構成および管理する方法として使用したいと思います(パスが保存されている環境変数を継続的に編集する必要はありません)。

ベストアンサー1

あなたの目標とGentooプレフィックスただし、ビルドされたアプリケーションは別々に保存せず、Gitへのシンボリックリンクも保存しません。

LD_LIBRARY_PATHただし、マンページとライブラリの要件が変更されます(警告を設定するか、ハードコーディングされた特定のパスを持つ設定とバイナリが必要です)。

さらに、git-of-symlinksモデル自体は概念的にOverlayFS / AUFSモデルと似ていますが、より多くのミックスとマッチング機能があります。

おすすめ記事