软件包管理-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
◆模块依赖:模块依赖查询网站:
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/目录,修复文件丢关