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 mc
navegador de archivos ("midnight commander") (una de las mejores piezas de software), que le permite navegar por el contenido de un .rpm
archivo y copiarlo directamente.
Sin eso, puede usarlo rpm2cpio
para convertirlo a .cpio, luego cpio
extraer 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 xsnow
y 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