Exodus - How to Transfer Binaries Between Linux Systems Without Containers
A familiar situation: a utility works great on your laptop, but it's not available in the repositories on your server? Or the version in the repositories is outdated? Exodus by Intoli solves this problem elegantly — it transfers binaries along with all their dependencies between systems.
Why This Matters
Simply copying a binary almost always ends in an error:
Exodus automatically finds all dependencies, creates a statically linked launcher, and installs the package to ~/.exodus/ on the target machine. All with a single command:
Key Features
- Automatic dependency collection — Exodus analyzes the ELF binary and finds all required libraries
- SSH transfer — convenient SSH integration for instant deployment
- Flexible operation:
- Adding extra files via
--add - Auto-detecting dependencies via
--detect - Renaming binaries during transfer
- Adding extra files via
- Docker support — bundles can be included in Docker images
- Alternative to containers — works without Docker and other containerization systems
How It Works
Exodus creates a special directory structure:
The launcher is a small program that:
- Determines its own location
- Launches the linker with the correct library paths
- Ignores system libraries, using only the transferred ones
Practical Use Cases
- Deploying to servers without root access
- Transferring utilities between different Linux distributions
- Creating portable versions of software
- Adding software to Docker images without increasing their size
Limitations
- ELF binaries only (doesn't work with scripts)
- Requires compatible CPU architectures
Installation
Exodus is a must-have tool for:
- System administrators
- DevOps engineers
- Developers working with different environments
Open source project, BSD 2-Clause license. Give it a try — and forget about binary transfer problems between systems!
Related projects