instalar paquetes sin acceso a sudo


11

¿Hay una manera fácil de instalar paquetes con un gran árbol de dependencias, siempre que no tenga acceso de superusuario? Por ejemplo, digamos que quería instalar Firefox. Firefox tiene un montón de dependencias, cada una de las cuales tiene sus propias dependencias, etc. Instalarlos en la forma "./configure; make; make install" llevaría una eternidad.

¿Hay alguna opción que pueda darle a apt-get para que se instale en un directorio personal? ¿O hay una manera de hackearlo para hacer todo el trabajo pesado por mí?


intente preguntar en www.superuser.com o si una pregunta del servidor específicamente www.serverfault.com

Respuestas:


4

Puede instalar archivos .deb individuales en su directorio de inicio con:

dpkg-deb -x /path/to/some.deb $HOME

Pero esto no se ocupa de las dependencias como lo hace aptitude o apt-get.


Usé este método para instalar atom for julia en mi estación de trabajo. Además, hice un alias para atom en ~ / .bashrc: alias atom = "/ path / to / the / ejecutable / atom / binary / file". Luego ejecute: source ~ / .bashrc, está listo para ejecutar el átomo en la terminal.
Buena voluntad

2

Salida NixOS ( LWN ). Los paquetes están aislados (a veces la distribución necesita parchearlos) y pueden instalarse varias veces, en diferentes versiones o por diferentes usuarios.

jhbuild puede automatizar un gran proceso cmmi. Pero alguien necesita escribir un conjunto de módulos (un gráfico de dependencia).

Si va con el proceso de instalación / configuración manual, es posible usar stow para simplificar la instalación de cosas en su hogar. Stow es útil para instalar cosas en varios prefijos, pero use solo un prefijo para la resolución de dependencia.

Se puede obligar a dpkg a instalar en un prefijo diferente con instdir / admindir / root, pero esto solo es útil para entornos chroot.


0

No compile Firefox desde la fuente, solo instale un paquete binario en su directorio de inicio.

Este artículo de Mozilla KnowledgeBase explica cómo hacerlo. Básicamente solo necesita extraer un tarball y ejecutar un firefoxarchivo en él; todas las dependencias ya están incluidas, por lo que no necesita instalar nada apt.

EDITAR: No, no existe un método genérico, al menos porque la mayoría de las aplicaciones (y especialmente las GUI) requieren que gran parte de sus datos asociados se coloquen en ubicaciones bien conocidas como / usr / share, y está codificada (bueno, se puede configurar en tiempo de compilación, pero no desea volver a compilar todo como dijo en cuestión). Por lo tanto, solo puede verificar los paquetes binarios precompilados que buscan recursos en el directorio de inicio y no en los del sistema.


Interpreto que la pregunta es sobre las prácticas de gestión de paquetes. Sospecho que Firefox es solo un ejemplo, por lo que los métodos específicos de Firefox no son demasiado útiles.
quack quijote

Gracias, editó la publicación. La información de Firefox sigue siendo útil a través de.
whitequark

0

Creo que la respuesta es más o menos "no". En primer lugar, solo se puede acceder a la base de datos de paquetes desde la raíz y, en segundo lugar, algunos / muchos paquetes tienen rutas codificadas que hacen que sea imposible reubicarlos. El uso de un chroot sería una respuesta posible, pero también necesita root para eso, o al menos alguien con root para otorgarle derechos limitados.


0

Creo que tienes que hacer un chroot y luego puedes instalar tus paquetes allí.

ref: https://help.ubuntu.com/6.10/ubuntu/packagingguide/C/appendix-chroot.html https://wiki.ubuntu.com/DebootstrapChroot


De todos modos, se requieren privilegios de root para crear un chroot, entonces, ¿por qué no instalar paquetes en su lugar ? Aparte de esto, las posibilidades de que su administrador de sistemas le otorgue privilegios de root completos (o incluso solo relacionados con apt) son mucho, mucho menos que los de chroot. No es (casi) peligroso para el sistema host.
whitequark
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.