installazione di pacchetti senza accesso sudo


11

Esiste un modo semplice per installare pacchetti con un grande albero delle dipendenze, a condizione che non si disponga di un accesso da superutente? Ad esempio, supponiamo che volessi installare Firefox. Firefox ha un sacco di dipendenze, ognuna delle quali ha le proprie dipendenze, ecc. L'installazione di queste modalità "./configure; make; make install" richiederebbe un'eternità.

Esiste un'opzione che posso dare a apt-get per installarlo in una directory personale? O c'è un modo per hackerarlo per fare tutto il lavoro pesante per me?


prova a chiedere su www.superuser.com o se una domanda del server in particolare www.serverfault.com

Risposte:


4

Puoi installare singoli file .deb nella tua home directory con:

dpkg-deb -x /path/to/some.deb $HOME

Ma questo non si occupa delle dipendenze come aptitude o apt-get.


Ho usato questo metodo per installare atom per julia sulla mia workstation. Inoltre, ho creato un alias per atom in ~ / .bashrc: alias atom = "/ path / to / the / eseguibile / atom / binary / file". Quindi esegui: source ~ / .bashrc, sei pronto per eseguire atom nel terminale.
Buona volontà

2

Dai un'occhiata a NixOs ( LWN ). I pacchetti sono isolati (a volte la distribuzione deve correggerli) e possono essere installati più volte, a versioni diverse o da utenti diversi.

jhbuild può automatizzare un grande processo cmmi. Ma qualcuno deve scrivere un set di moduli (un grafico delle dipendenze).

Se stai andando con il manuale configura / fai tutto il processo di installazione, è possibile usare stow per semplificare l'installazione di cose nella tua casa. Stow è utile per installare elementi in diversi prefissi, ma usa solo un prefisso per la risoluzione delle dipendenze.

dpkg può essere forzato per l'installazione in un prefisso diverso con instdir / admindir / root, ma questo è utile solo per gli ambienti chroot.


0

Non compilare Firefox dal sorgente, basta installare un pacchetto binario nella tua home directory.

Questo articolo di Mozilla KnowledgeBase spiega come farlo. Fondamentalmente devi solo estrarre un tarball ed eseguire un firefoxfile al suo interno; tutte le dipendenze sono già incluse, quindi non è necessario installare nulla con apt.

EDIT: No, non esiste un metodo generico, almeno perché la maggior parte delle applicazioni (e soprattutto quelle della GUI) richiedono che gran parte dei suoi dati associati siano collocati in posizioni ben note come / usr / share, ed è hardcoded in esso (beh, può essere configurato al momento della compilazione, ma non vuoi ricompilare tutto come hai detto in questione). Quindi puoi solo controllare i pacchetti binari precompilati che cercano risorse nella directory di avvio e non in quelli di sistema.


interpreto la domanda sulle pratiche di gestione dei pacchetti. sospetto che Firefox sia solo un esempio, quindi i metodi specifici di Firefox non sono eccessivamente utili.
Quack Quixote,

Grazie, modificato il post. Le informazioni di Firefox sono ancora utili attraverso.
whitequark,

0

Penso che la risposta sia praticamente "no". Innanzitutto il database dei pacchetti è accessibile solo da root, e in secondo luogo, alcuni / molti pacchetti hanno percorsi hardcoded che rendono impossibile il loro trasferimento. L'uso di un chroot sarebbe una possibile risposta, ma per questo ti serve anche il root, o almeno qualcuno con root per garantirti diritti limitati.


0

Credo che devi fare un chroot quindi puoi installare i tuoi pacchetti lì.

ref: https://help.ubuntu.com/6.10/ubuntu/packagingguide/C/appendix-chroot.html https://wiki.ubuntu.com/DebootstrapChroot


i privilegi di root sono comunque tenuti a creare un chroot, quindi perché non si limitano a installare pacchetti , invece ? A parte questo, le possibilità che il tuo amministratore di sistema ti garantisca i privilegi di root completi (o anche solo relativi ad apt) sono molto, molto meno di quelli per chroot. Non è (quasi) pericoloso per il sistema host.
whitequark,
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.