궁극적으로 PBI를 포기하고 포팅으로 돌아가게 만든 PC-BSD 팀이 직면한 구체적인 기술적/조직적 이유는 무엇입니까?
편집과 패키징이 어렵기 때문일까요? 그들이 만든 하드링크에 뭔가 문제가 있기 때문일까요? 아니면 종속성을 수집하고 함께 컴파일하는 데 많은 작업이 필요하기 때문입니까?
소프트웨어를 만든 동일한 팀이 왜 이렇게 말하는지 궁금합니다.GNU 캐시), Windows용 독립형 버전을 제공하는 데 시간과 노력을 기울이고 *NIX를 컴파일러/설치 프로그램에 맡기십시오.
포트와 라이브러리가 왜 좋은지 묻고 있는 것이 아닙니다(쉬운 보안 업그레이드, ...). 저는 패키지와 Windows에 대한 선호도나 의견을 묻는 것이 아니라 PBI를 더 이상 사용하지 않는 기술적 이유를 묻는 것이 아닙니다. 특히 PBI(0install, NixOS) 경로가 기술적으로 실현 가능하지 않거나 널리 채택되지 않는 이유를 묻고 싶습니다.
답변1
PC-BSD에서 PBI 파일 형식이 중단된 데에는 실제로 세 가지 이유가 있습니다.
PBI 형식은 FreeBSD용 패키징 형식을 제공하기 위해 만들어졌습니다(이전에는 "실제" 패키징 시스템이 존재하지 않았습니다).패키지- 포트 수집에만 해당).
한 번패키지결국 FreeBSD 자체(9.2/10.0?) 내에서 개발/구현되면 경쟁 형식을 유지할 이유가 거의 없습니다. 왜냐하면 보조 패키지 형식보다 "공식" FreeBSD 패키지를 수정하는 데 더 많은 사람들이 기여할 것이기 때문입니다.
PBI 파일 형식은 PC-BSD에서 사용자 문제의 가장 큰 원인입니다.
대부분의 PC-BSD 사용자는 독립/제한된 응용 프로그램 범위의 개념을 이해하지 못하는 이전 Linux 사용자입니다. 따라서 응용 프로그램 "A"가 응용 프로그램 "B"를 찾거나 시작할 수 없는 경우("A"가 실행 중이기 때문에) 제한된 컨테이너는 애플리케이션/시스템 오류를 가정합니다. 동시에 모든 다양한 Linux 기반 응용 프로그램이 시스템과의 통합을 향해 꾸준히 이동하고 있으므로(독립 실행형 응용 프로그램의 개념에서 벗어나) 점점 더 많은 응용 프로그램이 제한된 환경에서 실행될 수 없습니다. 우리가 PBI에서 pkg로 전환하기로 결정했을 때 FreeBSD에는 제한된 PBI 컨테이너에서 성공적으로 패키징/실행할 수 있는 응용 프로그램이 약 200개밖에 없었습니다. 반면 표준으로 전환하면패키지시스템 우리는 FreeBSD에 있는 23,000개 이상의 모든 패키지에 즉시 접근할 수 있습니다. 이것은 또한 개발자 오버헤드를 줄여줍니다. 두 명의 PC-BSD 개발자가 모든 것을 별도의 버전으로 유지하도록 하는 대신 전체 FreeBSD 커뮤니티가 응용 프로그램을 테스트/수정하게 되기 때문입니다.
기술적 문제
일반 컨테이너 시스템과 이에 따른 제한/제약 외에도 전체 파일 형식을 포기하게 만든 몇 가지 기술적인 버그가 있습니다.
로딩 시간
PBI를 시작하는 데는 약 30~45초가 걸리고, pkg에는 약 2초가 걸립니다. 이는 주로 컨테이너를 초기화하고 컨테이너 내부에 라이브러리를 로드하기 때문입니다.
애플리케이션 컴파일
PBI는 일반 런타임 접두사와 다른 런타임 접두사를 사용하여 컴파일해야 합니다.~해야 한다지원됨) 그러나 애플리케이션 자체에는 애플리케이션이 실제로 제대로 구축/실행되지 못하게 하는 하드코딩된 경로/설정이 있는 경우가 많습니다. 이는 또한 애플리케이션을 빌드하는 데 문제가 있을 때 다른 빌드 설정을 사용하기 때문에 애플리케이션 개발자나 FreeBSD 포터로부터 어떠한 지원도 받을 수 없다는 것을 의미합니다.
개발자 유지 관리
앞서 언급했듯이 PBI 시스템은 유지 관리가 매우 집약적입니다. 애플리케이션을 빌드할 때(런타임 접두사 변경으로 인해) 빌드 시스템에서 이상한 결함이 계속 발생합니다.했다빌드할 때 실제로 실행되는지 확인하기 위해 개발자가 수동으로 로드/테스트해야 하며(내장 경로 문제 파악) 앱의 메타 정보도 업데이트/유지해야 합니다(우리는 이 추가 정보를 계속해서 유지합니다). 지금은 pkg 시스템에 대한 추가 정보 적용 범위로 취급합니다. 따라서 두 사람이 유지 관리해야 하는 작업이 많았을 뿐만 아니라 대부분의 Linux 응용 프로그램이 설계된 것처럼 기본 시스템 환경에 통합되지 않았기 때문에 응용 프로그램 자체가 거의 실행 불가능하게 되었습니다.
PBI 파일 형식이 PC-BSD에서 제거되었음에도 불구하고 우리는 여전히 응용 프로그램 분할에 전념하고 있습니다. 대신, 우리는 기존 FreeBSD 하위 시스템(예: Jail 프레임워크)을 사용하여 안정적이고 안전한 런타임 컨테이너를 보장하는 동시에 사용자가 설치한 "표준" 응용 프로그램이 다른 운영 체제에서와 마찬가지로 잘/안정적으로 실행되도록 하는 데 중점을 두었습니다.