Linux软件包管理之源码包、脚本安装包

 


  上篇博客咱们讲解了网络yum源和光盘yum源的搭建步骤,而后详细介绍了相关的yum命令,yum 最重要是解决了软件包依赖性问题。在安装软件时,咱们使用yum命令将会简单方便不少。咱们知道yum命令只能安装rpm包,若是是源码包呢?咱们又该如何安装,那么这篇博客咱们主要介绍如何安装源码包。java

一、源码包和RPM包的区别

  在 Linux软件包管理之RPM命令 这篇博客中咱们从概念上介绍了源码包和rpm包的区别。web

  源码包开源,若是有足够的能力,能够直接修改源代码。安装时能够自由选择所需的功能。软件是编译安装,因此更加适合本身的系统,更加稳定也效率更高。卸载方便,直接删了你安装软件的那个目录就行了。可是安装步骤较多,尤为安装较大的软件集合时,容易出现拼写错误。编译时间过长,比后面讲的二进制安装时间长。由于是编译安装,安装过程当中一旦报错新手很难解决。apache

  rpm包包管理系统简单,只经过几个命令就能够实现包的安装、升级、查询和卸载。安装速度比源码包快不少。可是因为源码已经通过编译了,看不到源代码。功能选择不如源代码包灵活。安装过程当中有不少依赖的包,依赖性很差解决。windows

  这里因为安装位置的不一样,安装以后会带来一些很明显的区别。网络

  RPM包和源码包默认安装位置:

  RPM包默认安装位置:工具

  

  rpm包也能手工更改安装位置,可是更改位置以后会形成一些影响,下面咱们会详细讲解。post

  源码包安装位置:性能

1
/usr/local/软件名/

  因为安装位置不一样带来的影响

  ①、rpm包安装的服务可使用系统服务管理命令(service)来管理。学习

  好比 rpm 包安装的apache 的启动方法是:

1
2
①、/etc/rc.d/init.d/httpd start
②、service httpd start

  第二种命令是第一种命令的简化形式。这是红帽专有命令。service 会去 rpm 包默认的安装位置去找可执行文件,因此service相似的启动服务管理命令只能管理rpm安装包。若是更改了rpm包的默认安装位置,可能形成经过service启动服务失败。

  Linux要启动一个执行文件,都应该是用绝对路径来启动,后面讲的配置好环境变量以后能直接经过文件名来启动,其实原理也是经过环境变量找到的绝对路径。而 /etc/rc.d/init.d/ 目录是全部rpm包安装的服务执行文件存放目录。

  

  提示:绿色的都是可执行文件。

  ②、源码包启动服务

  因为源码包没有安装到指定的路径中,因此源码包安装的服务不能被相似service服务管理命令管理,这里就只能经过绝对路径的形式来启动了。

1
/usr/local/apache2/bin/apachectl start

 

二、源码包安装

  ①、安装准备

  1、首先在Linux系统安装gcc编译器

  

  2、下载源码包

  咱们以 httpd 为例,下载地址:http://mirror.bit.edu.cn/apache/httpd/

  ②、安装注意事项

  1、源代码建议保存位置:/usr/local/src

  2、软件安装位置:/usr/local

  3、如何肯定安装过程报错:安装过程中止,并出现error、warning或no的提示。注意源码包安装过程一旦报错是很难解决的,须要咱们去修改源码。因此从正规网站上下载别人验证过的源码包,通常是不会报错的。

  ③、安装源码包

  咱们将下载好的源码包经过工具(在 Linux学习技巧 中有介绍)复制到Linux系统中,而后解压,最后进入到解压目录,由于后面不少命令都须要在解压以后的目录中操做。

  

  这里咱们能够查看INSTALL 文件,查看安装说明:

  

  第一步:软件配置与检查 ./configure

  ①、定义须要的功能选项。

  ②、检测系统是否符合安装要求。

  ③、把定义好的功能选项和检测系统环境的信息都写入Makefile 文件,用于后续的编辑

1
./configure --prefix=/usr/local/apache2

  经过 -- prefix 定义源码包安装位置,后面的apache2(因为咱们经过yum已经安装了apache,因此这里命名为apache2)能够任意命名。

  

  执行完成若是没有出现报错信息,则准备工做完成。

  第二步:执行编译 make ,将源码包编译为机器码

  

  这一步安装的时长取决于源码包的大小以及机器的性能。若是安装出错,能够执行 make clean,清空产生的全部临时文件。

  注意:这一步执行完成以后并不会在 /usr/local 下生成 apache2目录。可是在httpd源码包解压目录生成了Makefile 文件

  第三步:执行 make install ,编译安装

  

  第四步:安装完成以后,启动该服务

  咱们经过查看源码包解压以后的目录 INSTALL 文件,能够知道启动命令:

    

1
/usr/local/apache2/bin/apachectl start

  启动发现报以下错误:这是 80 端口被占用了。由于咱们用 yum 安装过rpm包的httpd,这里停掉 rpm包的httpd就行了。

  

 

三、源码包卸载

  源码包不须要额外的卸载命令,直接删除安装目录便可,不会有任何的垃圾文件遗留。

  

  这里就能够看出为啥Linux系统运行很长的时间都比较稳定,而windows系统运行一段时间就会比较卡。这是由于Linux系统安装的软件卸载干净,而windows怎么卸载都会存在必定的垃圾文件。

四、脚本安装包

  这里首先要给你们说明,Linux系统从本质上讲只有rpm包和源码包,是没有脚本安装包的。这里说脚本安装包,其实根本上就是源码包。上面刚刚讲了源码包的安装方法,发现仍是比较麻烦的。为了简化源码包的安装,人为的修改源码包,使其变成自动安装的脚本,咱们只须要执行脚本定义简单的参数就能完成安装。具体解释以下:

  ①、脚本安装包并非独立的软件包类型,基本上都是源码包。

  ②、脚本安装包是人为的把安装过程写成了自动安装的脚本,只要执行脚本,定义简单的参数,就能够完成安装。

  ③、脚本安装包相似于windows下软件的安装方式。

  这里以 Webim 的安装为例来介绍如何安装脚本安装包:

  Webim 是一个基于 Web 的Linux 系统管理界面,安装完成以后,就能够经过图形化的方式来设置用户帐户、DNS、文件共享等服务。

  第一步:下载 Webim 脚本安装包

  下载地址:http://sourceforge.net/projects/webadmin/files/webmin

  第二步:将下载的文件经过工具复制到Linux系统中,并解压

  

  第三步:进入到解压以后的目录,并执行里面的脚本安装文件  ./setup.sh 

  

  出现以下界面安装成功:

  

 

  安装完成以后,咱们输入 虚拟机的ip地址:20000,后面的端口号20000根据你安装实际状况来,进入到 Webim 操做界面

  

 

五、总结

   本篇博客咱们介绍了源码包和脚本安装包的安装方法。源码包和前面讲的RPM包安装相比是比较麻烦的,并且重点介绍了源码包和rpm包因为安装位置的不一样形成后面启动相关服务的方法的区别。脚本安装包其实就是人为的修改源码包,使其成为一个自动安装的脚本,安装过程简单。那么软件包的介绍就结束了,下篇博客咱们将学习用户管理。