Come posso installare un RPM senza essere root?


49

Come posso installare un RPM su una macchina in cui non ho i permessi di root? Voglio installare un pacchetto per il mio uso solo in una directory di lavoro personale. Sto eseguendo SuSe SLES10.

Per favore, non darmi fuoco "Questa idea è così stupida, non dovresti farlo perché tutte le richieste devono passare attraverso il dio della radice aziendale, possa vivere per sempre".

So di poterlo richiedere al dio radice, ma sarò abbattuto (per motivi immacolati, impeccabili, ne sono sicuro ...). Inoltre, non riuscirà mai a installarlo anche se dice che lo farà.


6
Questo non è affatto un duplicato. Sovrascrivere il percorso non consente sempre a un utente non privilegiato di utilizzare rpm.
John T,

Grazie HarryMC. Lo controllerò. Inoltre, aggiungendo un link all'altro biglietto di cui la gente pensava che il mio fosse un duplicato. Forse il pangrattato aiuterà qualcun altro: superuser.com/questions/160530/override-rpm-install-path
Ross Rogers

Per un futuro migliore, guarda appimage.org .
Ross Rogers,

Risposte:


56
cd my-dir;
rpm2cpio to-install.rpm | cpio -idv

Vedi Come estrarre un pacchetto RPM senza installarlo (comando rpm extract) .


2
L'ho fatto e cpio non sembra fare altro che stampare '1 blocco'. Ho fatto qualcosa di male?
Nate Parsons,

Grazie. Risulta che sono stato in grado di installare dal sorgente, quindi non ho bisogno di preoccuparmi degli RPM
Nate Parsons,

10
Questo decomprime semplicemente il contenuto dell'RPM e lo scarica dove ti trovi. Ciò non significa che il risultato funzioni (la sua configurazione non è dove dovrebbe essere, ...)
vonbrand,

Vorrei poterti dare solo un premio di reputazione di carità. Grazie!
Macetw,

3

Come estrarre i contenuti dei pacchetti rpm

export ins=foo-bar.rpm
rpm2cpio $ins | cpio -idv

Come estrarre l' tar.gzarchivio

gzip -dc foo-bar.tar.gz | tar xvf –
cd foo-bar-dir

Come estrarre i tar.gzpacchetti nella directory corrente

export file=foo-bar.tar.gz
# Note that `xovf` switch order *matters*
gzip -dc $file | tar -xovf -

Come costruire binari come non root

./configure --prefix=$HOME && make && make install

1

Un'altra opzione è installare dal sorgente, dove di solito è possibile cambiare la directory di installazione usando l'opzione --prefix.


1
Questo è quello che faccio normalmente, ma speravo in un po 'più di automazione.
Ross Rogers,

2
Per me questo non funziona perché cerca di ottenere un blocco di file su qualcosa in / var (e l'autorizzazione è negata).
Nir Friedman,

0

Penso che la "vera" risposta a "installare" un rpm senza privilegio di root sia, non puoi . MA supponendo che tu possa effettivamente avviare il processo di installazione ...

Gli RPM si installano utilizzando un elenco di istruzioni fornite in un file di specifica (.spec) che di solito segue la Gerarchia dei filesystem. La maggior parte dei percorsi in quella gerarchia sono quasi sempre percorsi del sistema operativo e non percorsi dell'utente. Quindi, a meno che il tuo nome utente non abbia accesso a tutti i percorsi installati da un RPM, sicuramente fallirebbe. Se crei un RPM che precede tutti i suoi percorsi con /home/me(o qualche altro percorso che possiedi), funzionerebbe. Ciò richiederebbe l'acquisizione di un src.rpm e l'estrazione come spiegato in altre risposte, quindi la ricostruzione. Quando lo fai, potresti semplicemente prendere in considerazione l'accesso root o la creazione del software da zero (di solito cosa fai se non prevedi di distribuire il software su molte macchine).

Ci sono trucchi intelligenti per aiutarti nel processo di compilazione manuale. Ad esempio, è possibile utilizzare le dipendenze già elencate in un RPM per ottenere tutte le dipendenze: https://stackoverflow.com/a/13877738/1236128 .

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.