tr / min sans racine

12

Est-il possible d'utiliser rpm sans accès root?

David Nehme
la source

Réponses:

2

Selon le contenu du paquet, vous pouvez simplement extraire le contenu du rpm et l'utiliser à partir de quelque part avec votre répertoire personnel. Même s'il n'est pas signalé comme déplaçable. Si les fichiers binaires du package ont des chemins codés en dur, ou si l'application nécessite un accès root, cela peut ne pas être possible.

Zoredache
la source
1
c'est en fait incorrect, vous ne pouvez pas réellement exécuter la rpmcommande sans accès sudo / root.
8

Il existe de nombreuses réponses suggérant des packages déplaçables. L'option de relocalisation permet aux administrateurs de choisir la destination (en faisant de la destination / opt au lieu de / usr / local par exemple) et n'est pas vraiment pour les autorisations des utilisateurs.

Bien qu'il soit possible de contourner certains problèmes d'autorisations à l'aide de cette méthode, le problème majeur est que lorsque vous effectuez des opérations rpm, il modifie les bases de données /var/lib/rpm/__db.* détenues par root: root. Donc, comme JPerkSter a dit "réponse courte = non". Mettre en place sudo pour répondre aux besoins spécifiques serait probablement le meilleur choix.

Alex
la source
8

Compte tenu de tout ce qui précède, concernant les versions déplaçables, vous pouvez essayer de suivre les instructions répertoriées ici .

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
Lee Gee
la source
3

La spécification RPM contient une option appelée «relocatable». Si le rpm est construit avec relocatability activé, il peut être installé dans un répertoire spécifié par l'utilisateur en utilisant l'option '--prefix'. Il est donc probable qu'un rpm puisse être installé localement sans accès de superutilisateur tant que deux conditions sont remplies:

  1. Le package a été initialement conçu pour être déplaçable
  2. Le binaire 'rpm' n'essaie pas d'ajouter le package au catalogue système global

Mais, en général, non, vous avez besoin d'un accès superutilisateur pour installer un RPM. Bien que l'option relocalisable existe, je n'ai presque jamais vu de package conçu pour la prendre en charge.

Scott Pack
la source
3

Certains packages sont déplaçables, ils peuvent donc fonctionner correctement sans root, il suffit de spécifier le préfixe lors de l'installation: rpm -i my.rpm --prefix = / my / home / folder

Si le package n'est pas déplaçable, vous pouvez toujours extraire les fichiers de RPM et essayer de l'exécuter. Vous pouvez extraire des fichiers RPM en utilisant par exemple:

Copiez les fichiers dans votre dossier ~ /, ajoutez des bibliothèques de dépendances supplémentaires et espérez le meilleur. Non garanti, mais certains packages non déplaçables peuvent fonctionner de cette façon.

Datageek
la source
2

Vous pouvez le forcer à installer sous un autre répertoire en utilisant un autre dbpath. De plus, vous ne devriez probablement pas exécuter de scripts directement sans les vérifier.

Cela placera un rpm dans le répertoire courant et extraira les scripts afin que vous puissiez les modifier et les exécuter si nécessaire.

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

rpm --query --scripts -p package.rpm > scripts.txt
user12722
la source
2

Oui, mais vous ne voudrez peut-être pas. J'ai utilisé des manifestes de marionnettes personnalisés et des packages rpm pour maintenir le logiciel sur les clusters de calcul sur lesquels je n'avais pas accès root. En théorie, c'est aussi simple que

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

Cependant, il existe des bizarreries dans la façon dont cela se comporte entre EL4, EL5 et EL6, vous aurez donc besoin d'un ensemble différent d'étapes et d'options pour chacune. Je n'ai plus cette information à portée de main. Ces bizarreries, ainsi que les problèmes fréquents de base de données RPM (peut-être en raison de NFS), m'ont fait regretter d'utiliser rpm.

sciurus
la source
1

Vous pouvez créer des RPM sans accès root, faites-le simplement à l'intérieur de votre homedirectory. En ce qui concerne l'installation des RPM, je dirais que la réponse courte = non.

JPerkSter
la source
-2

pas de rpm impossible sans accès root, su ou sudo

Rajat
la source