web-dev-qa-db-fra.com

yum install dans la maison des utilisateurs pour les non-administrateurs

Je suis un utilisateur non administrateur sur un grand système informatique. J'ai besoin de packages à jour qui ne sont pas installés sur le système. Je veux utiliser yum pour les installer. En tant qu'utilisateur sans accès Sudo, administrateur ou root, puis-je utiliser la gestion des packages pour installer des packages dans mon répertoire personnel? Je peux toujours utiliser make à partir des sources, mais pouvoir utiliser yum me facilitera la vie.

57
highBandWidth

La plupart des binaires sont compilés pour être installés dans certains emplacements sous /.

Il existe des gestionnaires de paquets non root comme Gentoo Prefix et Rootless GoboLinux et peut-être install .

Comme vous l'avez dit, la compilation vous-même résoudrait ce problème ou l'utilisation d'un chroot. Cependant, votre plus grand obstacle au chrootage sera les prérequis et la liaison aux objets partagés du noyau.

8
h3rrmiller

Plutôt que d'utiliser yum, recherchez les rpms souhaités et téléchargez-les. Vous ne pouvez toujours pas les installer directement sans être root, mais les packages RPM sont en fait des fichiers .cpio fantaisie, et vous pouvez décompresser leur contenu. La façon la plus simple de le faire est probablement via le navigateur de fichiers mc ("midnight commander") (l'un des meilleurs logiciels jamais créés), qui vous permet de parcourir le contenu d'un .rpm et copiez les fichiers directement.

Sans cela, vous pouvez utiliser rpm2cpio pour le convertir en .cpio, puis cpio pour extraire les fichiers à l'intérieur et les placer aux bons endroits. Les deux seront déjà installés sur un système redhat ou Fedora. Voici un exemple d'installation de "xsnow" (vous voudrez probablement le faire dans un répertoire vide):

»rpm2cpio xsnow-1.42-17.fc17.x86_64.rpm > xsnow.cpio

Remarquez que j'ai trouvé un .rpm approprié à mon système, fc17 x86_64. Ceci est important car il s'agit de fichiers binaires précompilés qui sont liés à d'autres composants. Extrayez maintenant le .cpio:

»cpio -idv < xsnow.cpio 
./usr/bin/xsnow
./usr/share/doc/xsnow-1.42
./usr/share/doc/xsnow-1.42/README
./usr/share/man/man6/xsnow.6.gz
212 blocks
Press any key to continue...

Si je parcours cette arborescence de répertoires, tout ce dont j'ai besoin est là, à l'exception de certaines des méta-informations qui pourraient m'aider à résoudre les dépendances. Cela peut être trouvé en utilisant rpm -q -p [package] --[query]:

»rpm -q -p xsnow-1.42-17.fc17.x86_64.rpm --requires
warning: xsnow-1.42-17.fc17.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID d2382b83: NOKEY
libX11.so.6()(64bit)  
libXext.so.6()(64bit)  
libXpm.so.4()(64bit)  
libc.so.6()(64bit)  
libc.so.6(GLIBC_2.2.5)(64bit)  
libc.so.6(GLIBC_2.3.4)(64bit)  
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)  
rpmlib(PayloadIsXz) <= 5.2-1

Je suis sûr que j'ai déjà tout ça. Alors maintenant, tout ce que j'ai à faire est de mettre l'exécutable xsnow dans mon $ PATH, qui comprend déjà un bac dans mon répertoire personnel:

»cp ./usr/bin/xsnow ~/bin

Alto! Maintenant, je peux taper xsnow et ne rien regarder, car il se trouve que xsnow ne fonctionne pas bien avec KDE :( mais j'espère que la liste du processus est claire. Je n'ai rien eu à faire en dehors de mon répertoire personnel.

Si vous devez installer des bibliothèques, vous devrez également créer un répertoire à la maison pour elles et les ajouter à ~/.bashrc:

export LD_LIBRARY_PATH=/home/you/lib
41
goldilocks