Linux 编译源码安装程序

前言

有时候,我们从网上下载到一个 .tar.gz 格式的开源项目源码,想要上传到 Linux 服务器并通过源码进行编译安装。这种方式比较灵活,适用于没有预编译包、或需要自定义编译参数的场景。

下面整理了一份完整的流程,记录从解压源码包到最终编译安装的每一个步骤,供自己备忘,也方便后来者参考。

安装流程

前置准备:安装依赖

在源码编译之前,首先要确保系统已经安装了构建工具和项目所需的依赖包。常见依赖包括:

  • C/C++ 编译器(如 gcc、g++);
  • make 工具;
  • Autotools 工具链(部分项目需要);
  • 项目本身依赖的开发库(如 zlib、openssl 等)。

以 Debian / Ubuntu 为例,可以先装好基础编译工具:

1
2
sudo apt update
sudo apt install build-essential

其他常见依赖(按需安装):

1
sudo apt install pkg-config autoconf automake libssl-dev zlib1g-dev

建议查看源码包内的 README 文件,看是否有明确的依赖要求。

1. 上传源码并解压

.tar.gz 格式的源码上传到服务器之后,先进行解压:

1
tar -zxvf xxxxx.tar.gz

解压后会生成一个以项目名命名的目录,里面通常包含源码、构建脚本、文档等内容。

2. 进入源码目录

1
cd xxxxx

3. 运行 configure 配置安装参数

使用 configure 脚本进行系统环境检查,并指定安装路径:

1
./configure --prefix=/usr/local/xxxxx

说明:

  • --prefix:用于指定最终安装目录,默认是 /usr/local
  • ./configure 会检查编译所需的库、头文件等系统信息,并生成 Makefile

常用可选参数(根据项目而定):

1
2
3
4
5
./configure \
--prefix=/usr/local/xxxxx \
--enable-shared \
--disable-static \
CC=gcc CXX=g++

查看所有可用选项:

1
./configure --help

4. 编译源码

1
make

推荐使用多核并行编译,加快速度:

1
make -j$(nproc)  # 自动检测 CPU 核心数

这一阶段会根据 Makefile,将源码编译成可执行文件或库文件。

5. 安装程序

1
sudo make install

这一步会将程序文件安装到第三步配置的 --prefix 目录下,例如 /usr/local/xxxxx/binlibinclude 等。

6. 配置环境变量

如果需要程序命令全局可用,同时程序安装目录不在系统 PATH 中,需要手动添加:

1
export PATH=/usr/local/xxxxx/bin:$PATH

若想永久生效,可添加到 .bashrc / .zshrc

1
2
echo 'export PATH=/usr/local/xxxxx/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

7. 验证是否安装成功

通过如下方式验证程序是否可用:

1
2
which xxx
xxx --version

如果能输出正确路径或版本号,说明安装成功。

8. 清理编译过程中产生的临时文件

安装完成后,建议清理构建中生成的中间文件,节省空间、保持源码目录干净。

1
2
make clean
make distclean

区别如下:

make clean

  • 删除中间编译产物,如 .o 文件、可执行文件;
  • 保留配置生成的 Makefile 文件等。

make distclean

  • make clean 相比更彻底,会把 configure 生成的所有文件也删除掉;
  • 相当于回到解压之后的源码初始状态。

9. 卸载程序

有些项目支持通过 make uninstall 命令卸载:

1
sudo make uninstall

前提是你还保留了原来的编译目录和 Makefile 文件。

如果不支持,就只能手动删除安装路径下的文件(比如 /usr/local/xxxxx 目录)。

完整流程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 安装依赖
sudo apt update
sudo apt install build-essential

# 解压并进入源码目录
tar -zxvf xxx.tar.gz
cd xxx

# 配置
./configure --prefix=/usr/local/xxx

# 编译(并行推荐)
make -j$(nproc)

# 安装
sudo make install

# 配置 PATH(如果需要)
export PATH=/usr/local/xxx/bin:$PATH

# 验证
which xxx
xxx --version

# 清理构建文件
make clean
make distclean

# 可选:卸载(如果支持)
sudo make uninstall

Linux 编译源码安装程序
https://blog.pangcy.cn/2021/08/31/服务器运维/Linux/Linux 编译源码安装程序/
作者
子洋
发布于
2021年8月31日
许可协议