安装软件
yum命令与rpm命令的区别:
rpm是由红帽公司开发的软件包管理方式,使用rpm我们可以方便的进行软件的安装、查询、卸载、升级等工作。
但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时。但rpm可以解决死循环依赖性,这是yum解决不了的
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。
基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。但当yum仓库里没有相应的依赖包时,它将无法解决依赖性就会报错
软件包名称详解:
wps-office-10.1.0.5672-1.a21.x86_64.rpm
[1] [2] [3] [4] [5]
[1] 软件名称
[2] 软件版本
[3] 适用系统
[4] 适用架构
[5] 适用rpm体系软件
注意:做此实验时,真机已经搭建好了yum源和yum源的共享
(1)yum命令
yum install 软件名(softwarename) #安装某个软件
yum reinstall 软件名 #重新安装某个软件
yum repolist #列出设定yum源信息
yum remove 软件名 #卸载某个软件
yum list 软件名 #查看软件源中是否有此软件
yim list all #列出所有的软件名
yum list installed #列出已安装好的软件名
yum list available #列出未安装但可以用yum安装的软件名
yum search 软件信息 #根据软件信息搜索软件名称
yum whatprovides 文件名/命令 #在yum源中查找包含filename文件的软件包
yum clean all #清空yum缓存
yum history #查看系统软件改变历史(比如install,remove等重要操
作)
yum update #更新软件
yum info 软件名 #查看软件信息
yum groups list #查看软件组信息
yum groups info 软件组名(softwaregroup) #查看软件组中包含的软件
yum groups install 软件组 #安装组件
yum groups remove 软件组名 #卸载组件
实验:
##列出yum源中所有的软件名
[root@localhost ~]# yum list
##列出系统中已安装好的软件名
[root@localhost ~]# yum list installed
##列出未安装但可以用yum安装的软件名
[root@localhost ~]# yum list available
##查看软件源(yum源)中是否有dhcp
[root@localhost ~]# yum list dhcp
[root@localhost ~]# yum list available | wc -l
3166
[root@localhost ~]# yum list installed | wc -l
1227
@@如果删除dhcp服务的配置文件,只能是重新安装dhcp服务,才能恢复
[root@localhost ~]# yum list dhcp
[root@localhost ~]# ll /etc/dhcp
[root@localhost ~]# rm -rf /etc/dhcp
[root@localhost ~]# ll /etc/dhcp
[root@localhost ~]# yum install dhcp
##重新安装; -y表示直接安装不提示
[root@localhost ~]# yum reinstall -y dhcp
[root@localhost ~]# ll /etc/dhcp
##卸载dhcp
[root@localhost ~]# yum remove dhcp -y
##安装dhcp
[root@localhost ~]# yum install dhcp -y
##查看dhcp软件信息
[root@localhost ~]# yum info dhcp
##根据软件信息搜索软件名
[root@localhost ~]# yum search dhcp
##搜索浏览器
[root@localhost ~]# yum search web
@@如果丢失了软件所包含的文件,想要根据文件名搜索软件名只能用whatprovides
[root@localhost ~]# rm -rf /etc/dhcp
[root@localhost ~]# yum search /etc/dhcp
##在yum源中查找包含某个文件(目录)或者命令(二进制文件)的软件名
[root@localhost ~]# yum whatprovides /etc/dhcp
@@groups 表示软件组:多个软件
##查看软件组信息
[root@localhost ~]# yum groups list
#可用tabble键可补齐
[root@localhost ~]# yum groups info
##查看GNOME软件组中包含的软件
[root@localhost ~]# yum groups info GNOME
#可用tabble键可补齐
[root@localhost ~]# yum groups install
##安装Additional Development组件
[root@localhost ~]# yum groups install Additional Development
##卸载组件
[root@localhost ~]# yum groups remove Additional Development
2.如何安装带有依赖性的软件
(1).安装wps
yum 源可以忽略部分依赖性 ;实际上安装wps时,安装了两个软件,一个是它的依赖性,由于yum仓库中有这个包的依赖性。所以就直接解决了依赖性
@1.下载wps
[root@localhost ~]# ls
wps-office-9.1.0.4961-1.a18p1.x86_64.rpm
@2.安装wps
[root@localhost~ ]# yum install -y wps-office-10.1.0.5672-1.a21.x86_64.rpm
(2).安装画图软件
有依赖性并且这些依赖性构成死循环(a需要b,b又需要a),此时使用yum源无法解决
方法1:逐步解决依赖性
@1.下载画图软件包(libs为它的依赖包)
[root@localhost ~]# ls
kolourpaint-4.10.5-4.el7.x86_64.rpm
kolourpaint-libs-4.10.5-4.el7.x86_64.rpm
##直接安装失败
[root@localhost ~]# yum install -y kolourpaint-4.10.5-4.el7.x86_64.rpm
[root@localhost~ ]# yum install -y kolourpaint-libs-4.10.5-4.el7.x86_64.rpm
此时需要用rpm命令来解决它的依赖性
@2.解决依赖性
[root@localhost ~]# rpm -ivh kolourpaint-4.10.5-4.el7.x86_64.rpm
[root@localhost ~]# yum list kde-runtime
[root@localhost ~]# yum install -y kde-runtime.x86_64
## --nodeps 表示忽略依赖性
[root@localhost ~ ]# rpm -ivh kolourpaint-libs-4.10.5-4.el7.x86_64.rpm --nodeps
##此时依旧有依赖性
[root@localhost ~]# rpm -ivh kolourpaint-4.10.5-4.el7.x86_64.rpm
##用search无法搜索到相关的软件包;因为libqimageblitz.so.4是一个文件
[root@localhost ~]# yum search libqimageblitz.so.4
##此时可以用whatprovides搜索软件名
[root@localhost ~]# yum whatprovides */libqimageblitz.so.4
[root@localhost ~]# yum install -y qimageblitz-0.0.6-7.el7.x86_64
@3.重新安装,成功!
[root@localhost ~]# rpm -ivh kolourpaint-4.10.5-4.el7.x86_64.rpm
@3测试:
##打开画图软件报错,因为连接虚拟机时未开启图形
[root@localhost ~]# kolourpaint
[root@localhost ~]# exit
##以图形方式连接虚拟机
[root@foundation34 ~]# ssh [email protected] -X
##再次打开画图软件,成功!
[root@localhost ~]# kolourpaint
方法2:下载好软件包和依赖包后直接一起安装即可!
##先强制卸载 kolourpain
[root@localhost ~]# rpm -e kolourpaint --nodeps
[root@localhost ~]# ls
kolourpaint-4.10.5-4.el7.x86_64.rpm
kolourpaint-libs-4.10.5-4.el7.x86_64.rpm
[root@localhost ~]# yum install -y kolourpaint-libs-4.10.5-4.el7.x86_64.rpm kolourpaint-4.10.5-4.el7.x86_64.rpm
[root@localhost ~]# kolourpaint
3.rpm命令
rpm -ivh name.rpm # -i安装,-v显示过程 -h指定加密方式为hash加密
rpm -ivh name.rpm --force #强制安装,但不能忽略依赖性
rpm -ivh name.rpm --nodeps --force #强制安装并且忽略依赖性
rpm -e name #卸载
rpm -ql name #查询软件生成文件
rpm -qc name #查询软件的配置文件名称
rpm -qd name #查询软件的说明文件名称
rpm -qlp name.rpm #查询软件安装后会生成什么文件
rpm -qa #查询系统中安装的所有软件名称
rpm -qa |grep name #查询软件是否安装
rpm -q name #查询软件是否安装
rpm -qp name.rpm #查询软件安装包安装后的名字(p #pack 安装包)
rpm -qf filename #查看filename属于那个安装包
rpm -qi name #查看软件信息
rpm -Kv name.rpm #检测软件包是否被篡改
rpm -qp name.rpm --scripts #检测软件在安装或者卸载过程中执行的动作
注意:name.rpm #安装包的名称
name #软件的名称
-qa |grep 后边跟的名字是模糊指定
-q 后边跟的名字是精确指定的
解决依赖性的方法:(1)先下载所需软件依赖的软件,再下载所需软件
(2)--nodeps 它的主要作用是解决依赖性的死循环
补充:xml是可扩展语言,用于数据封装
实验:
[root@localhost ~]# ls
kolourpaint-4.10.5-4.el7.x86_64.rpm wps-office-10.1.0.5672-1.a21.x86_64.rpm
kolourpaint-libs-4.10.5-4.el7.x86_64.rpm
##卸载wps软件
[root@localhost ~]# yum remove -y wps-office
##-h表示指定加密方式为hash加密
[root@localhost ~]# rpm -ih wps-office-10.1.0.5672-1.a21.x86_64.rpm
##-e表示卸载
[root@localhost ~]# rpm -e wps-office
####-v表示显示安装过程的详细信息
[root@localhost ~]# rpm -ivh wps-office-10.1.0.5672-1.a21.x86_64.rpm
[root@localhost ~]# rpm -e wps-office
##无法卸载,因为有依赖性
[root@localhost ~]# rpm -e kolourpaint
##--nodeps表示忽略依赖性,此时便可以卸载掉
[root@localhost ~]# rpm -e kolourpaint --nodeps
##-q表示该软件是否安装
[root@localhost ~]# rpm -q kolourpaint
package kolourpaint is not installed
[root@localhost ~]# rpm -q httpd
httpd-2.4.6-40.el7.x86_64
[root@localhost ~]# rpm -q wps-office
package wps-office is not installed
##查询系统中是否安装了httpd
[root@localhost ~]# rpm -qa | grep httpd
##安装wps
[root@localhost ~]# rpm -ivh wps-office-9.1.0.4961-1.a18p1.x86_64.rpm
##-qp表示查询软件安装包安装后的名字(p 表是pack安装包)
[root@localhost ~]# rpm -qp httpd
error: open of httpd failed: No such file or directory
##必须是以.rpm结尾的安装包
[root@localhost ~]# rpm -qp wps-office-9.1.0.4961-1.a18p1.x86_64.rpm
wps-office-9.1.0.4961-1.a18p1.x86_64
[root@localhost ~]# rpm -qp kolourpaint-libs-4.10.5-4.el7.x86_64.rpm
##查询软件生成的文件
[root@localhost ~]# rpm -ql httpd
##-ql后边跟的软件名而不是软件包
[root@localhost ~]# rpm -ql wps-office-10.1.0.5672-1.a21.x86_64.rpm
[root@localhost ~]# rpm -ql wps-office
##查询软件的配置文件名称
[root@localhost ~]# rpm -qc httpd
[root@localhost ~]# rpm -qc chrony
[root@localhost ~]# rpm -qc openssh-server
##查看软件信息
[root@localhost ~]# rpm -qi httpd
##查询软件的说明文件名称
[root@localhost ~]# rpm -qd dhcp
##查看某个文件属于哪个安装包
[root@localhost ~]# rpm -qf /etc/httpd/
[root@localhost ~]# rm -rf /bin/ls
[root@localhost ~]# ls
-bash: /usr/bin/ls: No such file or directory
[root@localhost ~]# rpm -qf /bin/ls
[root@localhost ~]# yum reinstall -y coreutils-8.22-11.el7.x86_64
[root@localhost ~]# ls
kolourpaint-4.10.5-4.el7.x86_64.rpm
kolourpaint-libs-4.10.5-4.el7.x86_64.rpm
wps-office-9.1.0.4961-1.a18p1.x86_64.rpm
##安装画图软件
[root@localhost ~]# yum install -y kolourpaint-4.10.5-4.el7.x86_64.rpm kolourpaint-libs-4.10.5-4.el7.x86_64.rpm
##卸载,发现有依赖性
[root@localhost ~]# rpm -e kolourpaint
## --force表示强制安装,但不能忽略依赖性
[root@localhost ~]# rpm -e kolourpaint --force
rpm: only installation and upgrading may be forced
## --nodeps表示忽略依赖性
[root@localhost ~]# rpm -e kolourpaint --nodeps
[root@localhost ~]# rpm -q kolourpaint
package kolourpaint is not installed
[root@localhost ~]# ls
kolourpaint-4.10.5-4.el7.x86_64.rpm
kolourpaint-libs-4.10.5-4.el7.x86_64.rpm
wps-office-9.1.0.4961-1.a18p1.x86_64.rpm
##备份
[root@localhost ~]# cp kolourpaint-4.10.5-4.el7.x86_64.rpm kolourpaint-4.10.5-4.el7.x86_6411.rpm
[root@localhost ~]# rpm -Kv kolourpaint-4.10.5-4.el7.x86_6411.rpm
##模拟篡改软件信息
[root@localhost ~]# echo hello >> kolourpaint-4.10.5-4.el7.x86_6411.rpm
##检测软件包是否被篡改
[root@localhost ~]# rpm -Kv kolourpaint-4.10.5-4.el7.x86_6411.rpm
[root@localhost ~]# rm -rf kolourpaint-4.10.5-4.el7.x86_6411.rpm
@@在网站上下载好的软件包,并非直接安装。在安装之前需要注意查看软件是否被恶意窜改,或者是否在安装或者卸载过程中会执行破坏性动作
##这是我下载的两个软件包
[root@localhost ~]# ls
FluffyMcAwesome-A-6.4.0-11.r19335.x86_64.rpm
FluffyMcAwesome-B-6.4.0-11.r19335.x86_64.rpm
@1.检测软件包是否被篡改;发现两个软件包都没有被篡改过
[root@localhost ~]# rpm -Kv FluffyMcAwesome-A-6.4.0-11.r19335.x86_64.rpm
[root@localhost ~]# rpm -Kv FluffyMcAwesome-B-6.4.0-11.r19335.x86_64.rpm
@2.检测软件在安装或者卸载过程中执行的动作
[root@localhost ~]# rpm -qp FluffyMcAwesome-A-6.4.0-11.r19335.x86_64.rpm --scripts
[root@localhost ~]# rpm -qp FluffyMcAwesome-B-6.4.0-11.r19335.x86_64.rpm --scripts