Dlaczego nie ma naprawdę zunifikowanego menedżera pakietów dla Linuksa?

31

Dlaczego nie jest jednolity menedżer pakietów, który działa jako interfejs pomiędzy użytkownikiem końcowym a bazowego menedżera pakietów niskiego poziomu ( apt, yast, pacman, etc.)?

Czy jest to trudne, a zatem niepraktyczne, czy też istnieje prawdziwa przeszkoda uniemożliwiająca wykonanie?

vonPetrushev
źródło
14
Domyślam się, że otrzymamy ujednoliconą teorię pola na długo przed tym, zanim otrzymamy ujednoliconego menedżera pakietów ...
26
Problem w skrócie
Shadur
2
Z tego samego powodu, dla którego nie chcemy jednej dystrybucji - podoba mi się sposób, w jaki robi to moja dystrybucja. Jeśli nie, możesz użyć innej lub napisać własną. Zanim się zorientujesz, masz tyle menedżerów pakietów, co programistów.
new123456
2
nie masz na myśli menedżerów pakietów niskiego poziomu rpm, dep, source? Te, które wymieniłeś, to same nakładki.
frogstarr78

Odpowiedzi:

35

Przede wszystkim jest. Problemem nie jest to, że nie ma ujednoliconego menedżera pakietów, problem polega na tym, że jest ich dziesięć - poważnie.

Weźmy mój ulubiony: poldek. Jest to interfejs użytkownika do zarządzania pakietami, który może działać na kilku różnych dystrybucjach i zarządzać jednym rpmlub kilkoma debpakietami. Poldek nie robi rzeczy, które robi RPM (pozostawia to RPM) i po prostu wysyła odpowiednie polecenia bez konieczności rozgryzania całego bałaganu przez użytkownika.

Ale problemy się nie kończą. Każdy ma inne wyobrażenie o tym, jak powinien wyglądać interfejs użytkownika, jak powinien on działać i jakie opcje powinien ujawnić. Więc inni napisali swoje. W rzeczywistości wielu menedżerów frontonu pakietu, z których ludzie korzystają obecnie we wspólnych dystrybucjach, jest w stanie obsłużyć więcej niż jeden backend.

Ostatecznie jednak problemem (lub korzyścią) jest to, że ludzie lubią rzeczy, które funkcjonują dokładnie tak, jak chcą, a nie w jakiś meta-sposób, który stara się zadowolić wszystkich tylko po to, aby naprawdę nie uszczęśliwić nikogo. Dlatego przede wszystkim mamy wiele destylacji gazillionowych. To jest powód, dla którego mamy tak wiele różnych środowisk pulpitu i menedżerów okien (i fakt, że są to w rzeczywistości różne rodzaje rzeczy).

Nadal istnieją znakomite propozycje sposobów pisania uniwersalnych pakietów lub posiadania menedżera, który je rozumie, lub posiadania interfejsu API do konwersji jednego na drugi ... ale ostatecznie Unix jest najlepszy, jeśli jest używany zgodnie z jego filozofią ... każde narzędzie robi jedną rzecz i robi to dobrze .

Za każdym razem, gdy masz narzędzie, które próbuje zrobić więcej niż jedną rzecz, w końcu nie jest tak dobre w jednym z nich. Na przykład, poldekjest do bani w obsłudze zależności pakietów deb.

Caleb
źródło
1
Prawie to, co chciałem powiedzieć. I szczerze mówiąc, dopóki rzeczy współdziałają przyzwoicie pod maską (powiedzmy, przestrzegając standardów LSB), tak naprawdę nie widzę problemu.
Shadur
10
++ dla „UNIX jest najlepszy, gdy ... każde narzędzie robi jedną rzecz i robi to dobrze”. Czasami myślę, że zbyt wiele narzędzi jest daleko od tej ścieżki ...
ktf
Umieść link na poldek.pld-linux.org --- może być przydatny do zbadania czegoś, co miało ostatnią aktualizację w 2005 roku.
sorin
10

W skrócie: ponieważ każda dystrybucja stosuje inne podejście do zarządzania pakietami. Po prostu nie są kompatybilne. Strategia zarządzania, która najlepiej działa na Ubuntu, nie będzie miała większego sensu w Arch. Itp. „Uniwersalny” (niezależny od dystrybucji) menedżer pakietów byłby tylko dodatkową warstwą interfejsu użytkownika, który nigdy nie działałby tak dobrze, jak menedżer poszczególnych dystrybucji.

Tak więc, używając własnych słów, jest to trudne i dlatego niepraktyczne - również dlatego, że prawie nikt nie skorzystałby na tym.

rozcietrzewiacz
źródło
Rozwiązania do zarządzania pakietami można przenosić na inne systemy. widziałem portage na Debianie. Jednak nazwa gry polega na znalezieniu czegoś, co działa dla użytkownika, np. nie ma sensu ustawiać portage jako domyślnego na Ubuntu. Wygląda na to, że do tej pory dobrze sobie radzimy.
Silverfire,
8

Głównie z powodów historycznych. Mniej więcej w tym samym czasie powstało kilka systemów zarządzania pakietami - szczególnie .rpm i .deb. Każdy ma swoich zwolenników i każdy jest na tyle dobry, że żaden menedżer pojedynczych pakietów nie ma istotnych zalet. Dystrybutorzy z pewnością nie zobaczą sensu w gruntownej przebudowie swojego systemu, aby wdrożyć innego menedżera pakietów.

Wymagałoby to również przebudowania każdego pakietu w systemie (10 000 w przypadku Debiana). Wymagałoby to również wdrożenia płynnego systemu migracji, aby użytkownicy systemu mogli przejść ze starego do nowego menedżera pakietów. Wysiłek związany z migracją byłby niewiarygodnie duży i wykładniczo większy w celu przetestowania migracji, więc prawie na pewno miałbyś wiele awarii. Spowodowałoby to wiele zirytowanych graczy.

Każda dystrybucja utrzymuje własny zestaw zależności w oparciu o to, co zostało zbudowane dla tego wydania. Uniwersalne repozytorium pakietów będzie zbyt trudne do koordynacji między dystrybucjami, ponieważ prawie na pewno pojawią się konflikty zależności. Dlatego faktyczna korzyść z ujednoliconego systemu zarządzania pakietami (pakiety uniwersalne) będzie w praktyce niemożliwa do zrealizowania.

Wreszcie, kto może wybrać uniwersalnego menedżera standardowych pakietów? Komiks XKCD, do którego odwołuje się komentarz w PO, podsumowuje zwykły tryb awarii w tego rodzaju ćwiczeniach. Standaryzacja tego rodzaju rzeczy byłaby bardzo polityczna i prawdopodobnie doprowadziłaby do czegoś, co nie nadaje się do użytku lub jest tak głęboko wadliwe, że powoduje kolejną rundę ręcznego uzgadniania standardów - jeśli strony w ogóle mogą dojść do porozumienia.

Zasadniczo sprowadza się to do: zbyt politycznego, zbyt twardego, zbyt ryzykownego i nie można osiągnąć z tego żadnej korzyści.

ConcernedOfTunbridgeWells
źródło
8

Co opisałeś

który działa jako interfejs między użytkownikiem końcowym a podstawowym menedżerem pakietów o niskim poziomie dźwigni

Brzmi trochę jak PackageKit do mnie, że to ,

PackageKit to system zaprojektowany w celu ułatwienia instalacji i aktualizacji oprogramowania na twoim komputerze. Podstawowym celem projektu jest ujednolicenie wszystkich narzędzi graficznych oprogramowania wykorzystywanych w różnych dystrybucjach i wykorzystanie najnowszych technologii, takich jak PolicyKit, aby proces był mniej ssący.

Edycja: Zobacz tutaj listę obsługiwanych backendów. Edycja2: Usunięto niepotrzebną uwagę.

sr_
źródło
6

Po pierwsze, zrozum, że „Linux” nie jest systemem operacyjnym. To jest jądro. Menedżer pakietów to koncepcja na poziomie systemu operacyjnego, a nie jądro. Dlatego prośba o zunifikowanego menedżera pakietów dla Linuksa nie jest tak naprawdę sensowna.

Jeśli jednak pytasz, dlaczego różne systemy operacyjne korzystające z jądra Linux nie mają zgodnych menedżerów pakietów, możesz również zapytać, dlaczego systemy Windows i Mac nie mają zgodnych menedżerów pakietów. Lub dowolne dwa pozostałe systemy operacyjne.

Różne systemy operacyjne zaspokajają potrzeby różnych użytkowników, a menedżer pakietów jest jego częścią. Dlaczego wszystkie dystrybucje Linuksa nie mają tego samego menedżera okien? A może masz to samo fabrycznie zainstalowane oprogramowanie?

Odpowiedź: Różne pociągnięcia dla różnych ludzi.

jwd
źródło
1
+1 dla „Linux” nie jest systemem operacyjnym
Silverfire,