Linux 용으로 진정으로 통합 된 패키지 관리자가없는 이유는 무엇입니까? 기본 로우 레벨 패키지

이유는 최종 사용자 및 기본 로우 레벨 패키지 매니저 (사이의 인터페이스로서 기능하는 통합 패키지 관리자가없는 apt, yast, pacman등)?

하기가 어렵고 실용적이지 않습니까, 아니면 불가능한 진짜 장애물이 있습니까?



답변

우선, 있습니다. 문제는 통합 패키지 관리자가 없다는 것이 아니라 10 개가 심각하다는 것입니다.

내가 좋아하는 것을 보자 : poldek. 여러 다른 배포판에서 실행하고 하나 rpm이상의 deb패키지를 관리 할 수있는 패키지 관리의 사용자 프런트 엔드입니다 . Poldek은 rpm이 수행하는 작업을 수행하지 않으며 (rpm으로 유지) 사용자가 모든 혼란을 파악하지 않고도 올바른 명령을 보냅니다.

그러나 문제는 거기서 멈추지 않습니다. 사용자 프런트 엔드의 모양과 작동 방식 및 노출 옵션에 대해 모두 다른 생각을 가지고 있습니다. 그래서 다른 사람들이 직접 작성했습니다. 오늘날 일반 배포판에서 사람들이 사용하는 많은 패키지 프런트 엔드 관리자는 둘 이상의 백엔드를 처리 할 수 ​​있습니다.

그러나 결국 문제 (또는 장점)는 사람들을 진정으로 행복하게하지 못하도록 모든 사람을 만족시키려는 메타 스타일이 아니라 원하는 방식으로 정확하게 기능하는 것 같은 사람들입니다. 이것이 우리가 처음에는 빈곤 한 가젤 리온 배포판을 가지고있는 이유입니다. 우리가 너무 많은 데스크탑 환경과 창 관리자를 가지고있는 이유입니다 (실제로 다른 종류의 것들입니다).

유니버설 패키지를 작성하거나 패키지를 모두 이해하거나 하나를 다른 것으로 변환하는 API를 갖는 관리자가있는 방법에 대한 탁월한 제안이 여전히 있습니다 … 그러나 결국 Unix는 철학에 따라 사용될 때 가장 좋습니다 … 각 도구 한 가지 일을 잘 수행 합니다.

둘 이상의 작업을 시도하는 도구가 있으면 그중 하나가 좋지 않습니다. 예를 들어, poldekdeb 패키지 종속성을 처리합니다.


답변

한마디로 : 배포마다 패키지 관리에 서로 다른 접근 방식을 사용하기 때문입니다. 그들은 단순히 호환되지 않습니다. Ubuntu에 가장 적합한 관리 전략은 Arch 등에서는 거의 의미가 없습니다. “유니버설”(배포 독립적) 패키지 관리자는 추가 사용자 인터페이스 계층 일 뿐이며, 각 배포의 특정 관리자만큼 효과적이지 않습니다.

따라서 자신의 말을 사용 하면 수행 하기가 어렵고 실용적이지 않습니다 .


답변

주로 역사적 이유. 같은 시간에 여러 패키지 관리 시스템 (특히 .rpm 및 .deb)이 구축되었습니다. 각 패키지에는 준수 기능이 있으며 단일 패키지 관리자가 강력한 이점을 갖지 못할 정도로 충분합니다. 배포자는 확실히 다른 패키지 관리자를 구현하기 위해 시스템을 처음부터 다시 빌드 할 시점을 알지 못합니다.

또한 시스템 내의 각 패키지 (데비안의 경우 10,000 개)를 다시 빌드해야합니다. 또한 시스템 사용자가 이전에서 새로운 패키지 관리자로 이동할 수 있도록 원활한 마이그레이션 시스템을 구현해야합니다. 마이그레이션을 테스트하는 데 마이그레이션 노력이 엄청나게 커지고 기하 급수적으로 커질 것이므로 거의 확실하게 많은 손상이 발생합니다. 이것은 많은 화나게 펀더를 생성합니다.

각 배포판은 해당 릴리스 용으로 구축 된 내용에 따라 고유 한 종속성을 유지 관리합니다. 종속성 충돌이 거의 확실하기 때문에 범용 패키지 저장소는 배포판 사이에서 조정하기가 너무 어려울 것입니다. 따라서 통합 패키지 관리 시스템 (유니버설 패키지)의 실제 이점은 실제로는 실현할 수 없습니다.

마지막으로 누가 범용 표준 패키지 관리자를 선택합니까? OP에 대한 의견에서 언급 된 XKCD 만화는 이러한 유형의 연습에서 일반적인 실패 모드를 요약합니다. 이런 종류의 물건을 표준화하는 것은 매우 정치적이며 쓸모 없거나 깊이 결함이있어서 표준에 관한 또 다른 라운드를 생성 할 수 있습니다-당사자가 전혀 동의 할 수 있다면.

따라서 기본적으로 너무 정치적이고, 어렵고, 위험하며, 그렇게함으로써 실현할 수있는 혜택이 없습니다.


답변

당신이 묘사 한 것,

최종 사용자와 기본 낮은 수준의 패키지 관리자 간의 인터페이스 역할을합니다.

나에게 패키지 키트 (PackageKit), 같은 작은 소리 입니다 ,

PackageKit은 컴퓨터에 소프트웨어를 쉽게 설치하고 업데이트 할 수 있도록 설계된 시스템입니다. 기본 디자인 목표는 다른 배포판에 사용 된 모든 소프트웨어 그래픽 도구를 통합하고 PolicyKit과 같은 최신 기술을 사용하여 프로세스를 덜 능률적으로 만드는 것입니다.

편집 : 지원되는 백엔드 목록은 여기를 참조하십시오.
Edit2 : 쓸모없는 말을 제거했습니다.


답변

먼저 “Linux”는 운영 체제가 아님을 이해하십시오. 커널입니다. 패키지 관리자는 커널 수준 개념이 아닌 OS 수준 개념입니다. 따라서 Linux 용 통합 패키지 관리자를 요청하는 것은 실제로 의미가 없습니다.

그러나 Linux 커널을 사용하는 다양한 운영 체제에 호환 가능한 패키지 관리자가없는 이유를 묻는다면 Windows 및 Mac에 호환 가능한 패키지 관리자가없는 이유를 물을 수도 있습니다. 또는 다른 두 운영 체제.

다른 OS는 다른 사용자의 요구에 부응하며 패키지 관리자가 그 일부입니다. 모든 Linux 배포판에 동일한 창 관리자가없는 이유는 무엇입니까? 아니면 동일한 사전 설치된 소프트웨어가 모두 있습니까?

답 : 사람들마다 다른 뇌졸중.