Exodus - 如何在 Linux 系统之间无容器迁移二进制文件
熟悉的情况:某个工具在你的笔记本上运行得很好,但在服务器的仓库里找不到?或者仓库里的版本已经过时了?Intoli 的 Exodus 优雅地解决了这个问题——它可以在系统之间迁移二进制文件及其所有依赖项。
为什么这很重要
简单地复制二进制文件几乎总是以错误告终:
Exodus 自动查找所有依赖项,创建一个静态链接的启动器,并将软件包安装到目标机器的 ~/.exodus/。只需一条命令即可完成:
主要特性
- 自动收集依赖项 — Exodus 分析 ELF 二进制文件并查找所有必需的库
- SSH 传输 — 便捷的 SSH 集成,实现即时部署
- 灵活操作:
- 通过
--add添加额外文件 - 通过
--detect自动检测依赖项 - 在传输过程中重命名二进制文件
- 通过
- Docker 支持 — 可以将捆绑包包含在 Docker 镜像中
- 容器的替代方案 — 无需 Docker 和其他容器化系统即可运行
工作原理
Exodus 创建一个特殊的目录结构:
启动器是一个小程序,它:
- 确定自己的位置
- 使用正确的库路径启动链接器
- 忽略系统库,只使用传输的库
实际应用场景
- 部署到服务器(无需 root 权限)
- 在不同 Linux 发行版之间传输工具
- 创建软件的便携版本
- 向 Docker 镜像添加软件(不增加镜像大小)
局限性
- 仅支持 ELF 二进制文件(不适用于脚本)
- 需要兼容的 CPU 架构
安装
Exodus 是以下人员的必备工具:
- 系统管理员
- DevOps 工程师
- 在不同环境中工作的开发人员
开源项目,采用 BSD 2-Clause 许可证。试试看——从此告别系统间二进制文件迁移的烦恼!
相关项目