Est-il possible d'utiliser rpm sans accès root?
Est-il possible d'utiliser rpm sans accès root?
Réponses:
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.
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.
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
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:
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.
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.
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
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.
rpm
commande sans accès sudo / root.