软件包管理简介
软件包分类
软件包分为两大类:源码包和二进制包(RPM包、系统默认包)。
源码包
指的是直接把软件的源代码开放给用户的安装包。Linux最大的特点就是开源,它是用C语言编写的,所以绝大部分源码包也是用C语言编写的。源码包安装过程比较慢和复杂,而且容易报错。源码包可以到该软件的官方网站下载。它的文件名一般是以 .c 结尾,可以用写字板打开查看源代码。计算机能够识别的语言是二进制代码,也就是0或1组成的代码。要想让计算机识别源码包,就必须先将其编译为二进制代码。编译过程,需要C语言编译器gcc的支持。
脚本安装包也是源码包的一种,它绝大多数是对源码包进行再开发之后的源码包。这种包比较少见,有点类似于Windows中的软件包,它的安装程序一般是install.sh,其安装过程非常简单,有简易的安装界面。
二进制包
也叫RPM包,也是系统默认包,它是经过编译之后的安装包。不能看到它的源代码。二进制包实际上是软件的厂商在发行软件时,将源码包进行了编译和一些特定的设置。从而,简化了安装步骤,加快了安装速度。RPM包的文件名一般以 .rpm 结尾。
注意:redhat系列的Linux系统(比如:CentOS)用的二进制包才是RPM包,Ubuntu和Debian系列的Linux系统用的二进制包是DEB包。
redhat系列与Ubuntu和Debian系列的Linux系统的主要区别就在于二进制包的不同。
源码包的优缺点
源码包的优点:
- 开源,如果有足够的能力,可以修改源代码。
- 可以自由选择所需要的功能。
- 软件是编译安装,软件更加适合系统,更加稳定,运行效率更高。
- 卸载方便(可以直接删除软件的安装目录,不会有任何垃圾文件)。
源码包的缺点:
- 安装步骤多,过程复杂,容易出错。
- 编译时间较长。
- 因为是编译安装,安装过程中一旦报错,新手很难解决。
源码包管理
源码包和rpm包的区别
rpm包安装时,不需要指定安装位置,它会安装在系统的默认位置中。
大多数rpm包的默认安装位置如下:
1 | /etc/ 配置文件 |
源码包安装时,可以指定安装位置,如果没有指定,一般来说,默认的安装位置是 /usr/local/软件名/
目录下。
由于安装位置的不同,导致了服务的管理方法的不同。
rpm包安装的服务,可以使用系统服务管理命令(service)来管理。
例如,rpm包安装的apache的启动方法有两种:
1 | /etc/rc.d/init.d/httpd start |
service 命令会到服务的默认保存位置 /etc/rc.d/init.d/ 中搜索相关的服务是否存在。
源码包安装的服务,则不能用服务管理命令(service)来管理,只能用绝对路径进行服务的管理。
例如,源码包安装的apache的启动方法:
1 | /usr/local/apache2/bin/apachectl start |
源码包的安装方法
这里以安装apache的源码包为例。
安装准备
安装C语言编译器 gcc (
yum -y install gcc
)下载apache的源码包 http://mirror.bit.edu.cn/apache/httpd/
安装注意事项
源码包的保存位置 /usr/local/src
(将下载好的源码包压缩文件,拷贝至这个目录,便于对所有的源码包进行管理)
软件的安装位置 /usr/local
安装过程
script 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23tar -zxf httpd-2.2.9.tar.gz
解压源码包
cd httpd-2.2.9
进入解压后的目录
ls
查看当前目录中有哪些文件( 一般都会有安装说明文件INSTALL和使用说明文件README )
./configure --prefix=/usr/local/apache2
软件配置与检查
(如果这一步出错,可使用命令 make clean 清空编译产生的临时文件.解决问题后,再来重新安装)
make
编译
(如果这一步出错,可使用命令 make clean 清空编译产生的临时文件.解决问题后,再来重新安装)
make install
执行安装
( 这时,才会把软件安装到指定的安装位置.到此,安装步骤结束)
/usr/local/apache2/bin/apachectl start
启动apache源码包的卸载
rm -rf /usr/local/apache2/
源码包没有指定的卸载命令,可以直接删除安装目录达到卸载目的,不会遗留任何垃圾文件。
脚本安装包
脚本安装包并不是独立的软件包类型,而是人为地把源码包的安装过程写成了可以自动安装的脚本,只要执行安装脚本(一般为setup.sh),定义简单的参数,就可以快速完成安装。(非常类似于Windows中的软件安装方式)。
解压脚本安装包,进入解压后的目录,执行 setup.sh 脚本文件,一直回车(使用默认的参数)即可顺利完成安装。
脚本安装包非常少见,了解即可。