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


31

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

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


14
내 생각 엔 통일 된 패키지 관리자를 얻기 훨씬 전에 통일 된 필드 이론을 얻게 될 것입니다 ...


2
똑같은 이유로 우리는 단일 배포를 원하지 않습니다-나는 내 배포판이하는 방식을 좋아합니다. 그렇지 않은 경우 다른 것을 사용하거나 직접 쓸 수 있습니다. 알기 전에 프로그래머만큼 많은 패키지 관리자가 있습니다.
새로운 123456

2
저수준 패키지 관리자가 rpm, dep, source를 의미하지 않습니까? 당신이 나열한 것은 그 자체가 프론트 엔드입니다.
frogstarr78

답변:


35

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

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

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

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

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

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


1
내가 말하려고하는 거의. 솔직히 말해서, LSB 표준을 준수하여 작업이 제대로 작동하지 않는 한 실제로 문제가 발생하지 않습니다.
Shadur

10
++ for "UNIX는 ... 각 도구가 한 가지 일을하고 잘 수행 할 때 가장 좋습니다". 때때로 나는 너무 많은 도구가 그 길을
벗어나고

poldek.pld-linux.org 에 링크를 두어 2005 년에 마지막으로 업데이트 된 것을 조사하는 데 유용 할 수 있습니다.
sorin

10

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

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


패키지 관리 솔루션은 다른 시스템으로 이식 가능합니다. 데비안에서 portage를 보았다. 그러나 게임의 이름은 예를 들어 사용자에게 적합한 것을 찾는 것입니다. 우분투에서 포티지를 기본값으로 만드는 것은별로 의미가 없습니다. 어쨌든 우리는 지금까지 꽤 잘하고있는 것 같습니다.
실버 파이어

8

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

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

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

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

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


8

당신이 묘사 한 것,

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

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

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

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


6

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

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

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

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


1
""Linux "+1은 운영 체제가 아닙니다.
Silverfire
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.