Hay veces que vamos a instalar un paquete rpm en una máquina linux, pero necesitamos cambiar la ruta de instalación que tiene por defecto. Para resolverlo existe alguna solución que os cuento a continuación.
Chequear Relocations
Lo primero que tenemos que hacer es saber si un paquete rpm está habilitado para cambiar su ruta por defecto de instalación o no. Para ello ejecutamos el siguiente comando:
# rpm -qpi telnet-0.17-48.el6.x86_64.rpm | grep Relocations Name : telnet Relocations: (not relocatable)
Si nos muestra como en este caso el mensaje “(not relocatable)“, quiere decir que no está permitido elegir una ruta distinta.
Cambiar la ruta de instalación de un rpm
Sin embargo, si el chequeo de Relocations ha sido satisfactorio, para instalar un paquete rpm en una ruta distinta a la de por defecto, tenemos que utilizar la opcion –prefix.
Por ejemplo si queremos instalar el cliente telnet en /opt tendríamos que ejecutar lo siguiente:
# rpm -ivh --prefix=/opt telnet-0.17-48.el6.x86_64.rpm
Workaround para Relocations no permitido
En el caso de que el chequeo de Relocations haya sido fallido y no nos permita elegir otra ruta, podemos crear un enlace simbólico que apunte a la ruta que queremos usar.
Por ejemplo si tenemos los siguientes datos:
- Ruta por defecto: /opt/telnet
- Ruta que queremos usar: /usr/local/telnet
Workaround:
Para que cuando vayamos a la ruta por defecto, en realidad estemos situandonos en la ruta que queremos usar, creamos el enlace simbólico telnet dentro de /opt
# mkdir -p /usr/local/telnet # cd /opt # ln -s /usr/local/telnet telnet
Este sería el resultado:
# cd /opt # ls -l telnet lrwxrwxrwx 1 root root 7 May 12 12:12 telnet -> /usr/local/telnet
Fuente:
http://rpm.org/documentation.html
http://ftp.rpm.org/max-rpm/ch-rpm-reloc.html