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

相关文章
|
28天前
|
存储 Shell Linux
【Shell 命令集合 系统设置 】Linux 软件包管理工具 rpm命令 使用指南
【Shell 命令集合 系统设置 】Linux 软件包管理工具 rpm命令 使用指南
46 0
|
2月前
|
Java Linux Shell
linux自动部署jar包,注册系统服务(基于Centos7)
linux自动部署jar包,注册系统服务(基于Centos7)
81 0
|
1月前
|
分布式计算 关系型数据库 MySQL
Sqoop【部署 01】CentOS Linux release 7.5 安装配置 sqoop-1.4.7 解决警告并验证(附Sqoop1+Sqoop2最新版安装包+MySQL驱动包资源)
【2月更文挑战第8天】Sqoop CentOS Linux release 7.5 安装配置 sqoop-1.4.7 解决警告并验证(附Sqoop1+Sqoop2最新版安装包+MySQL驱动包资源)
93 1
|
10天前
|
关系型数据库 Linux PHP
linux 编译安装php7.2 实测!!
linux 编译安装php7.2 实测!!
10 0
|
29天前
|
Java Linux 开发工具
Linux 下tar.bz2包的安装方法
Linux 下tar.bz2包的安装方法
31 0
|
2月前
|
Java Linux 开发工具
Azkaban【部署 01】Linux环境 CentOS Linux release 7.5.1804安装配置azkaban-3.70.0编译阶段(附安装包及gradle-4.6资源)
【2月更文挑战第4天】Linux环境 CentOS Linux release 7.5.1804安装配置azkaban-3.70.0编译阶段(附安装包及gradle-4.6资源)
30 1
|
3月前
|
算法 搜索推荐 Linux
【Linux】源代码包的安装
【Linux】源代码包的安装
45 0
|
3月前
|
算法 Linux 应用服务中间件
【Linux】RPM包管理工具
【Linux】RPM包管理工具
36 0
|
3月前
|
存储 算法 Linux
【Linux】Linux上的绿色免安装软件包
【Linux】Linux上的绿色免安装软件包
62 0
|
3月前
|
算法 Linux 开发者
【Linux】深入了解 RPM 软件包管理
【Linux】深入了解 RPM 软件包管理
56 0