CentOS软件包管理之源码安装

软件源码包安装背景

源代码编译安装概述:
源代码编译安装顾名思义就是使用源代码在本地计算机编译安装的过程。

接触过Linux的人都知道要在Linux上安装软件通常使用rpm或yum,这两种工具的出现确实大大减少我们在Linux系统上安装软件的工作量,但是rpm及yum的安装的软件都是基于某种平台事先编译好的成品,这个成品中制作者考虑种种因素可能会对这个软件的功能进行一定程度的剪裁,也就是说现成的rpm包或yum包不是最全的软件包。而如果我们想要添加这个软件的rpm或yum中未包含的功能该怎么办?为了解决这个问题,我们就要使用软件源码包进行安装。 

太阳集团所有网址16877,使用源代码安装软件的优点:
获得最新的软件版本,及时修复bug
根据用户需要,灵活定制软件功能

什么是软件源码包?

源代码包的格式:
源代码包为了方便在互联网上传播通常被打包压缩成.tar.gz或.tar.bz2的格式,现在也有最新的.tar.xz的格式。所以源代码包也被称作Tarball.

    Linux软件的源代码分发是指提供了该软件所有程序源代码的发布形式,需要用户自己编译成可执行的二进制码并进行安装。其优点是配置灵活,可以随意去掉或保留某些功能/模

//httpd源码包
[root@localhost ~]# ls -l httpd-2.4.7.tar.bz2
-rw-r--r--. 1 root root 5004719 Feb 28 12:47 httpd-2.4.7.tar.bz2

块,适应多种硬件/操作系统平台及编译环境缺点是难度较大,一般不适合初学者使用

源码包的验证:
由于大部分源码包都是直接在互联网上提供,为了避免下载到被恶意串改的源码包或软件包下载过程中被人恶意串改,我们有必要对下载的源码包进行完整性验证。

源码包格式有两种:

//下面为apache官网提供的httpd源码包MD5值

170d7fb6fe5f28b87d1878020a9ab94e *httpd-2.4.7.tar.bz2
//下面是我们通过CentOS自带md5计算工具计算出来的httpd源码包MD5值
[root@localhost ~]# md5sum httpd-2.4.7.tar.bz2
170d7fb6fe5f28b87d1878020a9ab94e  httpd-2.4.7.tar.bz2
//两者相比一致,说明包没有被恶意串改

1.*.src.rpm形式的源代码软件包

源码包安装的前提条件:
将源代码包安装到本地计算机上需要满足下列两个基本条件:

2.*.tar.gz/*.xz/*.bz2形式的源代码软件包

  1、要有相应包的解包工具(tar、bzip2等),一般情况这些工具在系统安装的时候会自动安装。
  2、要有编译环境,一般情况系统不会自动安装,需要手动进行安装。在RHEL6系统上,
        可以通过使用yum groupinstall命令安装。

软件源码包的安装

[root@localhost ~]# yum groupinstall "Desktop Platform Development" "Development tools" "Server Platform Development"

1.*.src.rpm形式的源代码软件包

源码安装httpd:

    (该类型由于还是以rpm功能实现的软件安装,这里只是简单介绍下其方法,具体如何实验就不再演示。

1、将httpd-2.4.7.tar.bz2解包,并进入解压出来的目录

    假设此*.src.rpm文件在/usr/local/src下,在该目录下执行rpmbuild --rebuild  *.src.rpm,若命令顺利执行则会在/usr/src/dist/RPMS下出现*.rpm

[root@localhost ~]# tar xf httpd-2.4.7.tar.bz2
[root@localhost ~]# cd httpd-2.4.7
[root@localhost httpd-2.4.7]# pwd
/root/httpd-2.4.7

大致过程如下:

2、查看说明文档和安装文档

安装

[root@localhost httpd-2.4.7]# less README
[root@localhost httpd-2.4.7]# less INSTALL

  rpm -rebuild *.src.rpm会自动根据所在平台转换成相应的平台rpm包

3、./configure配置

  cd /usr/src/dist/RPMS

//查看configure选项,常用选项为--prefix指定安装目录,如果不跟任何参数则安装至默认目录
[root@localhost httpd-2.4.7]# ./configure --help
//将httpd安装至/usr/local/httpd目录
[root@localhost httpd-2.4.7]# ./configure --prefix=/usr/local/httpd
//完成后没有任何错误提示则可以进行下一步
config.status: creating build/rules.mk
config.status: creating build/pkg/pkginfo
config.status: creating build/config_vars.sh
config.status: creating include/ap_config_auto.h
config.status: include/ap_config_auto.h is unchanged
config.status: executing default commands
[root@localhost httpd-2.4.7]#

  rpm -ivh *.rpm

4、make和make install

卸载

//使用make命令编译
[root@localhost httpd-2.4.7]# make
//编译完成后正常退出,没有任何错误提示则可以进行安装
make[1]: Leaving directory `/root/httpd-2.4.7'
[root@localhost httpd-2.4.7]#
//将编译完的包使用makeinstall命令安装
[root@localhost httpd-2.4.7]# make install
//安装完成后正常退出,没有任何错误提示则说明安装完成
make[1]: Leaving directory `/root/httpd-2.4.7'
[root@localhost httpd-2.4.7]#

  rpm -e packagename

5、添加httpd相关目录到系统默认搜索路径

2.*.tar.gz/*.xz/*.bz2形式的源代码软件包

//将httpd二进制文件添加至系统PATH变量
[root@localhost httpd-2.4.7]# vim /etc/profile.d/httpd.sh
  1 export PATH=/usr/local/httpd/bin:$PATH
//添加完成手动完成一次环境变量导出
[root@localhost httpd]# . /etc/profile
//本次安装httpd没有自带库文件,如果有自带库文件需将自带库目录添加至系统库配置文件中
[root@localhost httpd-2.4.7]# vim /etc/ld.so.conf.d/httpd.conf
  1 /usr/local/httpd/lib
//添加完成后重新搜索库文件并生成缓冲
[root@localhost httpd]# ldconfig
//将httpd自带头文件链接至系统头文件目录
[root@localhost httpd-2.4.7]# ln -s /usr/local/httpd/include/ /usr/include/httpd
[root@localhost ~]# ls -l /usr/include/httpd
lrwxrwxrwx. 1 root root 25 Feb 28 15:16 /usr/include/httpd -> /usr/local/httpd/include/
//将httpd自带man手册路径添加至系统man配置文件
[root@localhost ~]# grep "/usr/local/httpd" /etc/man.config
MANPATH /usr/local/httpd/man

    以tar.gz或tgz或tar.bz2等格式结尾的软件包一般都是以源代码方式发布的软件,安装这类软件首先需要对软件进行解压:

6、启动httpd

  # tar -zxvf filename.tar.gz

[root@localhost ~]# apachectl start
//验证80端口是否处于监听状态
[root@localhost ~]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address              Foreign Address            State      PID/Program name 
tcp        0      0 0.0.0.0:111                0.0.0.0:*                  LISTEN      1550/rpcbind     
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                  LISTEN      1767/sshd         
tcp        0      0 127.0.0.1:631              0.0.0.0:*                  LISTEN      1640/cupsd       
tcp        0      0 127.0.0.1:25                0.0.0.0:*                  LISTEN      1930/master       
tcp        0      0 0.0.0.0:38758              0.0.0.0:*                  LISTEN      1568/rpc.statd   
tcp        0      0 :::111                      :::*                        LISTEN      1550/rpcbind     
tcp        0      0 :::80                      :::*                        LISTEN      13748/httpd       
tcp        0      0 :::22                      :::*                        LISTEN      1767/sshd         
tcp        0      0 ::1:631                    :::*                        LISTEN      1640/cupsd       
tcp        0      0 ::1:25                      :::*                        LISTEN      1930/master       
tcp        0      0 :::33114                    :::*                        LISTEN      1568/rpc.statd

  # tar -Jxvf filename.tar.xz

7、通过网页访问

  # tar -jxvf filename.tar.bz2

太阳集团所有网址16877 1

  解压以后,就可以进入解压后的目录:

总结,以上就是源代码包安装的全过程。源代码是一个Linux管理员必备的技能,很多服务为了有更好的性能只能通过源代码包安装。

  # cd filename/

更多CentOS相关信息见CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14

  对于这类文档,常见的安装步骤是:配置、编译和安装3步,其中最麻烦的就是配置,因为所有和软件安装相关的配置都是在这一步指定的:比如软件安装位置等。

太阳集团所有网址16877 2

  配置./configure

  编译make

  安装make install

  卸载make uninstall 或手动删除

  说明:建议解压后先阅读说明文件(ReadMe和Install),了解安装的需求,有必要时还需改动编译配置。有些软件包的源代码在编译安装后可以用make uninstall命令来进行卸载,如果不提供此功能,则软件的卸载必须手动进行。由于软件可能将文件分散地安装在系统的多个目录中,往往很难把它删除干净,那你应该在编译前进行配置,指定软件将要安装到目标路径:./configure --prefix=目录名,这样可以使用“rm -rf 软件目录名”命令来进行干净彻底的卸载。


Tarball形式的源代码软件包安装实验详解

该实验以httpd-2.2.29.tar.bz2为例进行实验

实验环境CentOS 7.2

实验准备

1、确认httpd-2.2.29.tar.bz2已下载,通常会把源码包保存在/usr/local/src路径下

2、确认make工具存在,rpm -q make检查即可,若不存在安装之。

3、为确保编译环境没有问题,我们最好使用yum groupinstall "Development Tools"将开发环境部署好,新手建议安装Development Tools,不过事实上该包的安装只需要gcc这个组件系统中存在即可,因此也可以只进行yum install gcc。至于yum仓库如何设置本文在此不介绍。

太阳集团所有网址16877 3

……………………………………………………………………………………………………………………

实验步骤

1、解压httpd-2.2.29.tar.bz2,查看源文件夹的文件及其个数。

太阳集团所有网址16877 4

刚加压过的httpd-2.2.29有40个文件。

2、我们先看看INSTALL、README文件

1
[root@localhost httpd-2.2.29]# cat INSTALL | less

太阳集团所有网址16877 5

该文件主要介绍此源码包的安装步骤

1
[root@localhost httpd-2.2.29]# cat README | less

太阳集团所有网址16877 6

该文件主要介绍个这个软件,是什么,作用,功能等信息。

本文由太阳集团所有网址16877发布于www.16877.com,转载请注明出处:CentOS软件包管理之源码安装

您可能还会对下面的文章感兴趣: