Exodus – Copy Linux Binaries From One Linux System
Last Updated :
09 Jan, 2023
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:
- You don’t need root access on the machine.
- You can run it on another machine when the package is not available in Linux distribution.
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.
- htop-1 – /usr/bin/grep.
- htop-2 – /usr/local/bin/htop.
$ 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.
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...