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



本文转自qw87112 51CTO博客,原文链接:http://blog.51cto.com/tchuairen/1405277

相关文章
|
8月前
|
安全 Linux iOS开发
Binary Ninja 5.1.8104 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
Binary Ninja 5.1.8104 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
726 53
Binary Ninja 5.1.8104 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
|
Oracle 关系型数据库 MySQL
Oracle Linux 8.10 编译安装sysbench
Oracle Linux 8.10 编译安装sysbench
484 34
|
8月前
|
Linux API iOS开发
Binary Ninja 4.2.6455 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
Binary Ninja 4.2.6455 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
613 14
Binary Ninja 4.2.6455 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
|
9月前
|
SQL Linux 调度
Timeplus Enterprise 3.0 (Linux, macOS) - 流处理平台
Timeplus Enterprise 3.0 (Linux, macOS) - 流处理平台
185 2
Timeplus Enterprise 3.0 (Linux, macOS) - 流处理平台
|
9月前
|
安全 Linux API
JEB Pro v5.31 (macOS, Linux, Windows) - 逆向工程平台
JEB Pro v5.31 (macOS, Linux, Windows) - 逆向工程平台
277 0
|
Java 关系型数据库 MySQL
在Linux平台上进行JDK、Tomcat、MySQL的安装并部署后端项目
现在,你可以通过访问http://Your_IP:Tomcat_Port/Your_Project访问你的项目了。如果一切顺利,你将看到那绚烂的胜利之光照耀在你的项目之上!
580 41
|
12月前
|
Ubuntu Linux Shell
Linux环境下VSCode快速安装终极指南:debian/ubuntu/linux平台通用
以上就是在Linux环境下安装VSCode的终极指南,抛开繁复的专业词汇,以平易近人的文字、形象生动的比喻让你轻松学会这一过程。别忘了,你的小伙伴VSCode已经在应用菜单里等你了!
3245 23
|
安全 前端开发 Linux
Immunity CANVAS Professional 7.27 (macOS, Linux, Windows) - 渗透测试和漏洞利用平台
Immunity CANVAS Professional 7.27 (macOS, Linux, Windows) - 渗透测试和漏洞利用平台
335 3
Immunity CANVAS Professional 7.27 (macOS, Linux, Windows) - 渗透测试和漏洞利用平台
|
Unix Linux iOS开发
Splunk Enterprise 10.0.0 (macOS, Linux, Windows) - 搜索、分析和可视化,数据全面洞察平台
Splunk Enterprise 10.0.0 (macOS, Linux, Windows) - 搜索、分析和可视化,数据全面洞察平台
276 0
|
12月前
|
Dart Linux iOS开发
JEB Pro v5.30 (macOS, Linux, Windows) - 逆向工程平台
JEB Pro v5.30 (macOS, Linux, Windows) - 逆向工程平台
1138 0
JEB Pro v5.30 (macOS, Linux, Windows) - 逆向工程平台