Perché i gestori di pacchetti non hanno installazioni e registri per utente?


23

Sia Apt che DNF / Yum, i due schemi di gestione dei pacchetti più popolari per le distribuzioni Linux, a mia conoscenza, supportano solo l'installazione di pacchetti a livello di sistema: file di proprietà di root, binari in entrata (/usr)?/s?bin, impostazioni in entrata /etce così via.

Tuttavia, sui sistemi in cui vi sono più utenti individuali che non dispongono dei privilegi di root, molto spesso - se non sempre - accade che un utente desideri installare alcune app o utility disponibili per quella distribuzione; e sta bene con un'installazione che è personale e non comune a molti / tutti gli utenti.

Ora, non sembra un'idea inverosimile o addirittura incredibilmente complicata che i pacchetti siano adattabili, al momento dell'installazione, con una directory root o un set di directory root diversi, in modo che gli utenti possano farlo. Né è un grosso problema gestire un registro specifico dell'utente dei pacchetti installati (indipendentemente dal fatto che un singolo utente abbia o meno il proprio DB di pacchetto).

Quindi qual è il motivo per cui questa funzionalità non è stata aggiunta a quei sistemi / schemi comuni di gestione dei pacchetti?

Nota: questa è una domanda informativa, cioè sto chiedendo cosa sanno le persone del passato , non cosa pensano le persone di questa funzione.


3
Se fosse stato fornito, avrebbe risparmiato gran parte del mio tempo nella compilazione di software dalla fonte su computer di cui non ho il privilegio di superutente. Sono ansioso di conoscere la risposta.
Weijun Zhou,

1
Certo, la mia conoscenza di questo non è la migliore, ma avrebbe potuto essere fatto per impedire agli utenti di riempire i dischi rigidi con le dipendenze del software che hanno installato personalmente. Se apt non viene eseguito come root non può aggiornare le librerie di sistema, quindi l'utente ha ora una versione più recente rispetto al sistema. Ripetere l'operazione per tutti gli utenti e per i vecchi dischi rigidi più piccoli si sarebbe riempito abbastanza velocemente.
Thegs

1
@Thegs: dubito che questa sia stata la considerazione. Pochi progetti software evitano funzionalità significative a causa di considerazioni come "se le persone lo facessero riempirebbero il loro disco". Se fosse una sorta di rischio per la sicurezza, forse. Inoltre, sui sistemi multiutente, ci sarebbero quote; e poche persone lo userebbero comunque. Inoltre questa è tutta una speculazione ...
einpoklum - reintegrare Monica il

2
In breve: non è compito del gestore dei pacchetti di sistema pasticciare con i dati dell'utente. ~ / bin, ~ / lib, ecc., dal punto di vista del sistema, "dati utente".
Cas

1
Ho visto un paio di pacchetti distribuiti tramite pip, npme gopkg- in parte perché sono distro-indipendenti e in parte perché in genere consentono l'installazione utente specifico.
Bob,

Risposte:


15

Mentre i gestori di pacchetti comuni non affrontano questo caso d'uso, ci sono diversi progetti che lo fanno:

La mia migliore ipotesi sul perché i gestori di pacchetti tradizionali non affrontano questo caso d'uso è che complica notevolmente il processo di costruzione e installazione dei pacchetti, poiché i manutentori dei pacchetti dovranno prestare molta attenzione per garantire che i loro pacchetti supportino correttamente una directory di installazione dinamica. In effetti, molti formati di pacchetti comuni come RPM supportano una directory di installazione dinamica, ma quasi nessun manutentore sfrutta questa funzionalità durante la creazione di pacchetti a causa dell'elevato sovraccarico aggiuntivo.


Quindi, RPM lo supporta ma, diciamo, dpkg no?
Einpoklum - Ripristina Monica il

1
Non so di dpkg a dire il vero, dal momento che non ho mai creato pacchetti .deb. Immagino che dpkg supporti le directory di installazione dinamica, ma dubito che molti manutentori di pacchetti .deb lo facciano.
Jayhendren,

Un'altra cosa ... questi in genere si basano su zero, bootstrap o continuano a fare affidamento su tutto ciò che è installato a livello di sistema?
einpoklum - ripristina Monica il

1
La gestione dei pacchetti a livello di sistema presuppone che non sia disponibile nulla se non lo ha installato, quindi la ricerca di dipendenze in termini di file equivale alla ricerca di dipendenze in termini di pacchetti installati contenenti tali file. Ma con un gestore pacchetti secondario, ci sono pacchetti / file a livello di sistema e pacchetti / file specifici dell'utente. I gestori di pacchetti in genere si basano solo su ciò che hanno scaricato e / o creato?
einpoklum - ripristina Monica il

2
Dipende. Quelli che si compilano da fonti come Homebrew ed Emerge generalmente cercano solo di creare il pacchetto senza un sacco di tracciamento delle dipendenze. Altri raggruppano dipendenze con i pacchetti (questo è il modo in cui funzionano la maggior parte degli strumenti di stile dell'App Store, così come Flatpak e Snaps). Altri come Zero Install installano tutte le dipendenze come singoli pacchetti a livello di utente.
Jayhendren,

6

Quindi qual è il motivo per cui questa funzionalità non è stata aggiunta a quei sistemi / schemi comuni di gestione dei pacchetti?

Perché aumenta la complessità della gestione dei sistemi oltre ciò che è necessario.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.