首页/新闻资讯/正文详情

Linux源码编译安装教程:configure、make、make install全流程

发布时间:2026/9/27 22:54:57 来源:云帆数科 栏目:资讯中心
Linux源码编译安装教程:configure、make、make install全流程
仓库里没有的版本号、需要打开某个特殊编译选项、官方只给了 tar.gz 源码包——碰到这些情况就得走源码编译这条路。./configure、make、make install三步是主角但每一步到底在干嘛、缺依赖报什么错、装完怎么卸载这篇按真实流程走一遍。一、什么时候才需要源码编译包管理器能装就尽量别编译。源码编译适合这几种情况仓库版本太旧软件要新版本需要打开仓库包没编进去的功能官方根本没出 .deb/.rpm只给源码想把软件装到自定义路径。代价是编译完的软件包管理器不认识以后升级、卸载都得手动来。二、整体流程一张图下载源码包 → 解压 → ./configure → make → make install 校验依赖 生成Makefile 编译 安装到系统每一步都可能失败定位问题时顺着这个顺序往上找。三、第一步下载并解压以一个典型的 autoconf 项目为例wgethttps://example.com/app-1.2.0.tar.gztar-xzfapp-1.2.0.tar.gzcdapp-1.2.0解压后先看一眼 README 和 INSTALL 文件作者写的编译说明往往比网上教程准。四、第二步./configure它在干嘛configure是一个 shell 脚本跑一遍它会自动探测编译器在哪、系统有没有 zlib、头文件路径对不对最后根据探测结果生成Makefile。常用选项选项作用--prefix路径指定安装位置默认/usr/local--enable-功能打开某个功能--disable-功能关掉某个功能--with-库路径指定依赖库位置--help列出所有可用选项示例与预期输出./configure--prefix/usr/local/app --enable-feature-xxx预期输出节选checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gcc... gcc checking whether the C compiler works... yes checking for zlib.h... yes checking for library containing deflate... -lz configure: creating ./config.status config.status: creating Makefile跑到一半报configure: error: please install xxx就是缺依赖。Ubuntu 上装编译依赖通常是sudo apt install build-essentialRHEL 系是sudo dnf groupinstall Development Tools。五、第三步make它在干嘛make读 Makefile按依赖关系调用 gcc 把 .c 文件编成 .o再链接成可执行文件。这一步不碰系统目录失败了随便重来不影响现有系统。常用选项选项作用make -j$(nproc)多核并行编译速度快很多make clean清空上次编译产物重新编示例与预期输出make-j$(nproc)预期输出节选CC src/main.o CC src/utils.o CC src/config.o LD app报gcc: command not found就是没装编译器报某个.h: No such file or directory就是缺开发头文件Ubuntu 上对应的包通常叫libxxx-devRHEL 上叫xxx-devel。六、第四步make install它在干嘛把编译好的可执行文件、库、配置文件拷到--prefix指定的目录。这一步要写系统目录所以要 sudo。示例与预期输出sudomakeinstall预期输出节选install -m 755 app /usr/local/app/bin/app install -m 644 conf/app.conf /usr/local/app/etc/ installing man page to /usr/local/app/share/man/man1装完后可执行文件在/usr/local/app/bin/。如果敲app提示 command not found是因为/usr/local/app/bin不在PATH里要么用完整路径要么把它加进/etc/profile.d/。七、怎么卸载和清理make install不会把文件登记进 dpkg/rpm 数据库所以 apt、dnf 找不到它。卸载方式看项目回到源码目录跑sudo make uninstall——多数项目支持不支持的就手动删--prefix目录。这也是为什么前面强烈建议用--prefix指定独立路径别用默认/usr否则删的时候会和系统文件混在一起。源码目录本身在编译完可以整个删掉不影响已经 install 的文件。八、知识扩展为什么编译这么吃环境很多人第一次编译卡在缺这个头文件、缺那个库上原因是开发环境和运行环境是分开的。系统里装了zlib运行库.so不代表装了zlib开发包头文件.h和链接文件。运行库只够让现成软件跑起来编译新软件必须有开发包。Ubuntu 上命名规则是libxxx-dev比如zlib1g-devRHEL 系是xxx-devel比如zlib-devel。报错信息里出现zlib.h: No such file or directory照着这个规则找包名基本不会错。另外make -j$(nproc)里的nproc是当前 CPU 核数并行编译能把编译时间从半小时压到几分钟。小机器上别写死-j84 核机器用-j$(nproc)才是通用写法。

相关推荐

第061篇 字节跳动面试官追着问的性能优化题:CDN 加速原理,前端如何与之配合
第061篇 字节跳动面试官追着问的性能优化题:CDN 加速原理,前端如何与之配合

摘要:本篇复盘 字节跳动 前端开发岗位在 性能优化 方向的真实问法,重点拆 8 道题:Web Vitals 如何采集与监控,线上性能怎么度量、CDN 加速原理,前端如何与之配合、依赖注入解决了什么问题,和工厂有何不同。每题按「考察点 → 参考答案 → 代码/实操 → 易错点 → 面试官… · 2026/9/27 22:54:51

东方博宜OJ 1946:高精度减法3 ← 高精度加法+高精度减法
东方博宜OJ 1946:高精度减法3 ← 高精度加法+高精度减法

【题目来源】 https://oj.czos.cn/p/1946 【题目描述】 处理两个高精度数的减法。(1000位内) 【输入格式】 两行,每行一个整数。(可能为负数,负号用“-”表示) 【输出格式】 一个整数,即两个数相减的结果。​​​​… · 2026/9/27 22:54:51

AI 新闻日报 2026-09-25:Agent 虚拟电脑、编码沙盒、四足跑马拉松
AI 新闻日报 2026-09-25:Agent 虚拟电脑、编码沙盒、四足跑马拉松

主题: 国产编码智能体集体转向「终端 沙盒」,具身智能开始拼单位能耗与量产交付 编制时间: 2026-09-25 本期看点: Agent 虚拟电脑、DSec 训练沙盒、RAIBO2 能耗纪录一、要闻速览(Top Stories)序号事件标签… · 2026/9/27 22:54:51

Xcelium混合仿真避坑指南:Verilog/VHDL/SystemC协同实战
Xcelium混合仿真避坑指南:Verilog/VHDL/SystemC协同实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 23:31:21

华为NE05E/NE08E物理层时钟同步配置与故障排查实战
华为NE05E/NE08E物理层时钟同步配置与故障排查实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 23:31:14

自动语音识别(ASR)技术全解析:从原理到工程实践
自动语音识别(ASR)技术全解析:从原理到工程实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 23:31:14

Y7000P Ubuntu 18.04 WiFi驱动修复:AIC8800编译安装教程
Y7000P Ubuntu 18.04 WiFi驱动修复:AIC8800编译安装教程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 23:31:08

5分钟搞定ESP32/ESP8266开发环境:Arduino IDE 2.0国内镜像配置指南
5分钟搞定ESP32/ESP8266开发环境:Arduino IDE 2.0国内镜像配置指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 23:31:08

VSCODE加ESP-IDF配置指南:ESP32开发环境搭建与调试
VSCODE加ESP-IDF配置指南:ESP32开发环境搭建与调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 23:31:02

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码