首先我们要明白什么是依赖关系,
我们先查看系统帮我们安装好的vim时一共安装了哪些软件包
现在我们先卸载这些软件包试试
到这里发现前三个软件包都没法卸载,从上图可以看出他们都是被某个文件需要而无法卸载,这些就是依赖包。
而只有最后一个可以直接卸载,是因为他不被任何的文件所需要。
就想写代码时一样想要代码能运行必须先有开发环境,从上图可以看出vim的运行环境就是vim-common。
你也可以通过rpm -qR vim-enhanced 查询
这时我们再卸载vim-common试试
成功了,所以卸载时必须先卸载主程序再卸载依赖包。
rpm -e vim-enhanced ---先卸载主程序
rpm -e vim-common ---后卸载依赖包
卸载后我们首先通过本地的rpm包给安装回来
这个亮起说明我本地的光驱已经连接上
df查看一下挂载点并cd到centos7光驱的目录路径
再ls查看目录里有给叫Packages的目录cd进去
用ls查看过滤出vim的安装包
这时我们先安装vim-enhanced试试
发现报错了,也是依赖关系的原因,安装vim-enhanced需要vim-common而我们还没有安装vim-common。
成功了,所以安装是先依赖后主程序
rpm -ivh vim-common-7.4.629-7.el7.x86_64.rpm---先安装依赖包
rpm -ivh vim-enhanced-7.4.629-7.el7.x86_64.rpm ---后安装主程序
我们再通过本地的yum源安装
我们转到本地光驱的目录下ls查看到有个叫repodata的一个目录
这里面其实是一个依赖关系列表,我们安装系统时,系统就是根据这个列表的依赖关系来为我们安装我们所需要的安装包
接下来我们就使用本地yum源安装和卸载软件
首先cd /etc/yum.repos.d/
这里本来有系统自带的yum源,我把他备份到repobak目录里了剩下的是我自己配置的阿里云网络yum源我也备份进行,怕影响实验。
vim dvd.repo
保存退出
[dvdrom] ---容器名称,一定要放在[]中
name="yum dvd rom" ---容器说明,可以自己随便写。
baseurl=file:/run/media/root/CentOS 7 x86_64 ---告诉操作系统依赖关系列表的位置
gpgcheck=0 ---是否做密钥对验证---开启就是去网络上权威的yum源下载他的公钥,生成数字证书保存到本地,在下载安装这个yum源的软件时会拿本地的公钥证书去比对,匹配了才能下载。如果为 1 则表示 RPM 的数字证书生效;如果为 0 则表示 RPM 的数字证书不生效,只有开启了才会用到gpgkey。
gpgkey:数字证书的公钥文件保存位置。
ls查看
再用yum remove vim-common卸载掉vim-common看看这次会不会报错
从图中可以看出dvd.repo这个配置文件已经生效了。检测到依赖的的关系并且解决掉了依赖关系问是否继续
按y回车就行
成功卸载
接着再用yum install vim安装回来
安装时报错了这里说我路径格式错误
于是我打算用mount重新挂载下光驱
由于vim被卸载了所以可以用vi dvd.repo编辑
接下来继续用yum install -y vim-enhanced安装
成功安装
如果是启用yum源安装的话是,就可以不用去考虑依赖包的安装顺序,系统会根据依赖关系列表帮我们安装好软件。
实验结束!