Come posso installare un pacchetto senza accesso root?


126

Non ho accesso root su questa macchina.

Vorrei sapere se esiste un modo per scaricare i pacchetti Ubuntu e installarli come non root?

Probabilmente nella mia ~/bino ~/usr/shareo qualcosa del genere? Funzionerebbe?


1
Speriamo che lo sosterranno presto.
Domi,

4
Puoi usare app portatili per Linux: nessuna installazione, nessuna radice necessaria. Lo trovi su appimage.org . Anche a Linus Torvalds piace. È strano, perché a Linus non piace mai niente.
ipse liuto

Suggerisco di provare fakechroot .
Robert Pollak,

Una combinazione di dpk -xe ha mvfunzionato per me. Oppure, se anche dpknon è disponibile, are il piping / la combinazione con ha tarfunzionato per me su sistemi molto limitati, vedi qui
iolsmit

Risposte:


107

Apt non lo supporta direttamente, ma ci sono modi per farlo.

Uno è usare schrootper creare un chroot non root. Questo è un processo un po ' complicato , ma dovresti riuscire a trovare l'aiuto della community per altrettanti sviluppatori che creano ambienti chroot per la compilazione del codice.

Il secondo modo che conosco è installare da un pacchetto .deb. Potresti essere in grado di scaricare questo da un sito web o se si trova nei repository di Ubuntu con cui puoi scaricare.

apt-get download package

Sostituisci packagecon il nome del pacchetto

Una volta che hai il tuo file deb chiama dpkgdirettamente dalla riga di comando. L'esempio seguente installerà package.deb nella tua home directory.

dpkg -i package.deb --force-not-root --root=$HOME 

Lo svantaggio di usare dpkg in questo modo è che i messaggi di errore sono probabilmente criptici; dpkg non risolve automaticamente le dipendenze né crea la struttura di directory che si aspetta.

Infine, è possibile utilizzare il apt-get sourcecomando per recuperare l'origine del pacchetto e configurarlo per l'installazione locale. Di solito questo assomiglia a:

apt-get source package
cd package
./configure --prefix=$HOME
make
make install

Lo svantaggio di questo approccio è che hai bisogno dell'ambiente di sviluppo disponibile per far funzionare questo approccio e potresti ritrovarti a compilare dozzine di pacchetti per risolvere tutte le dipendenze.

MODIFICARE:

Poiché dpkg -inon funziona (vedi commenti), suggerisco questa alternativa:

dpkg -x package.deb dir

Questo estrarrà il pacchetto .deb in dir. Quindi è possibile esportare il PERCORSO dove si trova il binario. Finché sono installate tutte le dipendenze del binario, dovrebbe funzionare normalmente.


1
Se si dispone dell'accesso root ma non si desidera installare un determinato pacchetto a livello globale, è possibile utilizzare sudo apt-get build-dep packageper installare tutto il necessario per creare un pacchetto (dopo averne ottenuto l'origine apt-get source).
Vladimir Panteleev,

19
Questa risposta è stata scritta nel 2010. Ci sono stati cambiamenti nel modo in cui è stato fatto da allora?
becko,

36
Anche con --force-not-root, ottengo "dpkg: errore: l'operazione richiesta richiede il privilegio di superutente"
Clément

10
Persone, --force-not-root --root=$HOMEo loro varianti non funzioneranno. I pacchetti binari Debian non sono progettati per essere installati nella home directory, punto. O, per dirla in un altro modo. "Il seguente esempio installerà package.deb nella tua home directory.". No, non lo farà.
Faheem Mitha,

1
Purtroppo questo non funzionerà. Ci ho provato--force-not-root --root=/your/custom/path
Viet il

16

Presumo che tu voglia installare jedit . Per prima cosa devi trovare il pacchetto e scaricarlo. Prendo il file deb da qualche mirror e apro una console / terminale:

  1. mkdir /tmp/jedit && cd /tmp/jedit- Crea una nuova directory tmpe vi si modifica.
  2. wget http://mirrors.kernel.org/ubuntu/pool/universe/j/jedit/jedit_4.3.1.dfsg-0ubuntu1_all.deb - Scarica il pacchetto
  3. ar x jedit_4.3.1.dfsg-0ubuntu1_all.debo, facile da scrivere, ar x *.debestrae il contenuto del file
  4. tar xvzf data.tar.gz- il file data.tar.gzcontiene tutto il necessario per eseguire il software
  5. usr/bin/jedit apre l'editor
  6. fatto :-)

Puoi spostare i file in qualche punto della tua home directory ed eseguirli da lì.


11
Si noti che gli script pre e post installazione non vengono eseguiti; inoltre dovrai risolvere autonomamente eventuali dipendenze o percorsi. Ma su un'installazione predefinita questo è sufficiente per molte applicazioni desktop.
jbowtie

puoi anche scaricare il pacchetto senza cercarlo, basta fare apt-get download (vedi altra risposta)
lib

credo che il tuo link sia rotto.
Winnemucca,

9

Ho scritto un programma chiamato JuJu che sostanzialmente permette di avere una distribuzione linux davvero piccola (contenente solo il gestore dei pacchetti) all'interno della directory $ HOME / .juju.

Permette di avere il proprio sistema personalizzato all'interno della home directory accessibile tramite proot e, quindi, è possibile installare tutti i pacchetti senza i privilegi di root. Funzionerà correttamente con tutte le principali distribuzioni di Linux, l'unica limitazione è che JuJu può funzionare su kernel Linux con la versione minima consigliata 2.6.32.

Ad esempio, dopo aver installato JuJu per installare jedit:

$>juju -f
(juju)$> pacman -S jedit
(juju)> jedit

Funzionerà bene su Ubuntu giusto?
Seth,

Sì, se la versione del kernel Linux di Ubuntu è maggiore o uguale a 2.6.32 funzionerà.
user967489

2
In un primo momento ho pensato che stavi parlando questo . La seconda j maiuscola fa la differenza.
kon psych,

1
La domanda era se potessimo installare il pacchetto Ubuntu. Con junest, potremo solo installare il pacchetto ArchLinux e NON un pacchetto Ubuntu. Ad esempio, se lo stesso pacchetto non è disponibile per ArchLinux, questo non sarà d'aiuto. Detto questo, grazie per Junest.
Kiran,
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.