您的位置:首页 > 编程语言

yum仓库配置源代码编译安装初步总结

2013-07-28 14:22 351 查看
Yum编译安装web源程序并启动服务器软件一、编译安装1.1 Rpm与yum的小小区别在没有配置yum 源的时候,他俩没太大的差别,除了选项的不同。而在给yum配置了yum源之后,他们就有了很大的不同。首先yum仓库就好比一个大卖场,而且是一个专为yum提供的一个免费的卖场,里面的rpm包随便 yum使用,而且它还能解决包与包的依赖关系,将有所依赖的包全部安装,rpm则不能。1.2 搭建yum仓库。创建yum仓库有另种方法,一种是修改/etc/yum.conf文件,另一种是在/etc/yum.repos.d/下创建以.repo结尾的文件。修改/etc/yum.conf[main]cachedir=/var/cache/yum/$basearch/$releaseverkeepcache=0debuglevel=2logfile=/var/log/yum.logexactarch=1obsoletes=1gpgcheck=1plugins=1installonly_limit=3[centos]name=centos 1.0baseurl=http://172.16.0.1/cobbler/ks_mirror/centos-6.4-x86_64/
[main]乃是全局性配置,默认一般不必改动。[centos]就是repolist--yum仓库资源了。可以列出任意多个,多多益善。也可以不必修改yum.conf,另外编译一个yum仓库必须在/etc/yum.repos.d/下创建以.repo结尾的文件才行,这里以yum.repo文件为例[dragon]name=super star 0.1baseurl=http://172.16.0.1/cobbler/ks_mirror/centos-6.4-x86_64/gpgcheck=0enabled=1同样可以实现yum仓库的创建。Rpm包安装一般都不需要编译的,而有些却需要编译,如源代码包。下面通过实例来解决源代码包的安装过程。Apache全球第一的web服务器软件网站,上面提供了大量的源程序包。到Apache网站下载源程序包www.apache.org---->http://apache.fayea.com/apache-mirror/大量的程序包尽情下载。我们下载一个httpd-2.2.25.tar.bz2然后解压,cd到解压后的文件中。

.c文件都是源程序文件,要使服务器软件能用,用gcc编译.c文件。但由于.c文件过多,而编译有必须安装特定的顺序进行,所以gcc显然实现不了。Make工具,管理一组的程序,实现将应用程序的源程序的多个源程序文件按照工程的方法来管理,能够根据一个简单的指令文件自动的实现按次序编译源程序。它大大简化降低了gcc的工作,但它仍然延续了gcc了功能,需要一个配置文件才能进行编译,这个文件是makefile。Makefile文件中指出了我们使用gcc先编译哪个文件,先编译其中的哪个片段,这样的步骤来编译。它是由脚本文件自动生成的,脚本文件是configure.它又是由软件包的作者制作的autoconf工具自动生成的,automake又能自动生成makefile.in.所以简单的步骤就是,configure脚本结合automake生成的makefile.in生了makefile文件,这时就可以用make命令编译了,编译完了使用make install安装就行了。要想编译就得安装三个软件包,gcc是基于这三个软件包的,这三个软件包安装了才有gcc工具。Desktop Platform DevelopmentServer Platform DevelopmentDevelopment tools#yum groupinstall Desktop Platform Development#yum groupinstall Desktop Server Platform Development#yum groupinstall Desktop Development tools三个包租安装完了就可以编译了。注意:有时候可能因为某种原因,三个包组装完后,检测编译环境仍会提示没有C编译器configure: error: no acceptable C compiler found in $PATH这时就需要我们多加一步,手动安装gcc了。#yum install gcc1.3 源代码编译安装三部曲:执行源代码目录中的configure脚本,即:[root@station125 httpd-2.2.25]#./configure --prefix=/usr/local/apache --enable-so --enable-rewrote 检测编译环境,让用户定义编译配置 --prefix=/urs/local/apache 当卸载的软件的时候,这个目录删除,一切搞定。 --sysconfdir=指定配置文件的存放位置[root@station125 httpd-2.2.25]#make---------------------编译[root@station125 httpd-2.2.25]#make install-------------安装原理再重复一遍./configure+makefile.in(automake自动生成的)------>makefile(可以先看一下源代码目录下本来没有makefile文件的)-------->make利用gcc的功能编译二进制代码-------->make install编译完成进行安装。执行第二步# ./configure --prefix=/usr/local/apache --enable-so --enable-rewrote后,我们会发现,源代码目录下生成了makefile文件。1.4 启动服务器安装完成后,来到指定的安装目录/usr/local/apache下看看里头都有啥。[root@station125 httpd-2.2.25]# cd /usr/local/apache[root@station125 apache]# lsbin build cgi-bin conf error htdocs icons include lib logs man manual modules现在可以启动我们的web服务器了[root@station125 apache]#/usr/local/apache/bin/apachectl start然后查看80端口是否启用[root@station125 apache]#netstat -tnlp

或者使用[root@station125 apache]#lsof -i:80

二、服务器配置编译完成之后,要想更好的管理服务器,就需要对一些文件进行设置,让服务器更好的运行。2.1 对PATH环境变量的设置在/etc/profile.d/目录下新建一个文件可执行文件apache.sh#vim /etc/profile.d/apache.sh#cat /etc/profile.d/apache.shexport PATH=/usr/local/apache/bin:$PATH PATH=/usr/local/apache/sbin:$PATH# . /etc/profile.d/apache.sh 执行apache.sh使PATH路径多出Apache服务器的二进制可执行程序,使这些命令也可以直接使用,不用再加上路径。#echo $PATH/usr/local/apache/sbin:/usr/local/apache/bin:/usr/lib64/qt-3.3/bin:/usr/local/apache/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/apache/bin2.2 配置库文件# ldconfig -v: 重新搜索当前系统上所有库文件搜索路径下的库文件,并生成缓存/etc/ld.so.cache;如果不对apache配置,库文件搜索路径将不包括apache的库。配置如下:# ldconfig -v 搜索结果不包括apache的库文件路径#vim /etc/ld.so.conf.d/apache.conf#cat /etc/ld.so.conf.d/apache.conf /usr/local/apache/lib 在文件中写上编译安装的源程序的lib文件路径 # ldconfig -v 刷新缓存库文件 # ldconfig -v | grep /usr/local/apache/lib : 搜索结果显示Apache的库文件路径。ldconfig -v 刷新当前库文件信息,-v表示显示出结果,不写,就没有结果。源代码编译完成后,都要刷新库文件。ldd /bin/ls 显示ls命令所依赖的库文件。2.3 /usr/local/apache/conf 配置文件不需要导出。2.4 /etc/man.config, 配置man文件帮助手册# vim /etc/man.config在其中加入:MANPATH /usr/local/apache/man若不进行配置,则需要这样写 #man -M /usr/local/apache/man httpd -----M 指明路径才能显示httpd可执行程序的man手册。但这种方式每次用的时候,都需要写出apache的man路径。2.5 对头文件链接:# mkdir /usr/include/httpd# ln -sv /usr/local/apache/include /usr/include/httpd如果服务没有启动,这些数据是显示不出来的。如果服务启动,在网页的地址栏输入自己的ip地址,就可以显示出网站的运行情况了。当然,到此为止,我们只给出了正常操作的一些步骤,在编译的过程中还会出现一些意外情况,下面是我在编译过程中遇到的困难,希望能够解决读者的疑惑。我们编译安装完了之后,服务器软件的后台就在/usr/local/apache目录下,如果我们将之删除,再装第二次,那么到了检测编译环境的时候可能会报错,说少了,apr和apr-util两个包。原因在于,编译源程序使用的是源程序原件自己的apr和apr-util包,虽然rpm -q apr和apr-util都已经安装,但却不能在为这个编译程序使用。这时就需要到www.apache.org官网上下载apr和apr-util的源代码包了。编译安装步骤与web服务器的编译安装类似,不同的是,我们要首先编译安装apr,然后编译安装apr-util,而且在检测编译环境的时候./configure 要加上一个选项。编译apr的时候,./configure --prefix=/usr/local/apr编译apr-util的时候,./configure --prefix=/usr/local/apr --with-apr=/usr/local/apr编译web的时候,./configure --prefix=/usr/local/apr --with-apr=/usr/local/apr --with-apr-util=/usr/local/arp-util其余步骤都一样的。本文出自 “秋风颂” 博客,请务必保留此出处http://qiufengsong.blog.51cto.com/7520243/1259227
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: