Linux 如何安装程序的源代码软件包/源码程序包/源码包?

安装一个源码包,需要我们自己把源代码编译成二进制的可执行文件。如果你读得懂这些源代码,那么你就可以去修改这些源代码自定义功能,然后再去编译成你想要的。使用源码包的好处除了可以自己修改源代码外还可以定制额外的功能,因为源码包在编译的时候是可以附加额外的选项的。

源码包的编译用到了 Linux 系统里的编译器,常见的源码包一般都是用 C 语言开发的。Linux 上的 C 语言编译器叫做 gcc,利用它就可以把C 语言变成可执行的二进制文件。所以如果你的机器上没有安装 gcc 就没有办法去编译源码。你可以使用 yum install -y gcc 来完成安装。

一、安装源码包的三个步骤

(一)执行命令 configure,进行配置/检测

源码程序包解压后,进入软件包根目录下,然后执行命令 ./configure,在这一步可以定制功能,加上相应的选项即可,有哪些选项可以选择,你可以通过 ./configure --help 命令来查看。在这一步会自动检测你的 Linux 系统和相关的套件是否有编译该源码包时需要的库,因为一旦缺少某个库就不能完成编译。只有检测通过后会生成一个 Makefile 文件。

(二)执行命令 make,编译源码

make 使用这个命令会根据 Makefile 文件中预设的参数进行编译,这一步其实就是 gcc 在工作了。

(三)执行命令 make install,安装软件

执行命令 make install 开始安装步骤,这是一个生成相关的软件存放目录和配置文件的过程。

上面介绍的三步并不是安装任何源码包软件都一样的,也就是说源码包的安装并没有标准的安装步骤。具体安装步骤,你可以拿到源码包解压后,进入到目录找相关的帮助文档查看,帮助文档通常会以 INSTALL 或者 README 命名。所以,你一定要去看一下。

二、源码包安装示例

下面笔者会编译安装一个源码包来帮你更深刻的去理解如何安装源码包。

(一)下载源码包

在这里插入图片描述
这里要提一下,建议以后你把所有下载的源码包放到 /usr/local/src/ 目录下,这个并不是必须的,只是一个约定。方便你和你的同事将来更好的去运维这台服务器。wget 即为下载的命令,后边跟源码包的下载地址。该地址为笔者从网上找的一个 apache 的下载地址。

(二)解压源码包

在这里插入图片描述
一般的源码包都是一个压缩包。

(三)配置相关的选项,并生成 Makefile

在这里插入图片描述
使用 ./config --help 可以查看可用的选项。一般常用的有 --prefix=PREFIX 这个选项的意思是定义软件包安装到哪里。到这里,笔者再提一个小小的约定,通常源码包都是安装在 /usr/local/ 目录下的。比如,我们把 apache 安装在 /usr/local/apache2 下,那么这里就应该这样写 --prefix=/usr/local/apache2。其他还有好多选项,如果你有耐心你可以挨个去看一看都有什么作用。
在这里插入图片描述

笔者在这里只定义了 apache 的安装目录,其他都是默认。回车后,开始执行 check 操作。
在这里插入图片描述

等 check 结束后生成了 Makefile 文件。

在这里插入图片描述

除了查看有没有生成 Makefile 文件来判定有没有完成 ./config 的操作外,还可以通过这个命令 echo $? 来判定,如果是 0,则表示上一步操作成功完成,否则就是没有成功。

在这里插入图片描述

(四)进行编译

在这里插入图片描述
这一步操作,就是把源代码编译成二进制的可执行文件,这一步也是最漫长的一步,编译时间的长短取决于源代码的多少和机器配置。

执行命令 echo $? 确认编译操作是否成功。
在这里插入图片描述

(五)进行安装

在这里插入图片描述

make install 会创建相应的目录以及文件。当完成安装后,会在 /usr/local 目录下多了一个 apache2 目录,这就是 apache 所安装的目录了。

在这里插入图片描述

其实在日常的源码安装工作中,并不是每个都像笔者这样顺利完成安装的,遇到错误不能完成安装的情况是很多的。通常都是因为缺少某一个库文件导致的。这就需要你仔细琢磨报错信息或者查看当前目录下的 config.log 去得到相关的信息。另外,如果自己不能解决那就去网上google 一下吧,通常你会得到你想要的答案。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值