我需要从源代码编译软件。
./config && make && make install
在那,它确实在各处安装了一堆东西(图书馆等)
但问题是,我还需要将该软件复制到另一组我不想安装 gcc 的机器上。
我怎样才能使该软件安装在一个“目录”中,然后复制到其他机器?
我需要从源代码编译软件。
./config && make && make install
在那,它确实在各处安装了一堆东西(图书馆等)
但问题是,我还需要将该软件复制到另一组我不想安装 gcc 的机器上。
我怎样才能使该软件安装在一个“目录”中,然后复制到其他机器?
如果你打算将软件分发到其他机器上,你肯定需要打包它。
您没有指定您正在使用哪个发行版,因此遵循一般指导。
GNU/Linux 和 *BSD 世界中的软件通常在其许可证允许的情况下以打包形式和源代码分发。
不同的发行版使用不同的前端或包管理器来更新、安装和删除此软件。
从源代码编译的软件通常(但不总是)使用已知的工作流程 (
configure && make && make install
) 构建,您提到的选项 (--prefix
) 是使用一组通用工具从称为autotools
. 简要说明,可以传递一个选项来修改将用于在本地系统中复制已编译软件的默认位置 (/usr/local
) 。make install
打包软件包括这个编译步骤,但更加复杂,因为它利用元数据来管理基本
autotools
架构中不存在的依赖关系、事务性和其他功能。看一下输出:
在这种情况下,包格式为RPM,其他发行版使用 DEB,并且包管理器也不同(
yum
/dnf
、zypper
、或/pkgsrc
、...)。dpkg
apt
aptitude
根据您需要将此软件分发到的机器数量,以及您用于构建、QA 和存储它的过程,应用不同的方法(或其中的一部分):
了解标准包装系统如何在您选择的平台中工作。例如,在 Red Hat 及其衍生产品中,您需要编写一个SPEC文件并使用
rpmbuild
. 还有像fpm
这样的轻量级替代品可以节省您的时间。了解如何配置和管理私有存储库以托管您的自定义包。该领域的一些工具包括
createrepo
andapt-utils
,但也包括更高级别的应用程序cobbler
,如pulp
ornexus
。如果您的工作流程更加复杂,例如,如果它包含包的 QA,则您可能需要工具来自动执行此操作。有很多。
记录过程。