rpm sin raíz


12

¿Es posible usar rpm sin acceso de root?

Respuestas:


2

Dependiendo del contenido del paquete, simplemente puede extraer el contenido de las rpm y usarlo desde algún lugar dentro de su directorio de inicio. Incluso si no está marcado como reubicable. Si los binarios en el paquete tienen rutas codificadas, o si la aplicación requiere acceso de root, entonces puede que no sea posible.


1
esto es realmente incorrecto, no puede ejecutar el rpmcomando sin acceso a sudo / root.

8

Hay muchas respuestas que sugieren paquetes reubicables. La opción de reubicación es para que los administradores elijan el destino (haciendo que el destino sea / opt en lugar de / usr / local, por ejemplo) y no es realmente para permisos de usuario.

Si bien es posible solucionar algunos problemas de permisos utilizando este método, el problema MAYOR es que cuando realiza operaciones rpm, está modificando las bases de datos /var/lib/rpm/__db.* que son propiedad de root: root. Entonces, como JPerkSter dijo "respuesta corta = no". Configurar sudo para permitir las necesidades específicas probablemente sería la mejor apuesta.


8

Teniendo en cuenta todo lo anterior, con respecto a las compilaciones reubicables, puede intentar seguir las instrucciones que se enumeran aquí .

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

3

La especificación RPM contiene una opción llamada 'reubicable'. Si el rpm se construye con la reubicación activada, se puede instalar en un directorio especificado por el usuario utilizando la opción '--prefix'. Entonces, presumiblemente, se podría instalar un rpm localmente sin acceso de superusuario siempre que se cumplan dos condiciones:

  1. El paquete fue construido originalmente para ser reubicable
  2. El binario 'rpm' no intenta agregar el paquete al catálogo global del sistema

Pero, en general, no, necesita acceso de superusuario para instalar un RPM. Si bien existe la opción reubicable, casi nunca he visto un paquete que se haya creado para admitirlo.


3

Algunos paquetes son reubicables, por lo que pueden funcionar bien sin root, solo especifique el prefijo al instalarlo: rpm -i my.rpm --prefix = / my / home / folder

Si el paquete no es reubicable, aún puede extraer los archivos de RPM e intentar ejecutarlo. Puede extraer archivos RPM utilizando, por ejemplo:

Copie los archivos en su carpeta ~ /, agregue bibliotecas de dependencias adicionales y espere lo mejor. No está garantizado, pero puede obtener algunos paquetes no reubicables que funcionan de esta manera.


2

Puede forzarlo a instalarse en un directorio diferente utilizando un dbpath diferente. Además, probablemente no debería ejecutar ningún script directamente sin verificarlo.

Esto colocará un rpm en el directorio actual y extraerá los scripts para que pueda editarlos y ejecutarlos si es necesario.

rpm --install --badreloc --relocate /=`pwd` -dbpath `pwd`/rpm_db --nodeps --noscripts package.rpm

rpm --query --scripts -p package.rpm > scripts.txt

2

Sí, pero es posible que no quieras. He utilizado manifiestos de títeres personalizados y paquetes rpm para mantener el software en clústeres de cómputo en los que no tenía acceso de root. En teoría es tan simple como

rpm --inittb --root /foo 
rpm --dbpath /foo -i bar.rpm

Sin embargo, hay peculiaridades en cómo se comporta esto en EL4, EL5 y EL6, por lo que necesitará un conjunto diferente de pasos y opciones para cada uno. Ya no tengo esa información a mano. Esas peculiaridades, así como los frecuentes problemas de la base de datos RPM (quizás debido a NFS), me hicieron arrepentirme de usar rpm.


1

Puede construir RPM sin acceso de root, solo hágalo dentro de su directorio de inicio. En cuanto a la instalación de RPM, diría que la respuesta corta = no.


-2

no, no es posible rpm sin acceso root, su o sudo

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.