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.