![ローリングリリースディストリビューションのソースからソフトウェアをビルドする[閉じる]](https://linux33.com/image/108306/%E3%83%AD%E3%83%BC%E3%83%AA%E3%83%B3%E3%82%B0%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%87%E3%82%A3%E3%82%B9%E3%83%88%E3%83%AA%E3%83%93%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%8B%E3%82%89%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%82%92%E3%83%93%E3%83%AB%E3%83%89%E3%81%99%E3%82%8B%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
openSUSE Tumbleweedなどのローリングリリースディストリビューションからソースからソフトウェアをビルドする場合は、ディストリビューションリポジトリにインストールされている依存関係が頻繁にアップグレードされる可能性があることを考慮して、これらのプログラムをどのくらい頻繁に再構築する必要がありますか?
たとえば、PCREやGnuTLSなどに依存する可能性のあるソースからApache httpdとEximをビルドしたい場合は、PCRE、GnuTLSなどの依存関係をアップグレードするたびにApache httpdとEximを再構築する必要がありますか?
依存関係がアップグレードされるたびに、ソースから依存ソフトウェアを再構築する必要があるいくつかの種類の依存関係がありますか?
または、依存関係構造が大幅に変更された場合にのみ依存ソフトウェアを再構築する必要がありますか?
ユニークなケースが多いかもしれませんが、一般的なガイドラインはありますか?
答え1
私が知る限り、再コンパイルシナリオで唯一の「痛みを伴う」部分はカーネルアップデートです。その後、すべてのカーネルモジュールでカーネル自体をコンパイルする必要があります。
比較的高いレベルの他のパッケージと同様に、ほとんどの場合、更新時に依存関係を再コンパイルする必要はありません。特定のパッケージの依存関係が大幅に変更され、従属パッケージを再コンパイルする必要はほとんどありません。
ほとんどの場合、これらの「高度な」パッケージが更新されたときに依存パッケージを再コンパイルする必要があるという唯一の指標は、そのパッケージが突然動作を停止することです。
また、更新するパッケージの変更ログを読むことをお勧めします。ほとんどの場合、アーキテクチャの主な変更について警告するためです。しかし、すべてを再コンパイルしないように、現在のバージョンに固執することを選択することもできます。
実際、Slackwareはslackpkg
いくつかの共通パッケージとその依存関係を再コンパイルするプロセスを自動化できます。また、apt
人生をより簡単にするために一種のパッケージマネージャ(など)を使用することも禁止されていません。
以下は、SlackwareとGentooのドキュメントのいくつかの参考資料です: