linux yum 源码安装,Linux安装yum源码包及相关操作

一、使用场景

很多时候下载的rpm包所提供的功能并不符合我们的需要,或者只需要使用其中一部分功能的时候,就需要进行源码安装。源码安装前,首先使用 yum grouplist 确认 Development tools 和 Server Platform Development这两个组已经被安装。

spacer.gif552b4649f743bba5af3edf7a88dac2fe.png

二、相关知识详解

1.make工具

所有的程序都需要gcc编译后才能执行,项目的开发者为了简化使用者的编译步骤,当时用make工具后,make会调用gcc对程序进行编译,所以说make是一种项目编译工具,而编译本身需要开发环境,所以就能解释为什么必须存在Development tools 和 Server Platform Development这两个组,同时编译过程还需要能够调用相关程序的头文件和库文件,库文件的表现形式为xxxx-devl.rpm。

2.Makefile文件的产生过程

打开源码包我们会看到一个可执行文件configure,同时包内还有Makefile.in文件,通过他们可以产生Makefile文件,下面就这个过程做详细描述。

spacer.gifd6a35140c84f8519cc181b2b6d629bd1.png

(1)生成configure脚本

项目的制作者会使用一个autoconf的开发工具,使用这个开发工具对项目中的每一个原代码执行后会生成一个configure脚本,使用该脚本来检查编译环境是否满足需求、定义编译时启用哪些功能和安装路径等。

(2)生成Makefile.in文件

Makefile.in文件则是通过automake工具生成的,结合configure脚本生成Makefile文件。

(3)生成Makefile文件

当执行configure脚本后,configure脚本会根据Makefile.in文件产生Makefile文件,而定义编译时启用哪些功能和安装路径等也会保存在该文件中,该文件也是使用make命令时的配置文件。

三、安装步骤

我们以安装httpd-2.2.31为例,进行说明。详细的步骤为:

1.下载源码包后使用 tar -xf httpd-2.2.31.tar.gz 解压

spacer.gifc5f641aca45cead59528a5669a297483.png

2.使用less INSTALL 查看安装步骤(每个程序的说明文件不一样,有的是READ,有的是INSTALL)

spacer.gifc0dc7f76f5a48c17cc48e12cf0bd88fe.png

3.使用 ./configure --help 查看configure脚本使用帮助,根据情况删减功能,此处以自定义安装和配置文件位置为例,使用./configure --prefix=/usr/local/apache --sysconfdir=/etc/apache 检查环境并生成Makefile文件

spacer.gif99121f60dce764b5e26c9269483bcf19.png

4.待检查完确认没有报错后,输入make安装,此时的make会调用gcc进行编译

spacer.gif43a4e85bdb520f2b0a77555dbe2208bc.png

5.然后使用 make install 命令安装,等待安装结束

spacer.gif5e0f060bd415099ad4681b77b2e3d32a.png

6.在/usr/local/apache/bin路径下,使用 apachectl start 启动服务

spacer.gifed74ccd459bab43a7740390810d939c9.png

7.使用 netstat -nlt 查看80端口是否已侦听

spacer.gif23e3d2f15ca3ba836c7175bdda1c51b1.png

8.打开浏览器,输入服务器地址看到显示It works!配置完成

spacer.gifbf39b4ed880604aeabd28f42b00a6813.png

四、后续步骤

安装完源码包服务正常启动后工作并没有结束,我们知道一个程序大体上可以分为:二进制程序、头文件、库文件、man帮助手册四部分组成,而我们在安装时自定义的路径系统未必能自动识别,所以就需要做输出重定向。

1.二进制程序

使用 vim /etc/profile.d/apache.sh 将/usr/local/apache/bin,/usr/local/apache/sbin,添加进默认路径并对子进程生效

spacer.gifadf3d7306b8c3b0de4356fe3b6c33dc7.png

然后重启服务器或者使用 source /etc/profile.d/apache.sh 重读配置文件,确认/usr/local/apache/bin,/usr/local/apache/sbin已经成功添加到PATH变量中

spacer.gif78cd534b4e7c9321f9aeaccc2208a756.png

2.头文件输出

至于为什么要输出头文件,因为在对该程序做二次开发时,需要进行调用,此时的调用不同于运行时调用程序的二进制代码(ABI),开发时的调用则是调用该程序头文件的包含,而头文件中包括了函数的入口及指针的类型等信息(API)。

使用 ln -sv /usr/local/apache/include /usr/include/apache 创建一个软连接将apache的头文件跳转至/usr/local/apache/include

spacer.gif580f9b5b1fc27679f9ff2f29c6b09964.png

3.库文件数出

vim /etc/ld.so.conf.d/apache.conf,创建一个apache.comf文件 ,/usr/local/apache/lib 把库文件路径写进去,如果有多个库,一行一个

spacer.gif918595d461b03de61b6dc766439e46b3.png

而后使用 ldconfig -v 查看库文件路径是否正确识别

spacer.gif1ba44972116776a714b56b681a16ab9f.png

4.man文档输出

使用 vim /etc/man.config 在MANPATH路径下添加apache的man文件路径,至此,操作全部完成

spacer.gife548c0929b612b345888b82639c5c5e7.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值