哇咔咔,好几天没写了(呵呵,这几天比较懒),这篇博客我打算写一些有关Linux软件包管理的内容。通常我们用的Linux版本可以分为两大类,一类是RedHat系列,另一类是Debian系列。这里我们针对这两类Linux的软件包管理做一些分析,我自己用的是CentOS,这里主要介绍RedHat系列Linux软件包管理,Debian系列Linux软件包管理我们大概提一些。
一、RedHat系列Linux软件包管理
我们分三方面介绍RedHat系列Linux软件包管理:二进制软件包管理(RPM,YUM);源代码包管理;脚本管理(Shell或Java脚本)。
1、二进制软件包管理
在RedHat系列中管理二进制软件包通常有RMP和YUM两种方式。下面分别来看看这两种软件包管理方式。
a、RPM
在介绍RPM管理方式之前,我们先看一个rpm软件包的例子:sudo-1.7.2p1-5.el5.i386.rpm,是个sudo的rpm包名。其中包括软件名(sudo),版本号(1.7.2pl),发行号(5.el5)和硬件平台(i386)。接下来我们就以这个sudo软件为例子来说明rpm的管理。
卸载:rpm -e sudo。如果有其它软件包的依赖关系,卸载时会产生提示信息,可使用--nodeps强行卸载。
安装:rpm -ivh(必选项是i) sudo-1.7.2p1-5.el5.i386.rpm。安装中还有一些其它的选项:
--excludedocs 不安装软件包中的文档文件
--prefix=PATH 将软件包安装到由PATH指定的路径下(这个用处不大,因为二进制软件包的安装路径一般都不允许被改变)
--test 只对安装进行测试,并不实际安装
--replacepkgs覆盖安装
查询选项:
查询软件包是否安装:rpm -q sudo
查询所有已安装的软件包:rpm -qa
-a查询所有已安装的软件包
-f查询文件所属软件包
-p查询软件包
-i显示软件包信息
-l显示软件包中的文件列表
-d显示被标注为文档的文件列表
-c显示被标注为配置文件的文件列表
校验:rpm -V sudo,如果软件安装被改变,则执行该命令会有相应的提示信息。校验提示信息解析:
5:文件的md5校验值
S:文件大小
L:连接文件
T:文件的创建时间
D:设备文件
U:文件的用户
G:文件的用户组
M:文件的权限
升级软件包:rpm -Uvh sudo-1.8.2p1-5.el5.i386.rpm(假设我之前的sudo软件包是1.7版本的,现在将它升级为1.8版本,升级的前提是指定的升级软件包名是存在的)
b、YUM
yum相对于rpm来说,用起来比较方便。假如我要用rpm来安装一款软件,如果这软件有其他的依赖软件,那必须一一装上依赖软件才能安装这个软件。对于这个问题,yum就能很好地解决。使用yum来管理软件包有两点好处:其一就是自动解决软件包依赖关系;其二就是方便软件包的升级。
安装:yum install
检测升级:yum check-update
yum check-update sudo,检测sudo软件升级
升级:yum update
软件包查询:yum list(这个查询会把yum源的所有软件包都列出来,一般我们需要指定查询哪个软件包)
软件包信息:yum info
卸载:yum remove
帮助:yum -help、man yum
通过上面的介绍,我们知道yum比rpm好用太多了。那我们还需要rpm干嘛,都用yum不就完了嘛。这里需要提醒下,在查询方面rpm比ynm有优势,其效率高。大家可以试试。呵呵,两者结合才是王道!
2、源代码包安装
应用举例(proftpd):
tar -xzvf proftpd-1.3.3d.tar.gz(解压解包)
cd proftpd-1.3.3d
./configure --prefix=/usr/local/proftpd(配置,源代码包最好用prefix指定安装目录)
make(编译)
make install(安装)
3、脚本安装
应用举例(webmin)
tar -xzvf webmin-1.530.tar.gz
cd webmin-1.530
vi README(查看帮助文档,找出安装文件,一般的帮助文档都是README,当然也有其他的。由帮助文档我们了解到,安装webmin脚本,只需要执行setup.sh脚本就OK)
./setup.sh
二、Debian系列Linux软件包管理
这里就稍微介绍下Debian的二进制软件包管理,而源代码包和脚本的安装方式与RedHat系列是一样的。在Debian系列Linux(如Ubuntu)中,我们通常使用apt包管理,apt包管理也比较简单方便,有点类似于上面介绍的yum。
apt-cache search搜索软件包
apt-cache show软件包信息
apt-get install 安装
apt-get remove 删除
apt-get update 更新软件源
apt-get upgrade更新软件包
OK,这篇的软件包管理就是这些。嘎嘎,上班时间偷偷写博客,感觉真爽!
PS:本人菜鸟一只,如上述内容有误,欢迎指正!