私はソースからバイナリを作成する傾向があります。私の通常の設定は次のとおりです
$HOME/build -> this gets the sources
$HOME/programs -> this is where the build happen, so where the binaries are
完了したら、bashrc
export MYNEWBINDIR = $HOME/programs/...
export PATH=$MYNEWBINDIR:$PATH
私の質問は:これが推奨される方法ですか?たとえば、ローカルを作成し、$HOME/bin
そこにあるすべてのバイナリをシンボリックリンクしてからパスに追加できます。
答え1
必要なことはある程度個人によって異なりますが、基本システムまたはパッケージマネージャがすでに使用しているディレクトリを常に維持することをお勧めします。以前にインストールされたファイルを上書きしてパッケージマネージャを混乱させたくないでしょう。したがって、必ず一人で/bin
残してください。
ほとんどのシステムでは/usr/local
しなければならない一部のシステム(FreeBSDやOpenBSDなど)のパッケージマネージャも、ポート/パッケージにインストールされているソフトウェアをローカルソフトウェアとして扱うため、この領域を使用しますが、製品をインストールする安全な領域です。
「アイテムも参照してください。ファイルシステム階層標準「そして」Unixファイルシステム「ウィキペディアで。
いくつかのユニセスもあります。hier(7)
手動参考にしてください。 (リンクはOpenBSDのバージョンを指していますが、少なくともLinuxのUbuntuでも使用できます。OpenBSDの場合は、システムソフトウェアが認識するディレクトリを文書化するため、たとえば言及しません。/opt
)
タスクが完了すると削除できるディレクトリなので、コンテンツをどこに構築するかは問題ではありません。ただし、実際のインストールディレクトリから離れているのが最善です。私は/bin
とソースツリーを持つシステムで作業しましたが、/usr/local
とても乱雑でした。
make install
また、ビルドを調整しない限り、ビルドディレクトリで実行可能ファイルを実行するよりも実際にソフトウェアで作業することをお勧めします。PATH
実際に実行可能ファイルを収集しない限り、場所に実行可能ファイルを収集すると、設定がよりきれいで簡単になります。考えるPATH
明らかに、すべてのソフトウェアには独自の要素があります。
私の個人的な意見は次のとおりです。
私自身のために特別に作成されたソフトウェアの場合は、インストールに個人階層を使用する傾向があります$HOME/local
。
GNU自動ツールを使用してスクリプトを含むプログラムをコンパイルするときは、これは非常に簡単ですconfigure
。ただ言う
$ ./configure --prefix="$HOME/local"
構成段階で前make
とmake install
。
CMakeを使用してプログラムをコンパイルすると、次の方法で同じ結果が得られます。
$ cmake -DCMAKE_INSTALL_PREFIX="$HOME/local" .
make
前とステップmake install
。 Perlモジュールなどをインストールすると(他の方法で)同じ効果が発生する可能性があります。
その場合は、明らかに$HOME/local/bin
パスに追加する必要があります...
個人的にはGNUストーまた、実際には$HOME/local
インストールプレフィックスとして指定するのではなく、$HOME/local/stow/thing-2.1
パッケージを構成するときに指定することを意味しますthing-2.1
。
インストール後:
$ cd "$HOME/local/stow"
$ stow thing-2.1
そのディレクトリの内容が表示されます(シンボルリンクを使用して)($HOME/local/stow/thing-2.1/bin
以下にインストールされているすべてのディレクトリについても$HOME/local/bin
同様です)。lib
thing-2.1
Stowはとても簡単です削除ソフトウェア。make install
単にソフトウェアを削除して削除するために人がインストールしたすべての小さなファイルを追跡するのではなく、
$ cd "$HOME/local/stow"
$ stow -D thing-2.1
$ rm -rf thing-2.1