FreeBSD에서 사용자 정의 패키지를 어디에 설치합니까?

FreeBSD에서 사용자 정의 패키지를 어디에 설치합니까?

Linux에서는 다음과 같이 말합니다.파일 시스템 계층 표준/opt추가 애플리케이션 패키지를 위한 지정된 위치입니다. 따라서 (다른 어떤 것에도 의존하지 않는) 나만의 패키지를 개발할 때 나는 그것을 /opt/somepackage아래에 내가 선택한 계층 구조와 함께 내부에 배치했습니다.

위 링크 에 따르면 FreeBSD는 FHS를 엄격하게 따르지 않고 대신 타사 패키지를 /usr/local.OPNsense에 설치하고 자체 코드를 /usr/local/opnsense. - 따라서 특정 위치에서 설치된 패키지는 다른 것과 충돌할 가능성이 적지만 .hier/opt/somepackage

FreeBSD의 적절한 설치 위치는 무엇입니까? /usr/local/somepackage대신 /opt/somepackage, 다시 아래에 내가 선택한 계층 구조가 있습니까?

통찰력을 제공하지만 내 질문에 대한 완전한 답변은 제공하지 않는 다음 게시물을 보았습니다.

답변1

적어도 OpenBSD에서는(FreeBSD에도 동일하게 적용되는 것 같습니다) 이는 /usr/local기본적으로 운영 체제의 패키지 시스템에 의해 관리됩니다. 귀하의 "맞춤 패키지"가아니요패키지 시스템에서 처리할 경우 동일한 이름의 파일 등 다른 패키지와 충돌할 수 있습니다. 따라서 운영 체제의 패키지 시스템을 통해 설치할 패키지를 구축하지 않는 한, /opt다른 패키지를 방해하지 않도록 (또는 방해를 받지 않도록) 패키지를 그대로 두는 것이 좋습니다.

답변2

/usr/localvs.의 사용은 /opt/BSD를 초월하고 Linux보다 우선합니다.

일반적으로 두 디렉토리는 모두 운영 체제와 함께 제공되지 않는 소프트웨어를 설치하는 데 사용됩니다. "패키지 관리자가 설치하지 않는" 소프트웨어에 대한 언급은 실제로 운영 체제에서 제공하는 리포지토리 및 패키지에서 제공되지 않음을 의미합니다. 많은 타사 패키지 관리자 및 저장소가 /opt에 설치됩니다.

역사적으로 로컬에 설치된 모든(비 distro) 패키지는 일반적으로 일종의 계층 구조 /usr/local에 덤프되었습니다 .{bin,sbin,man,lib}

그러나 여러 패키지의 파일이 모두 뒤죽박죽되어 잠재적으로 서로 간섭하고 업데이트 경로가 불분명해지기 때문에 이는 금방 혼란스러워질 수 있습니다.

그래서 /usr/local/$packagename/{bin,lib,man}더 나은 것을 설치하는 연습이 시작되었지만 여전히 지저분합니다. 이 문제를 해결하려면 /opt를 사용하여 문제를 해결하는 것이 좋지만 /usr/local/여전히 엉망이지만 적어도 일부 패키지는 이 엉망이 아닙니다.

그러나 실제로는 궁극적으로 어디에서나 소프트웨어를 설치할 수 있으며 $HOME/mysillyapps/$package/{bin,man,lib}유일한 요구 사항은 추가하는 것입니다 bin( $PATH다른 환경도 도움이 되지만). 따라서 /usr/local/or를 사용하는 /opt것은 일종의 불가지론적이며 이는 모든 곳에서 작동합니다.

디렉터리 이름에 $packagename(또는 $packagename-$version)을 추가하면 설치 위치에 관계없이 패키지 관리자가 설치한 응용 프로그램과의 충돌 위험이 줄어들기를 바랍니다. (물론 동일한 패키지를 수동으로 설치하고 패키지 관리자를 사용하는 것은 아닙니다!)

여기서 유일한 OS 버전 관련 사항은 /usr/local/bin이 기본적으로 PATH에 추가되었을 수 있다는 것입니다.

관련 정보