yum instalar en el hogar del usuario para no administradores

51

Soy un usuario no administrador en un gran sistema informático. Necesito algunos paquetes actualizados que no están instalados en el sistema. Quiero usar yum para instalarlos. Como usuario sin sudo, administrador o acceso root, ¿puedo usar la administración de paquetes para instalar paquetes en mi directorio de inicio? Siempre puedo usar make de las fuentes, pero poder usar yum hará la vida más fácil.

highBandWidth
fuente
1
no, a menos que el binario yum sea raíz suida (las posibilidades de que sean escasas).
h3rrmiller
1
@ h3rrmiller, pero ¿hay algún administrador de paquetes que pueda instalar programas en $ HOME y, por lo tanto, no requiera acceso a sudo? Sé que MacPorts en OSX puede hacerlo. ¿Cuáles son esas opciones para Linux?
highBandWidth

Respuestas:

8

La mayoría de los binarios se compilan para instalarse en ciertas ubicaciones en /.

Hay administradores de paquetes no root como Gentoo Prefix y Rootless GoboLinux y quizás 0install .

Como dijiste, compilarte a ti mismo aliviará ese problema o usar un chroot. Sin embargo, su mayor obstáculo con el chrooting serán los requisitos previos y la vinculación a los objetos compartidos del núcleo.

h3rrmiller
fuente
10
Chroot no es una opción aquí. Necesitas ser root para chroot.
Marco
38

En lugar de usar yum, encuentre los rpms que desea y descárguelos. Todavía no puede instalarlos directamente sin ser root, pero los paquetes RPM son realmente archivos .cpio sofisticados, y puede desempaquetar sus contenidos. La forma más fácil de hacer esto es probablemente a través del mcnavegador de archivos ("midnight commander") (una de las mejores piezas de software), que le permite navegar por el contenido de un .rpmarchivo y copiarlo directamente.

Sin eso, puede usarlo rpm2cpiopara convertirlo a .cpio, luego cpioextraer los archivos dentro y colocarlos en los lugares correctos. Ambos ya estarán instalados en un sistema redhat o fedora. Aquí hay un ejemplo de instalación de "xsnow" (probablemente desee hacer esto en un directorio vacío):

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

Observe que encontré un .rpm apropiado para mi sistema, fc17 x86_64. Esto es importante porque se trata de archivos binarios precompilados que están vinculados con otros componentes. Ahora extraiga el .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 navego por este árbol de directorios, todo lo que necesito está allí, excepto parte de la metainformación que podría ayudarme a resolver las dependencias. Esto se puede encontrar usando 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

Estoy bastante seguro de que ya tengo todas estas cosas. Así que ahora todo lo que tengo que hacer es poner el ejecutable xsnow en mi $ PATH, que ya incluye un contenedor en mi directorio de inicio:

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

¡Viola! Ahora no puedo escribir xsnowy mirar nada, ya que resulta que xsnow no funciona bien con KDE :( pero espero que la esencia del proceso sea clara. No tuve que hacer nada fuera de mi directorio de inicio.

Si necesita instalar bibliotecas, también deberá crear un directorio en casa para ellas y agregarlas a ~/.bashrc:

export LD_LIBRARY_PATH=/home/you/lib
encerrada dorada
fuente
@siamii Bueno, ¿tienes una mejor respuesta?
Marcin
55
Ok, entonces, ¿qué tal si alguien crea una herramienta para crear archivos cpio, y luego copia todo a una carpeta no root, como ./usr/bin a $ PREFIX / usr / bin, etc., y también verifica e instala recursivamente dependencias.
highBandWidth
2
Dos años y medio después, gracias por la útil respuesta. Puede hacer esto en una línea con: mkdir xsnow; cd xsnow; wget -O - 195.220.108.108/linux/rpmfusion/nonfree/fedora/releases/17/… | rpm2cpio - | cpio -idv
Larry Engholm
1
He estado usando esto durante más de 2 años en mi computadora de oficina y funciona de maravilla cada vez. Quiero expresarte mi sincera gratitud. Deseo que la informática de mi universidad sea tan competente.
De vez en cuando, mientras hago esto, me encuentro con un enlace simbólico No se puede '...': Permiso denegado o cpio: ....: No se puede abrir: Permiso denegado, ¿hay alguna manera de arreglar esto? Tenga en cuenta que creo estos archivos sin sudo, pero luego, por alguna razón, necesito usar sudo para desinstalarlos
Phylliida