Linux平台编译安装源码包,制作rpm二进制安装包。

送给读者们一句话:

Only those who constantly retool themselves stand a chance of staying employed in the years ahead
(只有那些不断充实自己的人,才有机会在往后的日子里持续地被雇佣。)

        好,进入今天的正题:

        在了解rpm和yum后,基本可以满足大部分的程序安装了,但是有些源程序还是要自己编译安装的,在本机平台编译的程序,能更好的兼容机器的CPU,发挥更好的性能。

下面我们让一起来编译安装一个httpd服务:

当然在编译之前,请确保系统已经安装了开发包组件。如果没有安装就用yum安装即可。

# yum groupinstall -y 

'Desktop Platform Development' 'Development tools' 'Server Platform Development'

1.解压httpd源程序包

# tar xvf httpd-2.4.6.tar.bz2 

# cd httpd-2.4.6

# ls

可以看到以下文件:

wKioL1NhoXij9WtMAAGf3uLS0XU806.jpg

configure 是一个编译环境检测和让用户定制编译配置的脚本,它结合Makefile.in 创建Makefile文件。

configure --help 可查看配置的帮助信息。

直接执行# ./configure --prefix=/usr/local/apache

如果这里有报错说没有找到apr的话,就要先用以下步骤安装apr和apr-util:

# tar -xvf apr-1.4.6.tar.bz2 
# ls
# cd apr-1.4.6
# ls
# ./configure 
# make
# make install
# cd ..
# ls
# tar -xvf apr-util-1.5.2.tar.bz2 
# cd apr-util-1.5.2
# ls
# ./configure --with-apr=/usr/local/apr/
# make
# make install

完成这些回到httpd-2.4.6目录再次执行:# ./configure --prefix=/usr/local/apache

wKioL1NhrHjheST4AAI7mnKKqfA706.jpg

检测完成以后,看下Makefile是否已创建。

wKiom1NhrWeAdc4zAAMgSisDIhI811.jpg

文件已经有了吧,现在可以执行make了:

# make

完成了,没有报错,执行make install

wKioL1NhstyDG_YvAATUztaPEvo507.jpg

# make install

安装完成!

wKiom1Nhs_ugu0EVAAJZvkGJa5w782.jpg

#cd /usr/local/apache

# ls

wKioL1NhtHijjeJ7AABzMScHBoQ230.jpg

程序就安装在这里了。

接下来要做的是,包含头文件。

# ln -sv /usr/local/apache/include/ /usr/include/httpd

包含man文档

# vim /etc/man.config

加上一行MANPATH /usr/local/apache/man

wKiom1NhuEjid9-YAAGF3Pr5Itc038.jpg

修改PATH环境变量:

# vim /etc/profile.d/apache.sh

写入export PATH=/usr/local/apache/bin:$PATH

wKiom1NhuwaQuWqAAADTxUsORAg678.jpg

这步也成功了,看下能不能启动程序。

# apachectl start

wKioL1NhvFqwEdkcAAN9NaBfemM787.jpg

看到没,80端口已经处于LISTEN(侦听状态)

用本机访问试试

wKiom1NhvW-DaJkJAAEZAgzfW5M389.jpg

也可以成功访问了,编译安装apache服务完成。

任务还没完,接下来学习如何将一个rpm源程序包,编译打包成一个可以直接使用的rpm二进制包。

先安装,注意这种是rpm源程序包,安装只是把文件解开成源程序和SPEC文件。

# rpm -ivh nginx-1.0.5-1.fc16.src.rpm

wKiom1Nh3rXAlWf2AAGXQsngc2Q100.jpg

看报一大堆错咋回事,因为没有mockbuild这个用户,useradd 创建即可。

# useradd mockbuild

# rpm -ivh nginx-1.0.5-1.fc16.src.rpm

没报错了吧!wKioL1Nh3y3jbJ7_AADQnEUHicY695.jpg

# cd ~/rpmbuild/SPECS/

里面有个nginx.spec的文件就参照他进行编译打包。

# rpmbuild -ba nginx.spec

wKioL1Nh4PHz0DkgAAEyfaCcd38316.jpg

 看又报错了,不过没事,把这些需要的包装上就好。

yum install pcre-devel zlib-devel openssl-devel libxslt-devel GeoIP-devel gd-devel -y

安装完成了,我们再试试。

# rpmbuild -ba nginx.spec

这次就成功执行了,等编译完成,我们cd ../PRMS/i686就可以看到,制作好的程序包了。

wKiom1Nh4xHg074IAAGFjqMtdCI876.jpg

# cd ../RPMS/i686/

# ls

wKioL1Nh45yw5LeVAACeb7gzGUs610.jpg

看到了没,这就是我们刚刚制作好的包,直接用rpm命令安装。

# rpm -ivh nginx-1.0.5-1.el6.i686.rpm 

wKioL1Nh5FaxsvaNAADPa0S09pA037.jpg

安装成功,启动下试试?

# /etc/init.d/nginx start

wKioL1Nh5Zbj8PcmAAIoSMWm9Cc056.jpg

启动成功!!!

用本机访问下:

wKiom1Nh5gWzjC0gAAOyetCBYsE365.jpg

哈哈,忙活了我一上午,终于圆满完成。  ――以上内容纯笔者手打,亲测实验截图。

有问题欢迎与我交流QQ:1183710107

本文出自 “突破舒适区” 博客,转载请与作者联系!

你可能感兴趣的:(linux,编译安装,rpm源码包,源程序编译)