오늘 제가 겪은 다음과 같은 상황을 고려하여 APT 패키지가 일반적으로 어떻게 관리되는지 이해하고 싶습니다.
내 Debian 컴퓨터에 MongoDB를 추가하려고 합니다. apt search mongodb
좋은 결과를 보여줍니다. 설치하기 전에 읽었습니다.MondoDB 문서그것은 다음과 같이 말합니다:
시스템에서 MongoDB Community Edition을 실행하려면 아래 단계를 따르십시오. 이 지침에서는 데비안에서 제공하는 비공식 mongodb 패키지가 아닌 공식 mongodb-org 패키지를 사용하고 기본 설정을 사용한다고 가정합니다.
이를 통해 나는 데비안에서 얻은 apt install
것을 이해하고 놀랐습니다.비공식애플리케이션 개발자가 작성합니다. 이는 "권장하지 않음"보다 더 나쁜 것 같습니다.
나는 데비안 APT 패키지 저장소가 이전 버전을 표시하는 경향이 있고 최신 최신 업데이트를 따라잡지 못한다는 것을 이해합니다. 이 문제를 해결하는 방법은 여러 가지가 있지만 지금은 이 말이 걱정됩니다.비공식. 이는 MongoDB(또는 다른 애플리케이션)와 관련된 APT 저장소의 패키지가 애플리케이션 개발자에 의해 공식적으로 승인되지 않았음을 의미합니까? 아니면 개발자가 공식적으로 출시했지만 "최신 버전이 아니기 때문에 기피"하는 걸까요? 아니면 누군가(어떤 단체?)가 공식 설치 패키지를 복사하여 APT에 붙여넣었나요?
나는 MongoDB의 특정 사례를 이해하려는 것이 아닙니다. 대신 애플리케이션과 APT의 전반적인 "정치"를 이해하고 싶습니다. 어떻게 작동하며 어떻게 작동해야 하나요?
이것이 멍청한 질문이라면 죄송하지만 온라인에서 좋은 설명을 찾을 수 없습니다. 모든 링크나 참고 자료를 주시면 감사하겠습니다.
답변1
모든 배포판(Debian뿐만 아니라)의 패키지는 일반적으로 응용 프로그램 개발자가 아니라 배포 커뮤니티 구성원(종종 패키저 또는 패키저라고 함)에 의해 패키징됩니다.패키지 관리자. 때로는 응용 프로그램 개발자가 특정 배포판의 패키저가 될 수도 있지만 이는 규칙이 아닙니다. 개발자는 절대 모든 배포판에서 자신의 응용 프로그램을 유지 관리할 수 없습니다(예를 들어 저는 소프트웨어를 Fedora에서 유지 관리하지만 다른 사람이 패키징한 Debian에서는 유지 관리하지 않습니다).
"승인됨" 및 "공식" 또는 "비공식"에 관한 경우. 여기서는 무료 소프트웨어에 대해 이야기하고 있습니다. 라이센스를 통해 소프트웨어를 배포할 수 있으므로 배포용 소프트웨어를 패키징하는 데 누구의 승인도 필요하지 않습니다. 개발자는 자신의 소프트웨어가 패키징되고 제공되는 방식에 동의하지 않을 수 있지만 그것이 그들이 할 수 있는 전부입니다.
이 패키지가 (비)공식적인 이유가 무엇인지 잘 모르겠습니다. 모든 패키지는 제3자가 제작했기 때문에 이론적으로 비공식적이라고 생각합니다. 아마도 (비)공식에 대한 정의에 따라 달라질 것입니다.
패키저와 개발자 사이에 긴장을 유발할 수 있는 한 가지는 릴리스 주기입니다. Distros(특히 Debian Stable 또는 RHEL/CentOS와 같은 "안정적인" 배포판)에는 자체 릴리스 주기와 소프트웨어 및 API에 대한 약속이 있습니다.안정화이는 일반적으로 다음과 다릅니다.상류릴리스 주기. 이것이 릴리스에서 일반적으로 일부 버그 수정과 함께 백포트된 이전 버전을 보는 이유입니다. 때때로 업스트림 개발자는 수정되었지만 백포트되지 않은 버그 보고서를 받기 때문에 이를 좋아하지 않습니다. 때때로 패키저가 컴파일 타임 옵션과 소프트웨어의 (기본) 기능을 변경하는 기타 사항에 대해 스스로 결정하는 것도 짜증나는 일입니다. 따라서 개발자는 "배포 패키지 대신 '공식' 패키지를 사용하십시오"라고 말한 다음 자신에게 가장 적합한 것이 무엇인지 결정하는 것은 사용자의 몫입니다.
답변2
주요 질문은 "공식적으로"입니다.WHO? 어떤 것이 "공식적인" 것인지 아닌지는 귀하가 요청하는 "사무실"에 따라 크게 달라집니다!
MongoDB 개발자에 따르면 MongoDB 개발자가 배포하는 패키지는 "공식" 패키지입니다. 데비안 개발자에 따르면 데비안 개발자가 배포하는 패키지는 "공식" 패키지입니다.
어떤 면에서는 어느 쪽도 다른 쪽보다 더 "공식적"이지 않습니다.글로벌느끼다.
배포 패키지가 공급업체 패키지와 다른 데에는 여러 가지 이유가 있습니다.
- 공급업체 패키지는 이 배포판에서 지원하는 모든 아키텍처를 지원하지 않습니다. 예를 들어 MongoDB는 AMD64의 Debian용 패키지만 제공합니다. 하지만 데비안은 AMD64뿐만 아니라 armel, armhf, arm64, x86, mipsel, mips64el, ppc64el 및 s390x도 지원합니다. 따라서 이는 RaspberryPi(ARM64)에서 Debian을 사용하는 경우 MongoDB의 패키지가 없음을 의미합니다.
- 공급업체 패키지는 최신 릴리스를 지원하지 않습니다. Debian의 최신 버전은 Debian 11이지만 MongoDB는 Debian 9 및 10용 패키지만 제공합니다.
- 배포는 지원되지만 공급업체 패키지는 지원되지 않습니다. 예를 들어 Debian 버전은 일반적으로 다음 버전이 출시된 후 1년(보통 약 3년) 동안 Debian 보안 팀에서 지원됩니다. 그 후 "Debian LTS"라고 불리는 데비안 커뮤니티 내의 자원봉사자 팀이 최초 릴리스 이후 최대 5년 동안 유지 관리를 맡았습니다. 뒤쪽에저것, 원래 릴리스 이후 최대 7년 동안 지원을 제공하는 "Debian ELTS"라는 타사 상용 프로젝트가 있습니다. ~ 후에저것, 원한다면 추가 지원을 위해 데비안 컨설턴트를 고용할 수 있습니다.
예를 들어 이는 Debian 8이 여전히 ELTS를 지원하지만 MongoDB는 해당 패키지를 제공하지 않음을 의미합니다. - Distro 개발자는 자신이 출시하는 모든 패키지가 배포 수명 주기 전반에 걸쳐 출시하는 다른 모든 패키지와 함께 작동하고, 출시하는 모든 버그 수정 사항이 이전 버전과 호환된다는 점 등을 보장합니다. 일반적으로 공급업체는 자체 패키지와 관련하여 동일한 보증을 하지 않습니다. 예를 들어, MongoDB 패키지를 사용하고 업데이트로 인해 임의의 다른 패키지가 중단되면 데비안의 지원을 받을 수 없으며(패키지를 사용하지 않기 때문에) MongoDB 개발자는 아마도 그 임의의 패키지에 신경 쓰지 않을 것입니다. 다른 패키지로도 버그 수정을 제공하기에 충분합니다. (MongoDB 개발자가 다음을 전문으로 한다는 뜻은 아닙니다.아니요조심해, 내 말은가능한개발자일부행상인가능한상관 안해. )
- 때로는 공급업체 패키지가 특정 배포용으로 소프트웨어를 패키징하는 방법에 대한 일부 지침을 위반하는 경우가 있으므로 배포판에서 자체 패키지를 제공해야 합니다. 예를 들어, 일부 배포판에는 어떤 유형의 파일을 어떤 디렉토리에 저장해야 하는지, 어떤 디렉토리는 읽기 전용이어야 하는지 등에 대한 엄격한 규칙이 있습니다.
이제, 이것에서 밝혀졌습니다특별한사례,데비안은 실제로 자체 패키지 제공을 중단했습니다.왜냐하면MongoDB가 다른 라이선스로 변경됩니다.. 이 패키지의 최신 버전 mongodb
은 Debian 9에 있습니다. Debian 자체는 개발 중인 Debian 10, Debian 11 또는 Debian 12에서 더 이상 MongoDB용 패키지를 제공하지 않습니다. 그러나 Debian 9의 패키지는 AMD64, ARM64, x86 및 PowerPC 64비트 리틀 엔디안에서 사용할 수 있는 반면 MongoDB 개발자는 Debian 9 및 10에서 사용할 수 있는 패키지를 제공하지만 AMD64에서만 사용할 수 있습니다.
일반적으로 말하면배포자가 자체 소프트웨어 패키지를 제공하는 주된 이유는 배포자가 소프트웨어 공급업체와 서로 다른 우려와 제약을 갖고 있기 때문에 소프트웨어 공급업체가 제공하는 소프트웨어 패키지는 일반적으로 이러한 우려와 제약을 충족할 수 없기 때문입니다.
대부분의 배포 패키지는 무보수 자원봉사자에 의해 만들어지며 대부분의 배포 패키지는좋다더 많은 패키지를 사용할 수 있지만 인력이 부족합니다. 만드는 방법이 있었다면할 수 있다소프트웨어 공급업체로부터 수정되지 않은 패키지를 받아 배포판에 넣으면 됩니다.회의에너지를 다른 곳에 집중하는 대신 이렇게 하십시오.
답변3
Distro 관리자는 업스트림에서 인식하지 못할 수 있는 자체 패치 세트를 적용할 수 있습니다. 이로 인해 이와 같은 상황이 발생할 수 있습니다.
배포판에는 제공하는 소프트웨어 버전과 관련된 특정 정책이 있을 수도 있으며, 이는 원래 작성자의 아이디어와 일치하지 않을 수 있습니다.
데비안에는 관련된 이벤트가 많이 있었습니다:
- https://www.theregister.com/2021/12/10/debian_firefox_issues/
- https://en.wikipedia.org/wiki/Mozilla_software_rebranded_by_Debian
- https://www.jwz.org/blog/2016/04/i-would-like-debian-to-stop-shipping-xscreensaver/
오픈 소스를 더 잘 이해하면 그 아름다움이 멈추지 않습니다.
데비안 APT 패키지는 애플리케이션 개발자가 공식적으로 지원하거나 승인하지 않습니까?
경험상 이 질문에 대한 대답은 "아니오"이며 이는 데비안뿐만 아니라 다른 배포판에도 적용됩니다.
예를 들어 다음을 확인하세요.https://bugzilla.kernel.org
배포판의 버그 추적 도구를 사용하십시오. 이 버그질라는 업스트림 Linux 커널에 대한 버그를 보고하는 데 사용됩니다.
답변4
이는 MongoDB(또는 다른 애플리케이션)와 관련된 APT 저장소의 패키지가 애플리케이션 개발자에 의해 공식적으로 승인되지 않았음을 의미합니까?
물론. "자유 소프트웨어"(GPL 의미)는 누구나 귀하의 소스 코드를 가져와 수정한 다음 귀하의 승인이나 통보 없이도 재배포할 수 있음을 의미합니다.
거의 모든 오픈 소스 프로젝트의 개발자는 사용자에게 버그를 보고하기 전에 사용 가능한 최신 버전을 사용해 보도록 요청합니다. 이러한 의미에서 모든 타사 패키지는 비공식적입니다. 작동하면 도움이 되고, 그렇지 않으면 개발자가 아닌 패키지 관리자에게 이를 보고해야 합니다.