Linuxシステムでソフトウェアをコンパイルして手動でインストールする良い方法が何であるかを知りたいです。私の言葉は、次の一般的な方法でコードを取得、ビルド、インストールすることです。
git clone https://a-repo/foo.git
cd foo/
./configure
make
make install
- このような状況を避けるべきですか?それともお勧めですか?おそらくあなたが使用しているディストリビューションのためのパッケージを作成する方が良いかもしれません。
- バージョンとアップデートの管理に関するヒントはありますか?
./configure
仕事をするとき、特に仕事をするときに良い習慣がありますか--prefix=
?- 正しくインストール/削除するには?実行するソースを常に維持する必要がありますか
make uninstall
? - たとえば、いくつかのツールを見たことがありますが、
stow
議論の余地がある解決策のようです。たぶん別の解決策ですか?
展開に依存しないソリューションを好むが、すべての提案とコメントを歓迎します!
ありがとうございます!
編集する:人々が私の質問を理解していないようです。私は議論を始めようとするのではなく、上記のことについてできるだけ明確に答えたいと思います。私はこれが何人かの人々に役立つかもしれないと思います。あなたの貢献に感謝します。
ベストアンサー1
アプローチの問題は、ソフトウェアをアンインストールするときに削除する必要があるファイルを特定することです。
最善の方法は、配布用のパッケージを構築することです。これにはいくつかの利点があります。パッケージを簡単にインストール、アップグレード、および削除できます。これにより、別々のコンピュータでソフトウェアをコンパイルできるため、各コンピュータにコンパイラをインストールする必要はありません。アップストリームが別のバージョン/リリースに移動すると、パッケージを簡単にアップグレードできます。さらに、ルートなしでソフトウェアを構築できます。
rpmbuildと仕様ファイルの使い方を学ぶ前に、私が使用した迅速で汚れた作業は次のとおりです。
./configure
make
make DESTDIR=/tmp/build install
これにより、「インストールされた」すべてのファイルが正しいインストールツリーとともに/ tmp / buildディレクトリに配置されます。次に、ディレクトリ内のすべてのファイルの所有者/グループを変更します。それから:
tar cvfj <filename> -C /tmp/build/
インストールするには:
tar xvf <filename> -C /
削除するには:
tar tf <filename> | xargs rm