Warum haben Paketmanager keine Einzelbenutzerinstallationen und -registrierungen?

23

Sowohl Apt als auch DNF / Yum, meines Wissens die beiden beliebtesten Paketverwaltungsschemata für Linux-Distributionen, unterstützen nur die systemweite Installation von Paketen: Dateien im Besitz von root, Binärdateien (/usr)?/s?bin, Einstellungen /etcusw.

Auf Systemen, auf denen es mehrere Einzelbenutzer gibt, die keine Root-Rechte haben, kommt es jedoch sehr oft vor, dass ein Benutzer einige Apps oder Dienstprogramme installieren möchte, die für diese Distribution verfügbar sind. und es geht ihm gut mit einer Installation, die persönlich ist und nicht allen Benutzern gemeinsam ist.

Nun scheint es keine weit hergeholte oder sogar unglaublich komplizierte Idee zu sein, dass Pakete zur Installationszeit mit einem anderen Stammverzeichnis oder einer Reihe von Stammverzeichnissen anpassbar sind, sodass Benutzer dies tun können. Es ist auch kein großes Problem, eine benutzerspezifische Registrierung installierter Pakete zu verwalten (unabhängig davon, ob ein einzelner Benutzer über eine eigene Paket-DB verfügt oder nicht).

Was ist der Grund dafür, dass diese Funktionalität nicht zu diesen allgemeinen Paketverwaltungssystemen / -schemata hinzugefügt wurde?

Hinweis: Dies ist eine informative Frage, dh ich frage, was die Leute über die Vergangenheit wissen und nicht, was die Leute über diese Funktion denken .

einpoklum - Monica wieder einsetzen
quelle
3
Wenn es zur Verfügung gestellt worden wäre, hätte es mir viel Zeit gespart, Software von der Quelle auf Computern zu kompilieren, auf denen ich keine Superuser-Rechte habe. Ich bin gespannt auf die Antwort.
Weijun Zhou
1
Zwar ist mein Wissen darüber nicht das Beste, aber es hätte getan werden können, um zu verhindern, dass Benutzer Festplatten mit den Abhängigkeiten der von ihnen persönlich installierten Software füllen. Wenn apt nicht als root ausgeführt wird, können die Systembibliotheken nicht aktualisiert werden, sodass der Benutzer jetzt eine neuere Version als das System hat. Wiederholung für jeden Benutzer und ältere, kleinere Festplatten wären ziemlich schnell voll geworden.
Thegs
1
@Thegs: Ich bezweifle, dass dies die Überlegung war. Nur wenige Softwareprojekte vermeiden wichtige Funktionen aufgrund von Überlegungen wie "Wenn die Leute dies tun, füllen sie ihr Festplattenlaufwerk". Wenn es ein Sicherheitsrisiko wäre, vielleicht. Auf Mehrbenutzersystemen würde es auch Quoten geben. und nur wenige Leute würden das sowieso jemals benutzen. Plus das ist alles Spekulation ...
einpoklum - wieder Monica
2
Kurz gesagt: Es ist nicht die Aufgabe des Systempaket-Managers, mit Benutzerdaten zu experimentieren. ~ / bin, ~ / lib usw. sind vom POV des Systems "Benutzerdaten".
cas
1
Ich habe einige Pakete gesehen, die über verteilt wurden pip, npmund gopkg- teilweise, weil sie distrounabhängig sind und teilweise, weil sie im Allgemeinen eine benutzerspezifische Installation ermöglichen.
Bob

Antworten:

15

Während gängige Paketmanager diesen Anwendungsfall nicht behandeln, gibt es mehrere Projekte, die dies tun:

Ich vermute, dass herkömmliche Paketmanager diesen Anwendungsfall nicht berücksichtigen, da dies den Prozess der Paketerstellung und -installation erheblich verkompliziert, da Paketbetreuer sehr vorsichtig sein müssen, um sicherzustellen, dass ihre Pakete ein dynamisches Installationsverzeichnis korrekt unterstützen. Tatsächlich unterstützen viele gängige Paketformate wie RPM ein dynamisches Installationsverzeichnis, aber kaum ein Maintainer nutzt diese Funktion aufgrund des hohen zusätzlichen Overheads beim Erstellen von Paketen.

Jayhendren
quelle
RPM unterstützt dies also, aber dpkg beispielsweise nicht?
einpoklum - Monica
1
Ich weiß ehrlich gesagt nichts über dpkg, da ich noch nie .deb-Pakete erstellt habe. Ich schätze, dpkg unterstützt dynamische Installationsverzeichnisse, aber ich bezweifle, dass viele .deb-Paketbetreuer dies tun.
Jayhendren
Eine andere Sache ... werden diese normalerweise von Grund auf neu erstellt, gebootet oder verlassen sie sich weiterhin darauf, was auf der systemweiten Ebene installiert ist?
einpoklum - Monica
1
Die systemweite Paketverwaltung geht davon aus, dass nichts verfügbar ist, wenn es nicht installiert wurde. Das Suchen nach Abhängigkeiten in Bezug auf Dateien entspricht dem Suchen nach Abhängigkeiten in Bezug auf installierte Pakete, die diese Dateien enthalten. Bei einem sekundären Paketmanager gibt es jedoch die systemweiten Pakete / Dateien und die benutzerspezifischen Pakete / Dateien. Verlassen sich die Paketmanager normalerweise nur auf das, was sie heruntergeladen und / oder erstellt haben?
einpoklum - wieder Monica
2
Hängt davon ab. Diejenigen, die aus Quellen wie Homebrew und Emerge kompiliert werden, versuchen im Allgemeinen nur, das Paket ohne viel Abhängigkeitsverfolgung zu erstellen. Andere bündeln Abhängigkeiten mit den Paketen (so funktionieren die meisten Tools im App Store-Stil sowie Flatpak und Snaps). Andere wie Zero Install installieren alle Abhängigkeiten als einzelne Pakete auf Benutzerebene.
Jayhendren
6

Was ist der Grund dafür, dass diese Funktionalität nicht zu diesen allgemeinen Paketverwaltungssystemen / -schemata hinzugefügt wurde?

Weil es die Komplexität der Systemverwaltung über das Notwendige hinaus erhöht.

Elshar
quelle