Copy Linux Binaries From One Linux System to Another using Exodus?

Exodus is a powerful tool that allows you to export and import software packages, including binaries and their dependencies, from one Linux system to another. This eliminates the need for complex manual installation procedures and ensures that all required dependencies are properly transferred.

Transferring Linux binaries from one system to another can be challenging, especially when dealing with multiple machines or complex dependency chains. Exodus simplifies this process by creating portable bundles that include both the binary and its runtime environment.

Installing Exodus

Exodus is typically not included in most Linux distributions by default, so you need to install it using your distribution's package manager. For Ubuntu/Debian systems

sudo apt-get install exodus

The installation output will show the additional dependencies being installed

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
   libqt5core5a libqt5dbus5 libqt5gui5 libqt5network5 libqt5widgets5 libssl1.1 libxml2 exodus-gui
Suggested packages:
   exodus-doc exodus-tests
The following NEW packages will be installed:
   exodus exodus-gui libqt5core5a libqt5dbus5 libqt5gui5 libqt5network5 libqt5widgets5 libssl1.1 libxml2
0 upgraded, 9 newly installed, 0 to remove and 0 not upgraded.
Need to get 6,872 kB of archives.
After this operation, 23.2 MB of additional disk space will be used.
Do you want to continue? [Y/n] 

After installing Exodus on both source and target systems, you can proceed with exporting and importing software packages.

Exporting Linux Binaries using Exodus

To export a software package, you must first locate the binary file and its dependencies on the source system. The exodus export command creates a portable archive containing the software package and all required dependencies.

For example, to export the htop binary

sudo exodus export /usr/bin/htop

The export process output shows the steps being performed

Exporting /usr/bin/htop...
Creating Exodus container...
Exporting binary...
Creating tarball...
Copying tarball to host...
Export complete.
The Exodus container has been saved to:
/tmp/exodus-htop.tar.gz

This generates an archive file htop.tar.gz containing the htop binary and all necessary dependencies for seamless transfer to another Linux system.

Importing Linux Binaries using Exodus

After transferring the archive file to the target system, use the exodus import command to extract and install the software package.

To import the transferred htop.tar.gz archive

sudo exodus import htop.tar.gz

The import process extracts and installs the package

Importing package htop.tar.gz...
Extracting package files...
Installing package...
Package htop has been imported successfully.

This extracts the htop binary and dependencies from the archive and installs them in the appropriate directories on the target system.

Architecture Compatibility Considerations

When transferring binaries between systems with different architectures, you must verify compatibility. Use the file command to check the binary's architecture

file /usr/bin/nginx
nginx: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=9c491f7eb0025b843888971f371d12a1a262fe97, stripped

This output shows that nginx is a 64-bit x86-64 executable, which won't run on ARM systems due to different instruction sets.

Checking Dependencies

Use the ldd command to identify binary dependencies that may need manual transfer

ldd /usr/bin/nginx
linux-vdso.so.1 (0x00007ffc9f5c4000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f9a5a41d000)
libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f9a5a1e4000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f9a59e63000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f9a59acc000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f9a598b5000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9a594f2000)
/lib64/ld-linux-x86-64.so.2 (0x00007f9a5a89d000)

This shows the shared libraries and their paths that the binary depends on.

Key Benefits and Limitations

Advantages Limitations
Automatic dependency resolution Architecture compatibility required
Portable software bundles Library version conflicts possible
Simplified deployment Larger file sizes due to bundled dependencies
No manual dependency tracking May not work across different distributions

Conclusion

Exodus streamlines the process of copying Linux binaries between systems by automatically handling dependencies and creating portable software bundles. While it requires architecture compatibility and careful version management, Exodus significantly reduces the complexity of software deployment across multiple Linux systems.

Updated on: 2026-03-17T09:01:39+05:30

284 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements