送给读者们一句话:
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
可以看到以下文件:
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
检测完成以后,看下Makefile是否已创建。
文件已经有了吧,现在可以执行make了:
# make
完成了,没有报错,执行make install
# make install
安装完成!
#cd /usr/local/apache
# ls
程序就安装在这里了。
接下来要做的是,包含头文件。
# ln -sv /usr/local/apache/include/ /usr/include/httpd
包含man文档
# vim /etc/man.config
加上一行MANPATH /usr/local/apache/man
修改PATH环境变量:
# vim /etc/profile.d/apache.sh
写入export PATH=/usr/local/apache/bin:$PATH
这步也成功了,看下能不能启动程序。
# apachectl start
看到没,80端口已经处于LISTEN(侦听状态)
用本机访问试试
也可以成功访问了,编译安装apache服务完成。
任务还没完,接下来学习如何将一个rpm源程序包,编译打包成一个可以直接使用的rpm二进制包。
先安装,注意这种是rpm源程序包,安装只是把文件解开成源程序和SPEC文件。
# rpm -ivh nginx-1.0.5-1.fc16.src.rpm
看报一大堆错咋回事,因为没有mockbuild这个用户,useradd 创建即可。
# useradd mockbuild
# rpm -ivh nginx-1.0.5-1.fc16.src.rpm
没报错了吧!
# cd ~/rpmbuild/SPECS/
里面有个nginx.spec的文件就参照他进行编译打包。
# rpmbuild -ba nginx.spec
看又报错了,不过没事,把这些需要的包装上就好。
yum install pcre-devel zlib-devel openssl-devel libxslt-devel GeoIP-devel gd-devel -y
安装完成了,我们再试试。
# rpmbuild -ba nginx.spec
这次就成功执行了,等编译完成,我们cd ../PRMS/i686就可以看到,制作好的程序包了。
# cd ../RPMS/i686/
# ls
看到了没,这就是我们刚刚制作好的包,直接用rpm命令安装。
# rpm -ivh nginx-1.0.5-1.el6.i686.rpm
安装成功,启动下试试?
# /etc/init.d/nginx start
启动成功!!!
用本机访问下:
哈哈,忙活了我一上午,终于圆满完成。 ――以上内容纯笔者手打,亲测实验截图。
有问题欢迎与我交流QQ:1183710107
本文出自 “突破舒适区” 博客,转载请与作者联系!