¿Es posible copiar y pegar paquetes/software en otra máquina en Linux?

¿Es posible copiar y pegar paquetes/software en otra máquina en Linux?

Aquí hay un escenario de muestra:

Comience desde un nuevo directorio, diga /myapps. Instale un Python separado (precompilado o fuente) para decir ./usr/bin (relativo al directorio de instalación y no al sistema /usr/bin) e instale varios huevos en este Python personalizado. Esto se puede hacer usando quizás algo como buildout.

Ahora, otro usuario que tenga la misma versión del sistema operativo, solo que la carpeta de rsync mantiene la estructura de carpetas exacta, podrá usar Python como el otro usuario. ¿Realmente tiene que volver a instalar cosas?

Pensé que la mayor parte del administrador de paquetes de Linux funciona así con /myapps de manera análoga a lo que es /usr, es decir, una convención predeterminada sobre dónde se deben guardar los archivos. La compilación no es obligatoria a menos que desee optimizar como la instalación de gentoo. En otras palabras, creo que lo que hacen la mayoría de los administradores de paquetes es:

1) Verificación de requisitos

2) Copiar/Pegar material precompilado en una ubicación estándar como /usr/lib /usr/bin

3) Hacer una actualización del menú

Algunas condiciones previas en la primera máquina:

Instale todo lo que esté dentro de este directorio y no fuera de él. Se ejecuta como un usuario normal y sin sudo.

En Windows creo que esto va a ser un desafío debido al registro, etc., de lo cual no estoy seguro como el concepto de sistema de archivos normal. Pero en *nix, ¿esto debería funcionar tan simple como eso?

Respuesta1

Es perfectamente posible (pero generalmente se logra el mismo resultado al crear virtualenv y agrupar toda la raíz de virtualenv). Te meterás en problemas si algunos de los paquetes de Python necesitan bibliotecas externas y otros usuarios no las tienen instaladas (por eso normalmente lo haces con virtualenv y pip bundle/pip Freeze).

El administrador de paquetes ejecuta los llamados scripts de instalación. Pueden contener cualquier código, pero generalmente agregan usuarios/grupos requeridos, editan algunas otras configuraciones (porque no se puede "instalar" una línea en la configuración; el movimiento para dividir todos los *.conf en *.conf.d ayuda un poco, pero ni siquiera estamos cerca de terminarlo todavía) pero con la mayoría de los paquetes de Python, estarás bien.

información relacionada