【Linux知识】Linux上从源码编译到软件安装全过程详细说明

文章目录

      • [**1. 下载源码**](#1. 下载源码)
        • [**(1) 使用 `wget` 或 `curl` 下载**](#(1) 使用 wget 或 curl 下载)
        • [**(2) 解压源码**](#(2) 解压源码)
      • [**2. 配置编译环境**](#2. 配置编译环境)
      • [**3. 编译源码**](#3. 编译源码)
        • [**(1) 执行 `make`**](#(1) 执行 make)
      • [**4. 安装软件**](#4. 安装软件)
        • [**(1) 执行 `make install`**](#(1) 执行 make install)
        • [**(2) 自定义安装路径**](#(2) 自定义安装路径)
      • [**5. 验证安装**](#5. 验证安装)
        • [**(1) 检查版本信息**](#(1) 检查版本信息)
        • [**(2) 查看安装路径**](#(2) 查看安装路径)
      • [**6. 清理编译文件**](#6. 清理编译文件)
        • [**(1) 删除临时文件**](#(1) 删除临时文件)
        • [**(2) 删除安装文件**](#(2) 删除安装文件)
      • [**7. 示例:从源码编译安装 Nginx**](#7. 示例:从源码编译安装 Nginx)
        • [**(1) 下载并解压**](#(1) 下载并解压)
        • [**(2) 配置编译环境**](#(2) 配置编译环境)
        • [**(3) 编译与安装**](#(3) 编译与安装)
        • [**(4) 启动 Nginx**](#(4) 启动 Nginx)

在 Linux 系统中,从源码编译并安装软件是一个常见的操作。以下是详细的命令行步骤以及参数说明。

1. 下载源码

(1) 使用 wget 或 curl 下载
bash 复制代码
wget http://example.com/software-1.0.tar.gz  # 使用 wget 下载
# 或者
curl -O http://example.com/software-1.0.tar.gz  # 使用 curl 下载
  • wget 和 curl 是常用的下载工具。
  • -O 参数表示将文件保存为默认名称。
(2) 解压源码

根据压缩包的格式选择解压命令:

bash 复制代码
tar -zxvf software-1.0.tar.gz  # 解压 .tar.gz 文件
tar -jxvf software-1.0.tar.bz2  # 解压 .tar.bz2 文件
unzip software-1.0.zip  # 解压 .zip 文件
  • tar -zxvf:解压 .tar.gz 文件。
  • tar -jxvf:解压 .tar.bz2 文件。
  • unzip:解压 .zip 文件。

2. 配置编译环境

进入解压后的源码目录:

bash 复制代码
cd software-1.0
(1) 执行 ./configure 脚本
bash 复制代码
./configure [选项]
常见参数说明:
  • --prefix=PATH:指定安装路径,默认为 /usr/local。

    bash 复制代码
    ./configure --prefix=/opt/software
  • --enable-FEATURE:启用特定功能模块。

    bash 复制代码
    ./configure --enable-feature-name
  • --disable-FEATURE:禁用特定功能模块。

    bash 复制代码
    ./configure --disable-feature-name
  • --with-PACKAGE=DIR:指定外部依赖库的路径。

    bash 复制代码
    ./configure --with-openssl=/usr/local/openssl
  • --without-PACKAGE:不使用某个外部依赖库。

    bash 复制代码
    ./configure --without-openssl
  • --help:查看所有可用选项。

    bash 复制代码
    ./configure --help

3. 编译源码

(1) 执行 make
bash 复制代码
make
  • make 会根据 Makefile 文件中的规则编译源码。

  • 如果需要加速编译,可以使用 -j 参数指定并发线程数(通常为 CPU 核心数)。

    bash 复制代码
    make -j4  # 使用 4 个线程并发编译

4. 安装软件

(1) 执行 make install
bash 复制代码
sudo make install
  • make install 会将编译好的文件复制到指定的安装路径。
  • 需要 sudo 权限才能写入系统目录(如 /usr/local)。
(2) 自定义安装路径

如果在 ./configure 阶段指定了 --prefix 参数,则安装路径会被设置为该值。例如:

bash 复制代码
./configure --prefix=/opt/software
sudo make install

安装后,可执行文件通常位于 bin 子目录下,配置文件位于 etc 子目录下。

5. 验证安装

(1) 检查版本信息

运行以下命令检查软件是否成功安装:

bash 复制代码
software --version  # 替换为实际软件名称
(2) 查看安装路径

可以通过 which 或 whereis 命令查找可执行文件的位置:

bash 复制代码
which software  # 查找可执行文件路径
whereis software  # 查找可执行文件、源码和手册页

6. 清理编译文件

(1) 删除临时文件
bash 复制代码
make clean  # 删除编译过程中生成的临时文件
make distclean  # 删除所有生成的文件,包括配置文件
(2) 删除安装文件

如果需要卸载软件,可以手动删除安装路径下的文件。例如:

bash 复制代码
sudo rm -rf /opt/software  # 替换为实际安装路径

7. 示例:从源码编译安装 Nginx

以下是一个完整的 Nginx 编译安装示例:

(1) 下载并解压
bash 复制代码
wget http://nginx.org/download/nginx-1.25.3.tar.gz
tar -zxvf nginx-1.25.3.tar.gz
cd nginx-1.25.3
(2) 配置编译环境
bash 复制代码
./configure \
--prefix=/opt/nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-pcre=/path/to/pcre-source
  • --prefix=/opt/nginx:指定安装路径。
  • --with-http_ssl_module:启用 HTTPS 支持。
  • --with-http_v2_module:启用 HTTP/2 支持。
  • --with-pcre:指定 PCRE 库路径。
(3) 编译与安装
bash 复制代码
make -j4
sudo make install
(4) 启动 Nginx
bash 复制代码
/opt/nginx/sbin/nginx

通过以上步骤,你可以从源码编译并安装任何支持 Makefile 的软件。如果有特殊需求,可以根据软件的文档调整配置参数。

相关推荐
律宏阔3 小时前
WSL Docker 端口明明空闲,但就是绑不上端口
linux·windows
律宏阔3 小时前
WSL 突然断网,无法 ping 内网或外网
linux·windows
穷人小水滴3 小时前
用容器编译 VirtualBox 虚拟机软件 (ArchLinux, podman)
linux·容器·virtualbox
乱码三千3 小时前
如何优雅地直连无公网 IP 的远程 GPU 服务器
linux·人工智能·程序员
yunwei373 小时前
使用 eBPF 跟踪 Nginx 请求
linux·后端·性能优化
yunwei373 小时前
使用 eBPF 跟踪 MySQL 查询
linux·后端·性能优化
yunwei374 小时前
eBPF 示例教程:使用 XDP 捕获 TCP 信息
linux·后端·性能优化
judezh4 小时前
api 容器一直 unhealthy?我把一个 Agent 运行时的健康检查逐条拆了,查出四个问题
运维·docker
GeW4 小时前
制造业高端化,为什么必须重估Linux和数据库?
linux
百万蹄蹄向前冲4 小时前
双端同步!云服务器装最新Node.js v26.10全过程追踪
服务器·人工智能·node.js