软件包管理-rpm

1、软件包分类

◆源码包

>脚本安装包

 

◆二进制包(RPM包、系统默认包)

 

2、源码包

源码包的优点是:

◆开源,如果有足够的能力,可以修改源代码

◆可以自由选择所需的功能

◆软件是编译安装,所以更加适合自己的系统,更加稳定也效率更高

◆卸载方便

 

源码包的缺点

◆安装过程步骤较多,尤其安装较大的软件集合时(如LAMP环境搭建),容易出现拼写错误

◆编译过程时间较长,安装比二进制安装时间长

◆因为是编译安装,安装过程中一旦报错新手很难解决

 

3、RPM包

二进制包的优点

◆包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载

◆安装速度比源码包安装快的多

 

二进制包缺点:

◆经过编译,不再可以看到源代码

◆功能选择不如源码包灵活

◆依赖性

 

 

1、RPM包命名原则

httpd-2.2.15-15.el6.centos.1.i686.rpm

Httpd

软件包名

2.2.15

软件版本

15

软件发布的次数

el6.centos

适合的Linux平台

i686

适合的硬件平台

Rpm

rpm包扩展名

 

 

2、RPM包依赖性

◆树形依赖:a>b>c

◆环形依赖:a>b>c>a

◆模块依赖:模块依赖查询网站:

www.rpmfind.net

1、包全名与包名

◆包全名:操作的包是没有安装的软件包时,使用包全名。而且要注意路径

◆包名:操作已经安装的软件包时,使用包名。是搜索/var/lib/rpm/中的数据库

 

2、RPM安装

rpm -ivh包全名

选项:

-i     (install)

安装

-v   (verbose)

显示详细信息

-h    (hash)

显示进度

-nodeps

不检测依赖性

 

3、RPM包升级

rpm  -Uvh   包全名      //此处u大写

选项:

-U(upgrade)升级

 

3、卸载

rpm  -e   包名

选项:

-e(erase)

卸载

-nodeps

不检查依赖性

 

 

1、查询是否安装

[root@localhost~]#rpm -q包名

#查询包是否安装

选项:

-q

查询(query)

[root@localhost~]#rpm -qa

#查询所有已经安装的RPM包

选项:

-a

所有(all)

 

 

2、查询软件包详细信息

[root@localhost~]#rpm  -qi   包名

选项:

-I

查询软件信息(information)

-p

查询未安装包信息(package)

 

 

3、查询包中文件安装位置

[root@localhost~]#rpm -ql包名

选项:

-l

列表(list)

P

查询未安装包信息(package)

 

 

4、查询系统文件属于哪个RPM包

[root@localhost~]#rpm  -qf系统文件名

选项:

-f

查询系统文件属于哪个软件包(file)

 

 

 

5、查询软件包的依赖性

[root@localhost~]#rpm -qR包名

选项:

-R

查询软件包的依赖性(requires)

-p

查询未安装包信息(package)

 

 

1、RPM包校验

[root@localhost~]#rpm  -V  已安装的包名

选项:

-V

校验指定RPM包中的文件(verify)

 

验证内容中的8个信息的具体内容如下:

S

文件大小是否改变

M

文件的类型或文件的权限(rwx)是否被改变

5

文件MD5校验和是否改变(可以看成文件内容是否改变)

D

设备的中,从代码是否改变

L

文件路径是否改变

U

文件的属主(所有者)是否改变

G

文件的属组是否改变

T

文件的修改时间是否改变

 

 

 

2、RPM包中文件提取

[root@localhost~]#rpm2cpio  包全名  |\

cpio-idv.文件绝对路径

 

rpm2cpio

#将rpm包转换为cpio格式的命令

 

cpio

#是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件

 

[root@localhost~]#cpio  选项 <[文件|设备]

选项:

-i

copy -in模式,还原

-d

还原时自动新建目录

-v

显示还原过程

 

[root@localhost ~]#rpm-qf /bin/ls

#查询ls命令属于哪个软件包

[root@localhost~]#mv /bin/ls/tmp/

并造成1s命令误删除假象

[root@localhost~]#rpm2cpio /mnt/cdrom/Packages/coreutils-

8.4-19.el6.i686.rpmlcpio-idv./bin/ls

#提取RPM包中1s命令到当前目录bin/ls下

[root@localhost ~]#cp /root/bin/ls/bin/

#s命令复制会/bin/目录,修复文件丢关

 

猜你喜欢

转载自www.cnblogs.com/xbycf/p/12389563.html
今日推荐