rpm senza root


12

È possibile utilizzare rpm senza accesso root?

Risposte:


2

A seconda del contenuto del pacchetto, è possibile semplicemente estrarre il contenuto di rpm e utilizzarlo da qualche parte all'interno della directory home. Anche se non è contrassegnato come trasferibile. Se i file binari nel pacchetto hanno percorsi hardcoded o se l'applicazione richiede l'accesso come root, potrebbe non essere possibile.


1
questo non è corretto, non è possibile eseguire il rpmcomando senza l'accesso sudo / root.

8

Ci sono molte risposte che suggeriscono pacchetti trasferibili. L'opzione di trasferimento è per gli amministratori di scegliere la destinazione (rendendo la destinazione sia / opt invece che / usr / local per esempio) e non è realmente per le autorizzazioni dell'utente.

Mentre può essere possibile aggirare alcuni problemi di autorizzazione usando questo metodo, il problema MAJOR è che quando si eseguono operazioni rpm, sta modificando i database /var/lib/rpm/__db.* che sono di proprietà root: root. Così come ha detto JPerkSter "risposta breve = no". Configurare sudo per consentire le esigenze specifiche sarebbe probabilmente la soluzione migliore.


8

Considerando quanto sopra, per quanto riguarda le build trasferibili, puoi provare a seguire le istruzioni elencate qui .

rpm --initdb --root /home/username/local --dbpath /home/username/local/lib/rpm
rpm --root /home/username/local --dbpath /home/username/local/lib/rpm \
 --relocate /usr=/home/username/local --nodeps -ivh package.rpm

3

Le specifiche RPM contengono un'opzione chiamata 'trasferibile'. Se l'rpm è creato con la rilocatività attivata, può essere installato in una directory specificata dall'utente usando l'opzione '--prefix'. Quindi presumibilmente un rpm potrebbe essere installato localmente senza accesso da superutente purché siano soddisfatte due condizioni:

  1. Il pacchetto è stato originariamente costruito per essere trasferibile
  2. Il binario 'rpm' non tenta di aggiungere il pacchetto al catalogo di sistema globale

Ma, in generale, no, è necessario l'accesso da superutente per installare un RPM. Mentre esiste l'opzione trasferibile, non ho quasi mai visto un pacchetto che è stato creato per supportarlo.


3

Alcuni pacchetti possono essere trasferiti, quindi potrebbero funzionare bene senza root, basta specificare il prefisso durante l'installazione: rpm -i my.rpm --prefix = / my / home / cartella

Se il pacchetto non è trasferibile, è comunque possibile estrarre i file da RPM e provare a eseguirlo. È possibile estrarre i file RPM usando ad esempio:

Copia i file nella tua cartella ~ /, aggiungi eventuali librerie di dipendenza aggiuntive e spera per il meglio. Non garantito ma è possibile che alcuni pacchetti non trasferibili funzionino in questo modo.


2

È possibile forzare l'installazione in una directory diversa utilizzando un diverso dbpath. Inoltre, probabilmente non dovresti eseguire alcuno script direttamente senza verificarli.

Questo metterà un rpm nella directory corrente ed estrarrà gli script in modo da poterli modificare ed eseguirli se necessario.

rpm --install --badreloc --relocate /=`pwd` -dbpath `pwd`/rpm_db --nodeps --noscripts package.rpm

rpm --query --scripts -p package.rpm > scripts.txt

2

Sì, ma potresti non volerlo. Ho usato manifest personalizzati di marionette e pacchetti rpm per mantenere il software su cluster di calcolo su cui non avevo accesso root. In teoria è semplice come

rpm --inittb --root /foo 
rpm --dbpath /foo -i bar.rpm

Tuttavia, ci sono delle stranezze nel modo in cui questo si comporta su EL4, EL5 ed EL6, quindi avrai bisogno di una serie diversa di passaggi e opzioni per ognuno. Non ho più queste informazioni a portata di mano. Quelle stranezze, così come i frequenti problemi del database RPM (forse dovuti a NFS), mi hanno fatto pentire usando rpm.


1

Puoi creare RPM senza accesso root, basta farlo nella tua home directory. Per quanto riguarda l'installazione di RPM, direi la risposta breve = no.


-2

no non è possibile giri / min con accesso root, su o sudo

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.