Linux系统内,安装软件是每位用户都必然要经历的路径。编译安装,也就是configure、make、make install,作为一种经典办法,给予了用户极大的操控权力,能够依据自身的需求来仔细地调整软件。它不只是获取软件最新版本或者特定功能的途径,更是使人们理解软件构建进程、解决依赖问题的实践教课场地。掌握它的流程以及常见问题的应对方式,能够让你在Linux世界里更加灵活自如。

为什么需要从configure开始安装软件

通过软件仓库直接安装二进制包,确实是便捷的,然而,其通常所提供的是标准化的默认配置。一旦你有软件特定功能模块的需求,期望优化性能于适配自身硬件架构,或者软件仓库并未提供你所需的最新版本时,编译安装便属必要的选择。configure脚本恰是此过程的起始点,它承担检测系统环境的职责。

安装空调_linux configure安装_安装微信

运行configure,你能够指定安装路径,启用或者禁用某项功能,链接特定的库文件。比如说,编译Nginx的时候,你能够选择加入第三方模块;编译Python的时候,能够决定是不是包含对SQLite的支持。这种灵活性是二进制包安装没法相比的,它让你对软件的最终形态有着决定权的呢。

configure安装前需要准备什么环境

开启编译启动安装之前,首要的任务在于保证你的系统拥有基本的构建工具,这所涵盖的通常有gcc或者clang编译器、make工具以及autoconf等,于基于Debian/Ubuntu的系统之上,你能够借着安装build-essential元包去获取它们,而在RHEL/CentOS/Fedora之上,就需要安装gccmake以及kernel-devel等包,这可是编译工作的根基呀,有标点符号来终结这叙述。

安装空调_安装微信_linux configure安装

这是更易出错的一个环节,是处理针对软件的依赖,绝大多数软件都依靠于别的库文件,你要事先安装这些开发包,其名称通常是以“-dev”或者“-devel”作为结尾的,如果缺少依赖,configure步骤会清楚地报错,提示你缺失哪一个库或者头文件,依据错误信息,借助包管理器搜索并安装对应的开发包就行。

如何正确运行configure生成Makefile

将源代码获取并解压以后,起初应当认真去把附带的INSTALL或者README文件阅读一番,这里面会对特定的配置选项以及依赖要求做出说明。跟着,进到源代码目录里面,一般惯用的步骤是先要去执行./configure这个命令。它会自行对系统环境展开检查,并且生成一个契合你系统的Makefile 。

安装微信_linux configure安装_安装空调

你能够借助添加参数的方式来对配置予以定制,诸多常见的选项涵盖了,通过--prefix=/usr/local去明确安装路径,利用--enable-feature或者--disable-feature来进行功能的开启或者关闭操作中标linux,建议运用./configure --help命令去查看全部能够使用的选项,在配置进程之中,终端会输出检查的结果,成功之后会生成Makefile,要是出现错误的情况,那么就需要依照提示解决完问题之后再重新进行尝试 。

make编译过程中常见错误如何解决

当执行make命令之际,编译器依照Makefile的规定开始去把源代码转换成为可执行文件,在这个阶段当中,最为常见的错误当属编译错误,像举例来说有语法方面的错误或者是类型不匹配这样的情况red hat linux下载,然而这在官方所发布的稳定版本的源码里面是比较少见的,更具有普遍性的是链接错误为当提示找不到某个函数又或者是库文件 。

一般来讲,这是源于系统装上了该依赖库的运行时文档,然而却没装上相对应的开发头文件包,你得去确认开发包已正确安设好了,且版本达到预定要求。另外一种有可能的情形是库文件路径不在标准探寻包围圈里,到了这个时候能够借由设定 LD_LIBRARY_PATH 环境变量或者去更改 /etc/ld.so.conf 文档来予以搞定。仔仔细细去研读错误资讯,找准具体缺失的项目是重点所在哟!

安装空调_安装微信_linux configure安装

make install时如何管理文件权限与路径

“make install”命令会把编译好程序,将库文件以及文档等进行复制,复制到configure阶段所指定的系统路径里,像“/usr/local”这样的路径。这一步骤一般来讲是需要root权限的,原因在于它会朝着系统目录写入文件。你能够使用“sudo make install”去执行。权限管理是非常关键重要的,错误的权限极有可能导致程序没办法运行或者产生安全风险。

为了让系统维持整洁同时利于管理,强烈建议运用--prefix参数把软件安装至/usr/local或者/opt下面的单独目录。这有益于跟包管理器所安装的软件相互隔离,在未来进行卸载的时候,直接把整个安装目录给删除就行,防止文件零散分布在各处。要是你没有root权限,能够把软件安装至你的家目录当中。

编译安装后如何更新或卸载软件

安装空调_linux configure安装_安装微信

经由编译安装的软件,与包管理器有着不同的管理方式,并非那般自动化。更新软时件需手动去下载新老版本的源代码,还要多次重复配置、编译以及安装的流程。配置时采用相同的--prefix路径,新版本将会把旧版本存在的文件给覆盖了的。但要留意的是linux configure安装,旧版本那些残留的配置文件有可能要手动去清理的。

卸载会比较麻烦些,缘由在于make install进程未记录安装的具体文件清单。最简便直接的办法是,要是你安装时指定了单独的--prefix目录,直接把该目录删掉就行。倘若没指定,那就得在源代码目录执行make uninstall(前提是开发者提供了这条规则)linux configure安装,或者手动依据安装时生成的文件列表去删除,这就需要你在安装前留存好make install的输出日志。

于你对软件进行编译安装之际,碰到的难度最大的问题究竟是依赖冲突呢,还是配置选项的挑选呢?欢迎于评论区内分享你的历经以及解决办法,要是觉得这篇文章对你存有帮助的话,请点赞并且分享给更多有需求的友人。

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复