使用 Exodus 将 Linux 二进制文件从一个 Linux 系统复制到另一个 Linux 系统?
将 Linux 二进制文件从一个系统传输到另一个系统可能是一项艰巨且耗时的任务,尤其是在需要在多台计算机上安装软件时。不过,有一个工具可以简化这个过程——Exodus。它是一款功能强大的工具,允许您从一个 Linux 系统导出和导入软件包(包括二进制文件及其依赖项)。
在本文中,我们将探讨使用 Exodus 将 Linux 二进制文件从一个系统复制到另一个系统所涉及的步骤。我们将介绍一些基本步骤,例如确定二进制文件和依赖项的位置、创建归档文件以及在目标系统上安装软件。此外,我们将讨论在不同架构之间复制二进制文件时可能出现的潜在问题,并提供一些有用的解决方法。
无论您是负责管理多个 Linux 系统的系统管理员,还是希望分发软件更新的开发人员,Exodus 都是您工具包中不可或缺的工具。凭借其强大的功能和易用性,它可以帮助您节省时间和精力,同时确保您的软件在所有目标系统上正确安装。
要使用 Exodus,您需要在源系统和目标系统上都安装该工具。通常,大多数 Linux 系统默认不包含 Exodus,因此您需要使用发行版的包管理器进行安装。例如,您可以通过运行以下命令安装 Exodus:−
sudo apt-get install exodus
运行 sudo apt-get install exodus 命令时,Linux 终端的输出可能如下所示:-
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]
输出显示 exodus 软件包将被安装。系统会提示用户在终端中输入"Y"或"n"来确认安装。
在两个系统上安装 Exodus 后,您就可以使用该工具导出和导入软件包了。
使用 Exodus 导出 Linux 二进制文件
要使用 Exodus 导出软件包,您必须首先在源系统上找到二进制文件及其相应的依赖项。确定它们的位置后,您可以使用 exodus export 命令生成软件包的存档。
例如,假设您打算从源系统导出二进制文件 htop。在这种情况下,您可以执行以下命令来启动导出过程:
sudo exodus export /usr/bin/htop
执行命令后,输出可能如下所示 -
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
执行该命令后,当前目录中将生成一个名为 htop.tar.gz 的新存档文件。该存档文件包含 htop 二进制文件及其运行所需的所有依赖项。这样可以将软件包无缝传输到另一个 Linux 系统。
使用 Exodus 导入 Linux 二进制文件
将存档文件传输到目标系统后,您可以使用 Exodus import 命令导入软件包。此命令将提取存档文件的内容,并将软件包安装到目标系统上。
为了便于说明,假设您已将 htop.tar.gz 存档文件传输到目标系统。要将软件包从一个系统导入到另一个系统,请执行以下命令:
sudo exodus import htop.tar.gz
exodus 命令的输出如下所示 -
Importing package htop.tar.gz... Extracting package files... Installing package... Package htop has been imported successfully.
这将从归档文件中提取 htop 二进制文件及其所有依赖项,并将它们安装到目标系统上的相应目录中。
跨不同架构复制 Linux 二进制文件
在不同架构的系统之间传输 Linux 二进制文件时,必须确认软件包能够在目标架构上运行。您可能还需要手动传输软件包中未包含的任何依赖项。
例如,假设您打算将 nginx 二进制文件从 x86 系统复制到 ARM 系统。要确定 nginx 二进制文件的架构,您可以使用 file 命令,如下所示:
$ file nginx
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
根据输出,nginx 二进制文件设计为在 x86-64 架构上作为 64 位可执行文件运行。此外,由于 ARM 处理器使用的命令集存在差异,此二进制文件不适用于 ARM 系统。
有时您需要手动复制软件包中未包含的任何依赖项和一些文件。为此,您可以使用 ldd 命令识别 nginx 所需的依赖项或重要文件,如下所示:−
$ ldd nginx
ldd nginx 命令的输出可能因安装的系统和 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) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f9a592ee000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f9a590d4000)
输出显示了 nginx 所依赖的共享库,包括它们的路径和内存地址。
结论
总而言之,Exodus 是一款在系统之间复制 Linux 二进制文件的实用工具。它提供了一个集中的软件包存储库,允许同时在多个系统上轻松安装和更新。Exodus 支持从各种来源导入软件包,自动处理依赖项和冲突,甚至允许跨不同硬件平台复制二进制文件。
但是,在系统之间复制二进制文件之前,有必要验证发行版和软件版本是否相同,以避免兼容性问题。如果系统架构不同,则可能需要手动复制依赖项。通过采取正确的预防措施,Exodus 可以简化软件管理任务,提高系统稳定性和安全性,并节省在多个系统上管理软件的时间和精力。总而言之,只要采取必要的预防措施,Exodus 是一款用于复制 Linux 二进制文件的实用工具。
相关文章
有用资源
linux 参考教程 - 该教程包含有关 linux 的更多信息:https://www.cainiaomax.com/linux/

