Open In App

Exodus – Copy Linux Binaries From One Linux System

Exodus is an easy-to-implement program, that is used for bundling dependencies, and also helps to effectively copy Linux ELF binaries from one to another machine securely, and this is very handy when you don’t have root access, also if there are issues in the availability of the packages in the Linux distribution, Commonly Server oriented distributions will have limitations and also have outdated packages than desktop packages, then using Exodus will be a great way.

Features:

Here, we use htop as an example, as exodus allows us to copy Linux binaries and install the htop. We install exodus on the remote system in /opt/exodus/ directory.

htop:

Htop is a real-time system monitoring application, it monitors the cause of load by each and every process, which is like a task manager in Windows OS.

To install Htop in Linux:

$ sudo apt install htop [For Ubuntu, Linux Mint]
$ sudo dnf install htop [For Fedora]

Note: Make sure you install htop on your desktop machine, instead on your remote Linux server.

Here, as we use it for bundling all the binary dependencies, then for the executable, we compile a statically linked wrapper that calls the relocated linker directly.

We have already installed htop on our local machine

Htop executing in local machine

As you can see that we can execute htop command on our local machine and it runs seamlessly.

To install Exodus:

Step 1: We use Python PIP package manager to install exodus.

$ sudo apt install python-pip                [On Debian/Ubuntu]
$ sudo dnf install python-pip                 [On Fedora]
$ pip install --user exodus-bundler          [Install Exodus in Linux] 

Output:

Installing exodus bundler

Step 2: Now, in the ~/.bashrc file add the PATH variable for the directory ~/.local/bin/. In order to execute the exodus similar to any other system command.

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

Output:

Added the executable path to $PATH

Now, we’re all set up to use exodus for executing exodus to open a new terminal window, and it is suggested to install GCC on the machine which is used for packing binaries.

Use Exodus Safely Copy Linux Binaries From One Linux System to Another:

First, we verify that a binary dependency (htop) is not available in our remote machine.

Htop command is not in the remote machine

After installing exodus in the remote machine, you will be able to copy local binaries to the remote machine.

$ exodus htop | ssh user@ip-address

Note: Here we are using a machine from GitHub codespaces as the remote machine. That’s why, gh command is used, in general cases, the syntax mentioned above will be used.

Output:

Transferring the binary dependencies from the local machine to the remote machine

After login into the remote machine, then, in the ~/.bashrc file add the PATH variable for the directory /opt/exodus/bin/, in order to execute the htop similar to other system commands.

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

Run htop command on the remote machine.

Output:

Verifying that  the htop is installed and executing it

htop is successfully running on the remote machine

We can now clearly see how the htop is working in the remote machine by using exodus.

In special cases, if there are more than two binaries with identical names, then you can copy and install them concurrently with the -r flag, which enables each binary for assigning aliases on the remote machine. installing the two versions of htop will be helpful in this case.

$ exodus -r htop-1 -r htop-2 /usr/bin/htop /usr/local/bin/htop | ssh user@ip-address

Conclusion:

Exodus is easy to implement the program with the assurance of security and helps while transferring binaries from one system to another system.

Article Tags :