FreeBSDは、共通の依存関係を共有する2つのパッケージのインストールをどのように処理しますか?

FreeBSDは、共通の依存関係を共有する2つのパッケージのインストールをどのように処理しますか?

私はFreeBSD 11で作業しており、プログラムをtcpdump依存関係libpcapとして使用しましたlibsmi

tsharkまた、Wiresharkのコンソールバージョンをインストールしたいと思います。 tsharkに独自のキャプチャ機能がある場合でも、tcpdumpをインストールする必要があります。 Tsharklibsmiとおよびは依存関係としてリストされておりlibgpg-error, libgpg-error, libgnutls, gnutls, libgcrypt, libgcrypt, libGeoIP, GeoIP, libsmi, libintl, gettext-runtime, libglib-2.0, glib20, libintlpy-pysharkそれらの1つにインストールまたは使用されるバージョンがある可能性があります。また、ページmanには使用中と指定されていますが、pcapfreshportリストには表示されません。

問題がありますか?それともpkg install tshark通常どおりにOSで問題を解決できますか?興味深いことに、FreeBSDはこれらの一般的な状況をどのように処理しますか?

新しいポートリンク:   ネットワーク/tcpdump、   ネット/シャーク

答え1

通常、これは問題ではありません。 FreeBSD(および通常はUnixベースのオペレーティングシステム)は動的接続を使用するため、複数のプログラムが同じ依存関係を使用できます。依存関係は一度だけインストールできます。

パッケージが同じバージョンの依存関係を使用できる限り、大丈夫です。両方のプログラムが同じライブラリの異なるバージョンを必要とする場合、または共存できない異なるライブラリの実装が必要な場合、互換性の問題が発生することがあります。しかし、通常、すべてがうまく機能します。

答え2

これは問題ではありません。依存関係リストは、特定のパッケージを実行する前にインストールする必要があるパッケージのリストです。最後の依存関係は、FreeBSDをインストールする必要があるということです!

pkgまだ存在しない依存関係をインストールできるように、依存関係リストが存在します。

パッケージAをインストールして依存関係Bをインポートしても問題はありません。その後、Bも必要なパッケージCをインストールするとすでに存在するため、何も起こりません(しかしそれでも記憶されますpkg)。

さらに重要なのは、パッケージAを削除するとに慣れるパッケージCにはまだ必要なので、パッケージBを削除します。

完璧ではないようです(そうですが)。時には何も必要としない孤児(「リーフ」)パッケージで終わる場合があります(もちろんまだ必要な場合もあります)。このパッケージは、pkg_cutleavesこれらのクリーニングに便利です。

関連情報