Чому менеджери пакунків не мають встановлення та реєстрів для користувачів?


23

Наскільки мені відомо, і Apt, і DNF / Yum, дві найпопулярніші схеми управління пакунками для дистрибутивів Linux, підтримують лише загальносистемну установку пакетів: файли, що належать root, входять бінарні файли, входять (/usr)?/s?binнастройки /etcтощо.

Однак у системах, в яких є кілька окремих користувачів, які не мають root-привілеїв, дуже часто - якщо не завжди - трапляється, що користувач хоче встановити деякі додатки чи утиліти, доступні для цього розповсюдження; і він / він чудово налаштовує персональну установку і не є загальною для багатьох / всіх користувачів.

Тепер це не здається надуманою або навіть неймовірно складною ідеєю, щоб пакети були адаптованими під час встановлення з іншим кореневим каталогом або набором кореневих каталогів, щоб користувачі могли це зробити. Не є великою проблемою також управління конкретним користувачем реєстром встановлених пакетів (незалежно від того, має окремий користувач власний БД пакета).

То чому причина, що ця функціональність не була додана до цих загальних систем / систем управління пакетами?

Примітка. Це інформативне запитання, тобто я запитую про те, що люди знають про минуле , а не що люди думають про цю особливість.


3
Якби це було надано, це б врятувало значну частину мого часу, збираючи програмне забезпечення з джерела на комп’ютерах, які не мають привілею суперпользователя. Я нетерплячий знати відповідь.
Вейджун Чжоу

1
Напевно, мої знання з цього питання не є найбільшими, але це могло бути зроблено для того, щоб користувачі не заповнювали жорсткі диски залежно від програмного забезпечення, яке вони особисто встановили. Якщо apt не запускається як root, він не може оновлювати системні бібліотеки, тому користувач тепер має більш нову версію, ніж система. Повторіть для кожного користувача і старші, менші жорсткі диски заповнювалися б досить швидко.
Теги

1
@Thegs: Я сумніваюся, що це було врахуванням. Мало хто з програмних проектів уникає значних особливостей через такі міркування, як "якби люди це зробили, вони б заповнили свій диск". Якби це був якийсь ризик для безпеки, можливо. Також на багатокористувацьких системах існують квоти; і мало хто коли-небудь би скористався цим. Плюс це все міркування ...
einpoklum - відновіть Моніку

2
Коротше кажучи: це не завдання менеджера системного пакету возитися з даними користувача. ~ / bin, ~ / lib тощо, з POV системи, "дані користувача".
cas

1
Я бачив декілька пакетів, що розповсюджуються через pip, npmі gopkg- частково, тому що вони незалежні від дистрибуції та частково тому, що вони, як правило, дозволяють встановити конкретний користувач.
Боб

Відповіді:


15

Хоча звичайні менеджери пакунків не займаються цим випадком використання, є кілька проектів:

Я найкраще здогадуюсь, чому традиційні менеджери пакунків не звертаються до цього випадку використання, це те, що це значно ускладнює процес створення та встановлення пакунків, оскільки технічним обслуговувачам пакунків потрібно бути дуже обережними, щоб їх пакети правильно підтримували динамічний каталог встановлення. Насправді, багато поширених форматів пакетів, таких як RPM, підтримують динамічний каталог інсталяції, але навряд чи будь-який обслуговуючий персонал скористається цією функцією при складанні пакетів через великі додаткові накладні витрати.


Отже, RPM підтримує це, але, скажімо, dpkg ні?
einpoklum - відновити Моніку

1
Я не знаю про dpkg, щоб бути досить чесним, оскільки я ніколи не створював .deb пакунки. Я думаю, що dpkg підтримує динамічні каталоги встановлення, але я сумніваюся, що багато хто підтримує пакет .deb.
jayhendren

Інша річ ... чи зазвичай вони будуються з нуля, завантажувальної програми чи продовжують покладатися на те, що встановлено на загальносистемному рівні?
einpoklum - відновити Моніку

1
Загальносистемне управління пакетами передбачає, що нічого не доступне, якщо він не встановив його, тому пошук залежностей з точки зору файлів еквівалентний пошуку залежностей з точки зору встановлених пакетів, що містять ці файли. Але з вторинним менеджером пакунків є загальносистемні пакунки / файли та специфічні для користувача пакети / файли. Чи зазвичай менеджери пакунків покладаються лише на те, що вони завантажили та / або створили?
einpoklum - відновити Моніку

2
Залежить. Ті, які збираються з джерела, як Homebrew та Emerge, як правило, просто намагаються створити пакет без великого відстеження залежності. Інші зв'язують залежності з пакетами (саме так працює більшість інструментів стилю App Store, а також Flatpak і Snaps). Такі, як Zero Install, встановлюють усі залежності як індивідуальні пакети на рівні користувача.
jayhendren

6

То чому причина, що ця функціональність не була додана до цих загальних систем / систем управління пакетами?

Тому що це збільшує складність управління системами понад те, що необхідно.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.