自学Linux Shell9.4-基于Red Hat系统工具包存在两种方式之二:源码包

点击返回 自学Linux命令行与Shell脚本之路html

9.4-基于Red Hat系统工具包存在两种方式之二:源码包

本节主要介绍基于Red Had的系统(测试系统centos)apache

1. 工具包存在两种方式:RPM包与源码包

1.1.RPM包与源码包区别
安装以前的区别:概念上的区别
  •    源码包是开源的,比RPM包安装更自由,可是它安装更慢,更容易报错;
  •    RPM包是通过编译的,不能看到源代码,可是它安装更快,报错更容易解决,只有依赖性问题。
            缺点:安装的环境必须与编译时的环境一致或者至关;包与包之间存在着相互依赖的状况;卸载包时须要先把依赖的包卸载掉,若是依赖的包是系统所必须的,那就不能卸载这个包,不然会形成系统崩溃。
安装以后的区别:安装位置不一样
  • RPM包不须要指定安装位置,它会安装到系统默认位置;
  • 源码包是人为手工设置的
1.2.安装位置
  RPM包是按照在默认位置中
  RPM包默认安装路径
  • /etc/ 配置文件安装目录
  • /usr/bin/ 可执行的命令安装目录
  • /usr/lib/ 程序所使用的函数库保存位置
  • /usr/share/doc/ 基本的软件使用手册保存位置
  • /usr/share/man/ 帮助文件保存位置
   源码包安装位置
  • .安装在指定位置当中,通常是/usr/local/软件名/

1.3 安装位置不一样带来的影响编程

.RPM包安装的服务可使用系统服务管理命令(service)来管理,例如RPM包安装的apache的启动方法是:
  • /etc/rc.d/init.d/httpd start
  • service httpd start
.而源码包安装的服务则不能被服务管理命令管理,由于没有安装到默认路径中。因此只能用绝对路径进行服务的管理,如:
  • /usr/local/apache2/bin/apachectl start

2. 源码包

  • 开放源码:就是程序代码,写给人类看的编程语言,但机器并不认识,因此没法执行。
  • 编译程序:将程序代码转译成机器看得懂的语言,就相似于翻译者的角色。
  • 可执行文件:通过编译程序变成二进制程序后机器看得懂能够执行的文件。

2.1 函数库centos

相似于子程序的角色,能够被调用来执行的一段功能函数。编程语言

2.2 make与configure函数

使用相似于gcc的编译程序来进行编译的过程并不简单,我么可使用make这个命令的相关功能来进行编译过程的命令简化。工具

当执行make时,make会在当前目录下查找Maklefile文本文件,而Makefile文件里面记载了源码如何编译的详细信息。测试

Makefile文件,一般软件开发商都会写一个检测程序来检测用户的操做环境,以及该操做环境是否有软件开发商所须要的其余功能,检测程序检测完毕后就会主动创建Makefile的规则文件。而这个检测程序的文件名为configure或config。ui

总结编译过程:spa

  • 执行configure来创建Maklefile,这个步骤必定要成功;
  • 以make来调用所须要的数据来编辑便可。

2.3 Tarball软件

Tarball文件其实就是将软件的全部源码文件现以.bar打包,而后在以压缩技术来压缩,一般最多见的就是以gzip来压缩。

Tarball文件通常的扩展名会写成*.tar.gz或者*.tgz 。

Tarball是一个压缩包,将它解压以后,里面的文件一般会有:

  • 源代码文件(Source Code)
  • 检测程序文件(configure或config);
  • 本软件的简易说明与安装说明(INSTALL 和 README)。

Tarball是如何安装的?基本流程以下:

  • 取得原始档:将 tarball 文件在 /usr/local/src 目录下解压缩;
  • 取得步骤流程:进入新建立的目录底下,去查阅 INSTALL 与 README 等相关文件内容 (很重要的步骤!);
  • 相依属性软件安装:根据 INSTALL/README 的内容察看并安装好一些相依的软件 (非必要);
  • 建立 makefile:以自动侦测程序 (configure 或 config) 侦测做业环境,并建立 Makefile 这个文件;
  • 编译:以 make 这个程序并使用该目录下的 Makefile 作为他的参数配置档,来进行 make (编译或其余) 的动做;
  • 安装:以 make 这个程序,并以 Makefile 这个参数配置档,依据install 这个标的 (target) 的指定来安装到正确的路径!

Tarball 安装的命令方式: 

  • ./configure
    这个步骤就是在建立 Makefile 这个文件罗!一般程序开发者会写一支scripts 来检查你的 Linux 系统、相关的软件属性等等,这个步骤至关的重要,由于将来你的安装资讯都是这一步骤内完成的!另外,这个步骤的相关资讯应该要参考一下该目录下的README 或 INSTALL 相关的文件!
  • make clean
    make 会读取 Makefile 中关於 clean 的工做。这个步骤不必定会有,可是但愿运行一下,由于他能够去除目标文件!由于谁也不肯定原始码里面到底有没有包含上次编译过的目标文件 (*.o) 存在,因此固然仍是清除一下比较稳当的。至少等一下新编译出来的运行档咱们能够肯定是使用本身的机器所编译完成的嘛!
  • make
    make 会依据 Makefile 当中的默认工做进行编译的行为!编译的工做主要是进行gcc 来将原始码编译成为能够被运行的 object files ,可是这些 object files一般还须要一些函式库之类的 link 后,才能产生一个完整的运行档!使用 make就是要将原始码编译成为能够被运行的可运行档,而这个可运行档会放置在目前所在的目录之下,还没有被安装到预约安装的目录中;
  • make install
    一般这就是最后的安装步骤了,make 会依据 Makefile 这个文件里面关於 install 的项目,将上一个步骤所编译完成的数据给他安装到预约的目录中,就完成安装啦!

请注意,上面的步骤是一步一步来进行的,而其中只要一个步骤没法成功,那么后续的步骤就彻底没有办法进行的!所以,要肯定每一的步骤都是成功的才能够!举个例子来讲,万一今天你在 ./configure 就不成功了,那么就表示 Makefile没法被建立起来,要知道,后面的步骤都是根据 Makefile 来进行的,既然没法建立 Makefile,后续的步骤固然没法成功罗!

另外,若是在 make 没法成功的话,那就表示原始文件没法被编译成可运行档,那么 make install主要是将编译完成的文件给他放置到文件系统中的,既然都没有可用的运行档了,怎么进行安装?因此罗,要每个步骤都正确无误才能往下继续作!此外,若是安装成功,而且是安装在独立的一个目录中,例如 /usr/local/packages 这个目录中好了,那么你就必需手动的将这个软件的man page 给他写入 /etc/man.config 里面去。

举例子: 安装ntp

首先下载ntp:   http://www.ntp.org/downloads.html    #下载ntp

其次 解压下载的ntp的Tarball,并参考README/INSTALL文件: 

建议:

  • 源码要解压到/usr/loca/src下;
  • 软件安装到/usr/local/ntp目录中;

里面有详细的安装介绍。

而后 检查configure支持参数,并实际生成makefile规则文件。

[ ntp.xxx ] ./configure --help | more    #查询可用参数有哪些

  • #--prefix=PREFIX     install architecture-independent files in PREFIX;
  • #--prefix=/path    表示软件要安装到哪一个目录去,若是没有指定,则默认在/usr/local;
  • #--enable-all-clocks     + include all suitable non- PARSE clocks:
  • #--enable-parse-clocks     - include all suitable PARSE clocks:
  • #特别要留意关于gcc的检查,最后须要成功的创建Makefile文件才行

 

最后开始编译与安装:

  • make clean;make
  • make check
  • make install

 

显示安装在/usr/local/src下

....

相关文章
相关标签/搜索