LINUX

Exodus: una herramienta para copiar binarios de Linux de forma segura

¿Alguna vez ha necesitado que uno de sus sistemas tenga algunos binarios instalados y desea transferir los mismos binarios a otra máquina? ¿Si claro? Vamos a discutir dicha herramienta que puede ayudarlo a lograrlo. éxodo es una herramienta que facilita la reubicación exitosa de binarios ELF de Linux de un sistema a otro. Esto es útil en situaciones en las que no tiene acceso de root en una máquina o donde un paquete simplemente no está disponible para una determinada distribución de Linux.

Exodus gestiona la recopilación de todas las dependencias del binario, compilando un contenedor vinculado estáticamente para el ejecutable que invoca al vinculador reubicado directamente e instalando el paquete en ~ / .exodus / en la máquina remota. Veámoslo en acción.

Instalación de Éxodo

Exodus se puede instalar desde paquete en pypi. Ejecute un comando a continuación para instalarlo localmente para su usuario actual.

$ pip install --user exodus-bundler
Collecting exodus-bundler
Downloading exodus_bundler-1.1.8-py2.py3-none-any.whl
Installing collected packages: exodus-bundler
Successfully installed exodus-bundler-1.1.8

Agregue ~ / .local / bin a su variable PATH para hacer que exodus sea ejecutable. Esto se puede hacer ejecutando el siguiente comando.

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

Esta RUTA está configurada solo para una sesión actual, para que sea permanente, agregue el comando anterior en el archivo ~ / .bashrc. Lo instaló con éxito, ahora veamos cómo usarlo.

Uso de Éxodo

Instalación sobre ssh

Puede usar Exodus para instalar un paquete ejecutable en una máquina remota. Por ejemplo, una máquina tiene el paquete «árbol» instalado, mientras que otra máquina no lo tiene. Simplemente puede instalar el paquete de árbol en otra máquina ejecutando el siguiente comando en la máquina en la que está instalado el paquete de árbol.

$ exodus tree | ssh 192.168.0.144
Pseudo-terminal will not be allocated because stdin is not a terminal.
root@192.168.0.144's password:
Installing executable bundle in "/opt/exodus"...
Successfully installed, be sure to add /opt/exodus/bin to your $PATH.

Ahora, vaya a la máquina donde acaba de instalar el árbol y agregue / opt / exodus / bin en la variable PATH.

$ export PATH="/opt/exodus/bin:${PATH}"

Eso es. Estás listo. Puede comenzar a usar el paquete de árbol en su máquina. Es así de simple.

Cambio de nombre de binarios

Los binarios con el mismo nombre se pueden instalar en paralelo usando la opción -r / – renombrar. Suponga que si tiene dos versiones del árbol en / bin / tree y / usr / local / bin / tree, entonces puede crear alias para cada versión con – r opción y puede usarlos en paralelo.

exodus -r tree-1 -r tree-2 /bin/tree /usr/local/bin/tree

Ahora, puede usar tree en / bin / tree y / usr / local / bin / tree por tree-1 y tree-2 respectivamente.

Instalación por extracción manual

Puede crear tarball de binarios directamente con la opción –tarball. Puede copiar este tarball en una máquina remota e instalarlo en ~ / your-path

#create tarball of tree binaries
$ exodus --tarball tree --output tree.tgz

#copy generated tarball to remote machine
scp tree.tgz 192.168.0.144:~

#create ~/your-path
ssh 192.168.0.144 "mkdir -p ~/your-path"

#extract tarball to ~/your-path
ssh intoli.com "tar --strip 1 -C ~/your-path -zxf tree.tgz"

Ahora necesita agregar ~ / your-path en la variable PATH como se explicó anteriormente. Puede comenzar a usar binarios de árbol en su máquina remota.

Puede explorar más opciones usando la opción -h (ayuda), le dará el uso y todas las opciones.

usage: exodus [-h] [--ldd LDD_SCRIPT] [-o OUTPUT_FILE] [-q] [-r NEW_NAME] [-t]
              [-v]
              EXECUTABLE [EXECUTABLE ...]

Bundle ELF binary executables with all of their runtime dependencies so that
they can be relocated to other systems with incompatible system libraries.

positional arguments:
  EXECUTABLE            One or more ELF executables to include in the exodus
                        bundle.

optional arguments:
  -h, --help            show this help message and exit
  --ldd LDD_SCRIPT      The linker that will be invoked to resolve
                        dependencies. In advanced usage, you may want to write
                        your own `ldd` script which invokes the linker with
                        custom arguments. (default: ldd)
  -o OUTPUT_FILE, --output OUTPUT_FILE
                        The file where the bundle will be written out to. The
                        extension depends on the output type. The
                        "{{executables}}" and "{{extension}}" template strings
                        can be used in the provided filename. If omitted, the
                        output will go to stdout when it is being piped, or to
                        "./exodus-{{executables}}-bundle.{{extension}}"
                        otherwise. (default: None)
  -q, --quiet           Suppress warning messages. (default: False)
  -r NEW_NAME, --rename NEW_NAME
                        Renames the binary executable(s) before packaging. The
                        order of rename tags must match the order of
                        positional executable arguments. (default: [])
  -t, --tarball         Creates a tarball for manual extraction instead of an
                        installation script. Note that this will change the
                        output extension from ".sh" to ".tgz". (default:
                        False)
  -v, --verbose         Output additional informational messages. (default:
                        False)

Por lo tanto, hemos instalado y vemos cómo usar la herramienta de reubicación de binarios Exodus. Espero que lo encuentre útil, si tiene algo que decir al respecto, avíseme en la sección de comentarios.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar