软件安装之rpm 及rpm与yum的区别(转载)
一.软件名称识别
- 1.[abrt-addon-ccpp]-[2.1.11-19].[el7].[x86_64].rpm ##rpm结尾的适用与redhat操作系统
- || || || ||
- 软件名称 软件版本 软件适用系统 64位
2.yum与rpm的区别:yum适用于所有环境,而rpm要搭建本地yum源才可以使用!yum是上层管理工具,自动解决依赖性,而rpm是底层管理工具。rpm只能安装已经下载到本地机器上的rpm包,yum可以在线下载并安装rpm包,能更新系统,且还能自动处理包与包之间的依赖问题,这是rpm所不具备的
二.rpm安装软件
- rpm -ivh name.rpm ##安装 ,-v显示过程,-h指定加密方式为hash
- -e name ##卸载
- -ql name ##查询软件生成文件
- -qlp name.rpm ##查询软件安装后会生成什么文件
- -qa ##查询系统中安装的所有软件名称
- -qa |grep name ##查询软件是否安装
- -q name ##查看
- -qp name.rpm ##查询软件安装包安装后的名字
- -qf filename ##查看filename属于那个安装包
- -ivh name.rpm --force ##强制安装,但不能忽略依赖性
- -ivh name.rpm --nodeps ##忽略依赖性并且强制安装
- -qi name ##查看软件信息
- -Kv name.rpm ##检测软件包是否被篡改
- -qp name.rpm --scripts ##检测软件在安装或卸载过程中执行的动作
举例:
在根目录下茶创建rpm目录,将安装包放入rpm目录里。
- 1.查询软件安装后会生成什么文件
- --rpm -qlp wps-office-10.1.0.5672-1.a21.x86_64.rpm
- 2.查看软件信息
- --rpm -qi wps
- 3.检查软件包是否被修改
- 先篡改,再观察效果
- --echo helloworld >> wps-office-10.1.0.5672-1.a21.x86_64.rpm ##将helloworld追加到wps安装包内
--rpm -Kv wps-office-10.1.0.5672-1.a21.x86_64.rpm ##查看软件包是否被修改
注:MD5 digest: BAD Expected(5bb5b15d9d6006305856c903999398a6) != (e2ec4416e7d020c59202bd3f4af1608a) 中间有!=符号,显示安装包已经被篡改。
- 4.检测软件在安装或卸载过程中执行的动作
- --rpm -qp wps-office-10.1.0.5672-1.a21.x86_64.rpm --scripts
可以看到看到软件包FluffyMcAsesome-A 在卸载后会将本机的根目录删除且不做提示,而FluffyMcAsesome-B在卸载后只会输出一个字符“fluffy”
- --rpm -qp FluffyMcAwesome-A-6.4.0-11.r19335.x86_64.rpm --scripts
- --rpm -qp FluffyMcAwesome-B-6.4.0-11.r19335.x86_64.rpm --scripts
三.yum与rpm的区别,yum自动解决软件依赖性,而rpm不可以!
第三方软件包在/rpm中,分别用yum和rpm安装,看区别。
- 1.用rpm安装wps软件
- --rpm -qp wps-office-10.1.0.5672-1.a21.x86_64.rpm
- 发现安装wps时,缺少依赖性文件,不能安装
- 2.用yum安装wps软件
- --yum -ivh wps-office-10.1.0.5672-1.a21.x86_64.rpm
安装正常完成
注:依赖性文件是指,安装wps软件,必须先安好wps软件的依赖性文件,否则wps软件不能安装,所以在用rpm安装wps时,rpm仅仅只安装指定的软件,不会安装依赖性文件,所以wps软件不能安装。若所安装软件无依赖性或者依赖性文件被解决,则可以安装,否则会报错无法安装。而使用yum安装软件时,检测到软件的依赖性文件在yum源没有安装,yum会自动安装依赖性软件后再安装软件。
四.安装Kolourpaint
先把软件放在/rpm目录里:
Kolourpaint与kolourpaint-lib(是kolourpaint的依赖性文件)
- 1.安装kolourpaint-lib时,碰到如下的依赖性问题
- --rpm -ivh kolourpaint-libs-4.10.5-4.el7.x86_64.rpm ##先安装依赖性文件
注:又碰到缺少依赖性文件,Kolourpaint与kolourpaint-lib(是kolourpaint的依赖性文件)相互依赖
- 2.此时,应该怎样解决?
- 这时候,我们需要用到nodeps参数,这个参数可以忽略软件的依赖性,直接进行安装。
- -- rpm -ivh kolourpaint-libs-4.10.5-4.el7.x86_64.rpm --nodeps
- 3.再安装kolourpaint
- --rpm -ivh kolourpaint-4.10.5-4.el7.x86_64.rpm
- 此时,还缺少一个依赖性软件 kde-runtime
- 4.用yum search 查找kde-runtime
- 找到一个kde-runtime-libs.x86_64的安装包
- 注:此时如果没有找到此安装包,看看之前yum黑名单是不是屏蔽了
- 5.安装kde-runtime-libs.x86_64的安装包
- --yum install kde-runtime-libs.x86_64
- 6.再次再安装kolourpaint
- --rpm -ivh kolourpaint-4.10.5-4.el7.x86_64.rpm
此时 发现只有一个依赖性文件,libqimageblitz.so.4
注:上一步安装完成后,此时,只缺少一个依赖性文件,这说明在进行上面的安装时,yum已经yum已经解决安装kde-runtime-libs时所需要的依赖性文件
- 7.用whatprovides查找libqimageblitz.so.4文件所对应的安装包
- --yum whatprovides libqimageblitz.so.4
- 找到了qimageblitz安装包
- 8.用yum search 查询qimageblitz安装包
- --yum search qimageblitz
- 找到了qimageblitz.x86_64软件
- 9.安装此软件qimageblitz.x86_64
- --yum install qimageblitz.x86_64
- 10.再次再次再安装kolourpaint
- --rpm -ivh kolourpaint-4.10.5-4.el7.x86_64.rpm
显示安装成功!!且画图软件可以使用