Me gustaría instalar paquetes de software, similares a apt-get install <foo>
pero:
- Sin
sudo
y - En un directorio local
El propósito de este ejercicio es aislar compilaciones independientes en mi servidor de integración continua .
No me importa compilar desde la fuente, si eso es lo que se necesita, pero obviamente preferiría el enfoque más simple posible. Intenté apt-get source --compile <foo>
como se menciona aquí, pero no puedo hacer que funcione para paquetes como autoconf. Obtuve el siguiente error:
dpkg-checkbuilddeps: Unmet build dependencies: help2man
Tengo help2man compilado en un directorio local, pero no sé cómo informar a apt-get de eso. ¿Algunas ideas?
ACTUALIZACIÓN : Encontré una respuesta que casi funciona en https://askubuntu.com/a/350/23678 . El problema chroot
es que requiere sudo. El problema apt-get source
es que no sé cómo resolver las dependencias. Debo decir que se chroot
ve muy atractivo. ¿Hay un comando equivalente que no requiere sudo?
sudo
y en un directorio que no es del sistema.Respuestas:
En general, esto no es factible, ya que te meterías con el sistema de dependencias apt.
Hay dos soluciones:
Instale el paquete fuente, cambie al directorio fuente, configure e instale el paquete independientemente de los sistemas de empaquetado manualmente en el directorio que elija.
Esto no necesita root, descarga la fuente del paquete, lo descomprime en un directorio dentro del directorio actual. Luego puede cambiar a ese directorio, realizar modificaciones en la fuente, configurar la instalación en otro destino, etc.
Sin embargo, configurar a qué directorio de instalación deben ir los programas depende del programa en particular. Muchos programas usan el
./configure --prefix localdir
para dirigir la instalación a localdir; pero esto no es siempre el caso.Cree un entorno chroot en el que instalará los paquetes:
Ahora ha creado una instalación ficticia en el directorio myfancyinstall /
Puede usar apt-get install dentro de la jaula chroot para instalar lo que desee.
fuente
apt-get source
sin--compile
parece suprimir la advertencia sobre dependencias insatisfechas (lo que me permite resolverlas yo mismo)ar vx mypackage.deb
. Luego analice el contenido del paquete y descubra cómo instalarlo manualmente.usando un shell bash y adquiriendo el archivo "package.deb" (suponiendo que el nombre del paquete es "paquete") puede ejecutar el siguiente comando para lograr lo que desea: instalar el paquete para que su directorio de inicio sea tratado de la misma manera "/ "se trataría en una instalación normal.
Este es el comando:
Es posible que se enfrenten a algunos errores, como falta $ HOME / var / lib / dpkg / lock, así que simplemente cree todos los archivos faltantes que obtendrá de los errores y luego la instalación debería funcionar sin sudo.
tenga en cuenta que si "apt-get download" no funciona, puede intentar con "apt download" o "apitutde download package".
Si ninguno de los métodos funciona, puede descargar el paquete manualmente desde http://packages.ubuntu.com/
otro método sería ejecutar el comando chroot con el parámetro $ HOME y luego instalarlo de la misma manera que antes solo sin --root = $ HOME. ese comando lo llevaría a un shell donde "/" es su $ HOME actual. para volver al modo normal no olvides "salir"
buena suerte.
fuente
Si se encuentra en un alojamiento web compartido con
ssh
acceso pero noapt-get
sin root, etc. o un sistema restringido de manera similar, lo siguiente puede funcionar para usted. Funcionó para mí en un sistema dondeuname -a
devolvió algo comoSMP Debian 4.9.65-3+deb9u2~bpo8+1 (2017-01-05) x86_64 GNU/Linux
fuente