Exodus: copie de forma segura los archivos binarios de Linux de un sistema Linux a otro


Exodus es un programa simple pero útil para copiar de forma fácil y segura binarios ELF de Linux de un sistema a otro. Por ejemplo, si tiene htop (Linux Process Monitoring Tool) instalado en su máquina de escritorio, pero no está instalado en su servidor Linux remoto, exodus le ofrece una forma de copiar/instalar el binario htop desde la máquina de escritorio al servidor remoto.

Empaqueta todas las dependencias del binario, compilando un contenedor enlazado estáticamente para el ejecutable que invoca al enlazador reubicado directamente e instalando el paquete en el directorio ~/.exodus/, en el sistema remoto.

Puedes verlo en acción aqui.

Exodus es realmente útil en dos casos críticos: 1) si no tiene acceso de root en una máquina y/o 2) si el paquete que desea usar no está disponible para la distribución de Linux que está ejecutando en otra máquina.

Instalar Exodus en sistemas Linux

Puede instalar exodus usando el administrador de paquetes Python PIP, de la siguiente manera. El siguiente comando realizará una instalación específica del usuario (solo para la cuenta con la que inició sesión).

$ sudo apt install python-pip                [Install PIP On Debian/Ubuntu]
$ sudo yum install epel-release python-pip   [Install PIP On CentOS/RHEL]
$ sudo dnf install python-pip	             [Install PIP On Fedora]
$ pip install --user exodus-bundler          [Install Exodus in Linux] 

A continuación, agregue el directorio ~/.local/bin/ a su variable PATH en su archivo ~/.bashrc , para ejecutar el ejecutable exodus como cualquier otro comando del sistema .

export PATH="~/.local/bin/:${PATH}"

Guarde y cierre el archivo. Luego abra otra ventana de terminal para comenzar a usar exodus.

Nota: También se recomienda encarecidamente que instale gcc y uno de musl libc o diet libc (bibliotecas C que se utilizan para compilar pequeños lanzadores vinculados estáticamente para las aplicaciones empaquetadas), en la máquina donde empaquetará los binarios.

Utilice Exodus para copiar binarios locales a un sistema Linux remoto

Una vez que haya instalado exodus, puede copiar un binario local (herramienta htop) a una máquina remota simplemente ejecutando el siguiente comando.

$ exodus htop | ssh [email protected]

Luego inicie sesión en la máquina remota y agregue el directorio /home/tecmint/.exodus/bin a su PATH en su archivo ~/.bashrc , para ejecutar el htop como cualquier otro comando del sistema.

export PATH="~/.exodus/bin:${PATH}"

Guarde y cierre el archivo, luego córrelo de la siguiente manera, para que los cambios surtan efecto.

$ source ~/.bashrc

Ahora debería poder ejecutar htop en su máquina Linux remota.

$ htop

Si tiene dos o más binarios con el mismo nombre (por ejemplo, más de una versión de htop instalada en su sistema, una /usr/bin/htop y otra /usr/local/bin/htop ), puede copiarlos e instalarlos en paralelo con el indicador -r , permite la asignación de alias para cada binario en la máquina remota.

El siguiente comando instalará las dos versiones htop en paralelo con/usr/bin/grep llamado htop-1 y/usr/local/bin/htop llamado htop-2 como mostrado.

$ exodus -r htop-1 -r htop-2 /usr/bin/htop /usr/local/bin/htop | ssh [email protected]

Atención: Exodus tiene una serie de limitaciones y es posible que no funcione con binarios que no sean ELF, arquitecturas de CPU incompatibles, versiones incompatibles de Glibc y kernel, bibliotecas dependientes de controladores, bibliotecas cargadas de forma programada y dependencias que no sean bibliotecas.

Para obtener más información, consulte la página de ayuda de Exodus.

$ exodus -h           

Repositorio Exodus Github: https://github.com/intoli/exodus

Exodus es una herramienta simple pero poderosa para copiar binarios de una máquina Linux a otro sistema Linux remoto. Pruébelo y envíenos sus comentarios a través del formulario de comentarios a continuación.