前言
在 Linux 中,源码安装软件灵活且适应性强,适用于各种平台,同时也方便维护,比如我们可以指定安装路径。
通常,源码安装包括以下三个步骤:
- 配置(
configure
) - 编译(
make
) - 安装(
make install
)
每个软件的具体安装方法通常会在文档中详细说明。这里特别介绍一下配置过程中 configure
的 --prefix
选项的使用方法。
配置安装路径
假设我们要安装软件 strongswan
并希望将其安装到 /ipsec
目录。在 strongswan
目录中执行以下命令:
./configure –prefix=/ipsec
通过 ./configure
配置成功后,再执行编译和安装命令(make
和 make install
)。
安装完成后,所有相关文件将被放置在 /ipsec
目录中。
为什么要指定 --prefix
选项?
指定安装目录有以下几个好处:
- 方便维护:如果不指定
--prefix
,安装过程会将文件分散到多个系统目录中,后续维护时很难确定哪些文件被安装到了哪些位置。 - 简化卸载:如果某个软件不再需要,直接删除指定的安装目录即可干净卸载该软件。
- 方便移植:只需将整个目录拷贝到另一台相同操作系统的机器上即可完成软件移植。
注意:
./configure --prefix=/
仅用于指定程序的存放路径。- 如果不指定
--prefix
,默认情况下,可执行文件会放在/usr/local/bin
,库文件放在/usr/local/lib
,配置文件放在/usr/local/etc
,其他资源文件放在/usr/local/share
。 - 编译安装完成后,源码也不要随意删除了,我们还可以通过
make uninstall
指令卸载目标程序。
Make 命令说明
Makefile 定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile 就像一个 Shell 脚本一样,其中也可以执行操作系统的命令
makefile 是什么
Makefile 定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile 就像一个 Shell 脚本一样,其中也可以执行操作系统的命令。
Makefile 带来的好处就是–“自动化编译”, 一旦写好,只需要一个 make 命令,整个工程完全自动编译,极大的提高了软件开发的效率。Make 是一个命令工具,是一个解释 makefile 中指令的命令工具,一般来说,大多数的 IDE 都有这个命令,比如:Delphi 的 make, Visual C 的 nmake, Linux 下 GNU 的 make. 可见,makefile 都成为了一种在工程方面的编译方法。
常用 make
命令
make
根据 Makefile 文件编译源代码、生成目标文件和可执行文件。make clean
清理上次编译产生的对象文件(如.o
文件)和可执行文件。make install
将编译成功的可执行文件安装到系统目录中,通常为/usr/local/bin
。make dist
生成发布软件包,通常为一个 tar.gz 压缩文件,用于发布软件。make distcheck
生成发布软件包并进行测试检查,确保发布包的正确性。make distclean
类似于make clean
,但还会删除由configure
生成的文件,包括 Makefile。