Dlaczego menedżerowie pakietów nie mają instalacji i rejestrów dla poszczególnych użytkowników?

23

Zarówno Apt, jak i DNF / Yum, dwa najpopularniejsze schematy zarządzania pakietami dla dystrybucji Linuksa, o ile mi wiadomo, obsługują tylko systemową instalację pakietów: pliki należące do roota, pliki binarne wchodzą (/usr)?/s?bin, ustawienia wchodzą /etci tak dalej.

Jednak w systemach, w których jest wielu indywidualnych użytkowników, którzy nie mają uprawnień rootowania, bardzo często - jeśli nie zawsze - zdarza się, że użytkownik chce zainstalować niektóre aplikacje lub narzędzia dostępne dla tej dystrybucji; i jest w porządku z instalacją, która jest osobista i nie jest powszechna dla wielu / wszystkich użytkowników.

Teraz nie wydaje się zbyt skomplikowanym, a nawet niewiarygodnie skomplikowanym pomysłem, aby pakiety można było dostosować w czasie instalacji za pomocą innego katalogu głównego lub zestawu katalogów głównych, aby użytkownicy mogli to zrobić. Nie jest też problemem zarządzanie rejestrem zainstalowanych pakietów specyficznych dla użytkownika (niezależnie od tego, czy dany użytkownik ma własną bazę danych pakietu).

Jaki jest zatem powód, dla którego ta funkcjonalność nie została dodana do tych popularnych systemów / schematów zarządzania pakietami?

Uwaga: jest to pytanie informacyjne, tzn. Pytam o to, co ludzie wiedzą o przeszłości , a nie o tym , co myślą o tej funkcji.

einpoklum - przywróć Monikę
źródło
3
Gdyby został dostarczony, zaoszczędziłby wiele mojego czasu na kompilowaniu oprogramowania ze źródła na komputerach, do których nie mam uprawnień administratora. Nie mogę się doczekać odpowiedzi.
Weijun Zhou
1
Wprawdzie moja wiedza na ten temat nie jest najlepsza, ale można było to zrobić, aby użytkownicy nie zapełniali dysków twardych zależnościami oprogramowania, które osobiście zainstalowali. Jeśli apt nie działa jako root, nie może aktualizować bibliotek systemowych, więc użytkownik ma teraz nowszą wersję niż system. Powtórz to dla każdego użytkownika i starszych, mniejszych dysków twardych zapełniłby się dość szybko.
Thegs
1
@Thegs: Wątpię, żeby to była uwaga. Niewiele projektów oprogramowania unika znaczących funkcji z powodu takich rozważań, jak „gdyby ludzie to zrobili, zapełniliby swój dysk”. Gdyby to było jakieś ryzyko bezpieczeństwa. Ponadto w systemach z wieloma użytkownikami obowiązywałyby kwoty; i tak niewiele osób i tak by to wykorzystało. Plus to wszystko spekulacje ...
einpoklum - przywróć Monikę
2
Krótko mówiąc: zadaniem menedżera pakietów systemowych nie jest bałaganowanie danych użytkownika. ~ / bin, ~ / lib itp. są z POV systemu „danymi użytkownika”.
cas
1
Widziałem kilka pakietów dystrybuowanych przez pip, npmi gopkg- częściowo dlatego, że są niezależne od dystrybucji, a częściowo dlatego, że ogólnie pozwalają na instalację specyficzną dla użytkownika.
Bob

Odpowiedzi:

15

Podczas gdy zwykli menedżerowie pakietów nie zajmują się tym przypadkiem użycia, istnieje kilka projektów, które:

Moje najlepsze przypuszczenie, dlaczego tradycyjni menedżerowie pakietów nie zajmują się tym przypadkiem użycia, jest to, że znacznie komplikuje to proces budowania i instalacji pakietów, ponieważ opiekunowie pakietów będą musieli bardzo uważać, aby ich pakiety poprawnie obsługiwały dynamiczny katalog instalacyjny. W rzeczywistości wiele popularnych formatów pakietów, takich jak RPM, obsługuje dynamiczny katalog instalacyjny, ale prawie żaden opiekun nie korzysta z tej funkcji podczas budowania pakietów z powodu wysokiego dodatkowego obciążenia.

jayhendren
źródło
RPM obsługuje to, ale powiedzmy, że dpkg nie?
einpoklum
1
Szczerze mówiąc, nie wiem o dpkg, ponieważ nigdy nie budowałem pakietów .deb. Domyślam się, że dpkg obsługuje katalogi instalacji dynamicznej, ale wątpię, czy robi to wielu opiekunów pakietów .deb.
jayhendren
Kolejna rzecz ... czy te zwykle budują od zera, bootstrap, czy nadal polegają na tym, co jest zainstalowane na poziomie całego systemu?
einpoklum
1
Systemowe zarządzanie pakietami zakłada, że ​​nic nie jest dostępne, jeśli nie zostało zainstalowane, więc wyszukiwanie zależności pod względem plików jest równoznaczne z wyszukiwaniem zależności pod względem zainstalowanych pakietów zawierających te pliki. Ale z dodatkowym menedżerem pakietów istnieją systemowe pakiety / pliki i specyficzne dla użytkownika pakiety / pliki. Czy menedżerowie pakietów zwykle polegają tylko na tym, co pobrali i / lub zbudowali?
einpoklum
2
Zależy. Te, które kompilują się ze źródeł takich jak Homebrew i Emerge, zazwyczaj próbują zbudować pakiet bez dużej ilości śledzenia zależności. Inne łączą zależności z pakietami (tak działa większość narzędzi w stylu App Store, a także Flatpak i Snaps). Inne, takie jak Zero Install, instalują wszystkie zależności jako indywidualne pakiety na poziomie użytkownika.
jayhendren
6

Jaki jest zatem powód, dla którego ta funkcjonalność nie została dodana do tych popularnych systemów / schematów zarządzania pakietami?

Ponieważ zwiększa złożoność zarządzania systemami ponad to, co jest konieczne.

Elszar
źródło