下面一起来学习如何在Linux系统上进行源码编译安装
这里我们以web(http)服务源码编译安装来做个简单的解释:
我们使用RPM包来安装web服务,当作者在编译源代码程序的时候,有可能绑定了许多功能,而我们所需要的只是其中几个功能,甚至软件包里面并没有我们所需要的
功能时,那怎么办呢?而且编译时被绑定的其它功能也一并安装到Linux主机上,这样就可能造成一些安全隐患。为什么这么讲呢?因为RPM软件包的更新并没有源代码
更新快(例如:在原有的源代码上添加了某些功能,修复了某些运行所产生的BUG等等)。
所以我们还是建议以源码安装软件,这样我们需要哪些功能就安装哪些功能,不需要的一律关闭,而且我们的硬件平台还能充分发挥其作用。
一起学习下,如何实现编译安装WEB服务器(这里只是简单实现访问)
一、安装前的配置工作(2.6.18-308.el5)
1、安装以下开发所用到的rpm包组
Development Libraries
Development Tools
Legacy Software Development
X Software Development
# yum grouplist 查看当前系统所安装以及有效的组软件包
For example:
# yum -y groupinstall "Development Libraries""Development Tools""Legacy Software Development""X Software Development"
二、在编译安装web服务,得首先确定系统是否安装了web相关的rpm软件包
# rpm -q httpd
三、下载 httpd-2.2.16.tar.bz2源码软件包()
# tar xf httpd-2.2.16.tar.bz2
# cd httpd-2.2.16
# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd
四、执行编译(项目管理工具)
# make ;make install 能把我们的c程序多个不同的项目文件做成一个项目,并且把这个项目编译过程通过一个配置文件。makfile定义了make(gcc,g++)按何种次序去编译这些
源程序文件中的源程序。
五、下面我们就进入我们的安装目录/usr/local/apache目录下看看都生成了哪些文件
[root@station16 ]# cd /usr/local/apache ; ls
bin build cgi-bin error htdocs icons include(头文件) lib(库文件) logs man(帮助文件) manual modules
六、输出库文件
默认情况下,系统搜索库文件的路径/lib, /usr/lib; 要增添额外搜寻路径:
在/etc/ld.so.conf.d/中创建以.conf为后缀名的文件,而后把要增添/usr/local/apache/lib写至此文件中;
# ldconfig -v 通知系统重新搜寻库文件,并显示过程信息
可以使用此命令查看加载的关于http库文件
# ldconfig -v | grep apr
七、输出头文件
默认:/usr/include
增添头文件搜寻路径,使用链接进行:
# ln -s /usr/local/apache/include /usr/include/httpd 给目录创建软连接
八、输出帮助信息
man文件路径:安装在--prefix指定的目录下的man目录;/usr/share/man
1、man -M /PATH/TO/MAN_DIR COMMAND 立即生效,重启则无效
2、在/etc/man.config中添加一条MANPATH
MANPATH /usr/local/apache/man
这样我们就可以使用man文档来查看相关的二进制命令的使用啦
九、启动http服务,并查看端口
十、更改下测试网页内容:
# cd /usr/local/apache/htdocs
# vim index.html
<html><body><h2>This is text page</h1></body></html>
<html><body><h1>Welcome to </h1></body></html>
:wq!
然后我们用windows主机来测试,用IE浏览器测试默认网页地址即可测试
以上内容难免会出现配置错误以及对概念的理解,有发现的朋友及时提出,以免其它朋友理解错误...