¿Es posible usar rpm sin acceso de root?
¿Es posible usar rpm sin acceso de root?
Respuestas:
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.
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.
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
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:
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.
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.
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
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.
rpm
comando sin acceso a sudo / root.