FreeBSD는 공통 종속성을 공유하는 두 패키지 설치를 어떻게 처리합니까?

FreeBSD는 공통 종속성을 공유하는 두 패키지 설치를 어떻게 처리합니까?

저는 FreeBSD 11에서 작업 중이며 프로그램을 tcpdump종속성 libpcap으로 사용했습니다 libsmi.

tshark또한 Wireshark의 콘솔 버전을 설치하고 싶습니다 . tshark에 자체 캡처 기능이 있더라도 tcpdump를 계속 설치해야 합니다. Tshark libsmi및 및 는 종속성으로 나열되며 libgpg-error, libgpg-error, libgnutls, gnutls, libgcrypt, libgcrypt, libGeoIP, GeoIP, libsmi, libintl, gettext-runtime, libglib-2.0, glib20, libintl, py-pyshark이들 중 하나에는 설치되거나 사용되는 버전이 있을 수 있습니다. 또한 페이지 man에는 사용 중이라고 명시되어 pcap있지만 freshport 목록에는 표시되지 않습니다.

문제가 있나요? 아니면 pkg install tshark평소대로 하면 OS에서 문제를 해결할 수 있나요? 흥미롭게도 FreeBSD는 이러한 일반적인 상황을 어떻게 처리합니까?

새로운 포트 링크:   네트워크/tcpdump,   넷/샤크

답변1

일반적으로 이것은 문제가 되지 않습니다. FreeBSD(및 일반적으로 Unix 기반 운영 체제)는 동적 연결을 사용하므로 여러 프로그램이 동일한 종속성을 사용할 수 있습니다. 종속성은 한 번만 설치하면 됩니다.

패키지가 동일한 버전의 종속성을 사용할 수 있는 한 괜찮습니다. 두 프로그램에 동일한 라이브러리의 서로 다른 버전이 필요하거나 공존할 수 없는 서로 다른 라이브러리 구현이 필요한 경우 호환성 문제가 발생하는 경우가 있습니다. 그러나 일반적으로 모든 것이 잘 작동합니다.

답변2

이것은 문제가 되지 않습니다. 종속성 목록은 특정 패키지를 실행하기 전에 설치해야 하는 패키지 목록입니다. 마지막 종속성은 FreeBSD를 설치해야 한다는 것입니다!

pkg아직 존재하지 않는 종속성을 설치할 수 있도록 종속성 목록이 존재합니다 .

패키지 A를 설치하고 종속성 B를 가져오는 경우에는 물론 문제가 되지 않습니다. 그런 다음 B도 필요한 패키지 C를 설치하면 이미 존재하므로 아무 일도 일어나지 않습니다(그러나 여전히 기억됩니다 pkg).

더 중요한 것은 패키지 A를 제거하면에 익숙해패키지 C에는 여전히 필요하므로 패키지 B를 제거합니다.

완벽하지는 않은 것 같습니다(그래야 하지만). 때로는 아무것도 필요하지 않은 고아("리프") 패키지로 끝나는 경우도 있습니다(물론 여전히 필요한 경우도 있습니다). 이 패키지는 pkg_cutleaves이러한 청소에 유용합니다.

관련 정보