Redhat/CentOS软件安装之 源码编译

By | 2014/05/15

在上一篇Redhat/CentOS 软件安装之RPM和YUM 中我们介绍了用RPM和YUM来安装软件的方法。我们这里再来谈一谈通过编译源程序来安装软件的方法。

一般情况下,通过YUM和 RPM可以安装大部分常用的软件,但仍然有很多软件,即不在YUM容器中,也找不到合适的RPM包(比如没有对应于你的 Linux  的rpm包),只能找到源码。这时候就必须通过编译源程序来安装该软件了。

很多的情况下,我们通过Google查找某个软件,最后找到该软件的官网的下载页面,但一看,只有源码包的下载  (可能是.tar.gz, tar.bz2格式的,也可能是要从git上下载) 。很多Linux的新手看到要从源码安装都会有些头疼。我们这里就整理一下从源码安装的过程。

第一步:我们通过wget, http等方式下载下来的源码包往往是Tarball的形式,扩展名一般为.tar.bz2 或者.tar.gz。

我们还要解开这个压缩包,命令如下:

[code]

tar -zxvf  abc.tar.gz -C /usr/local/src    #解包gzip压缩的tarball

tar -jxvf  abc.tar.bz2 -C /usr/local/src  #解开bzip2压缩的tarball

[/code]

运行上述命令后会在/usr/local/src目录中 展开源码包,事实上你用ls来看一下这个源码所在的目录,会发现里面的文件包括:

  • 源码文件,  一般是.c , .py之类的
  • 检测文件, 一般的名字是configure
  • 软件的说明和安装文件, 一般是INSTALL 或是README

第二步:认真阅读INSTALL (README)文件,上面一般会有详细的安装流程,按照上面的说明一步一步执行下面就OK了

至于INSTALL/README文件所列的具体的安装步骤,绝大部分情况下,是下面这几步。

  • [code] ./configure [/code]

configure文件是一个script, 用来检测你的linux系统,相关的软件,以及系统的配置等,运行这个文件后,会生成一个名字为Makefile的文件。

  • [code] make [/code]

make会编译源码并链接相应的库文件等,形成可执行的文件。我们在Redhat/CentOS 软件安装之RPM和YUM  中提到,由于Linux不同发行版的差异,同一个软件源码在不同的linux distribution中的编译方法往往是不同的。那make这个命令怎么知道如何在你的环境中编译源码呢? 就是根据上一步configure命令生成的Makefile这个文件!

  • [code] make install [/code]

编译成功后,还需用安装 。 Linux所谓的安装,其实主要是把相关的文件分别放置到正确的目录下。

至此, 如果整个过程没有出现错误,软件即正确安装到位。

 

结束语:

我们讨论了用YUM, RPM,已经编译源码的方式来安装软件等方法,那具体到某个软件,我应该选择那种方法呢? 一般建议如下:

1. 如果YUM容器中有你需要的软件,优先选择YUM的方式来安装。

2. 如果在YUM中找不到你需要的软件,到软件的官网上,如果有对应于你的Linux发行版本的RPM安装包,用rpm方式来安装把。

3. 如果上面两种方法都不成功,就采用Make源码的方式来安装。

 

 

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据