大家在更改yum源以后可能会遇到initscripts-9.49.47-1.el7.x86_64与redhat-release-server-7.0-1.el7.x86_64冲突的问题,解决思路是将redhat-release-server-7.0-1.el7.x86_64删除,安装centos-release.x86_64 的某个版本,再升级initscripts就行了。网上很多人只给出删除redhat-release-server的建议,但是实际操作时很有可能一重启就进入紧急模式,得不偿失。
首先,大家应该查一下本机的initscripts的版本,有没有更适合自己系统的。
输入以下命令:
[root@linuxprobe bin]# yum list initscripts
得到以下反馈:
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
已安装的软件包
initscripts.x86_64 9.49.17-1.el7 @anaconda/7.0
可安装的软件包
initscripts.x86_64 9.49.47-1.el7 base
说明当前版本是initscripts.x86_64 9.49.17-1.el7 @anaconda/7.0
可以用更适合系统的initscripts.x86_64 9.49.47-1.el7 base 版本来替换。
[root@linuxprobe bin]# rpm -Uvh /home/kivy/initscripts-9.49.47-1.el7.x86_64.rpm
错误:依赖检测失败:
redhat-release < 7.5-0.11 与 initscripts-9.49.47-1.el7.x86_64 冲突
下载好该版本并尝试升级,得到的反馈是与redhat-release冲突,后者起码是7.5-0.11版本的。我们可以把它删除掉(注意备份),然后换一个centos-release的合适版本,那么哪个版本合适呢?
[root@linuxprobe bin]# yum list centos-release
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
可安装的软件包
centos-release.x86_64 7-7.1908.0.el7.centos base
使用以上命令可以知道,最合适的版本是 centos-release.x86_64 7-7.1908.0.el7.centos base
直接安装会出问题:
[root@linuxprobe bin]# rpm -Uvh /home/kivy/centos-release-7-7.1908.0.el7.centos.x86_64.rpm
准备中... ################################# [100%]
file /etc/os-release from install of centos-release-7-7.1908.0.el7.centos.x86_64 conflicts with file from package redhat-release-server-7.0-1.el7.x86_64
file /etc/redhat-release from install of centos-release-7-7.1908.0.el7.centos.x86_64 conflicts with file from package redhat-release-server-7.0-1.el7.x86_64
file /etc/rpm/macros.dist from install of centos-release-7-7.1908.0.el7.centos.x86_64 conflicts with file from package redhat-release-server-7.0-1.el7.x86_64
file /etc/system-release from install of centos-release-7-7.1908.0.el7.centos.x86_64 conflicts with file from package redhat-release-server-7.0-1.el7.x86_64
file /etc/system-release-cpe from install of centos-release-7-7.1908.0.el7.centos.x86_64 conflicts with file from package redhat-release-server-7.0-1.el7.x86_64
file /usr/lib/systemd/system-preset/90-default.preset from install of centos-release-7-7.1908.0.el7.centos.x86_64 conflicts with file from package redhat-release-server-7.0-1.el7.x86_64
[root@linuxprobe bin]# rpm -e redhat-release-server-7.0-1.el7.x86_64 --nodeps
但是,还是有问题:好几个东西与redhat-release-server-7.0-1.el7.x86_64冲突,没办法删掉(注意备份)。
所以我们要先去阿里云或者其他镜像服务器上下载好,删除redhat-release以后,不重启机器,马上安装centos-release
[root@linuxprobe bin]# rpm -Uvh /home/kivy/centos-release-7-7.1908.0.el7.centos.x86_64.rpm
准备中... ################################# [100%]
正在升级/安装...
1:centos-release-7-7.1908.0.el7.cen################################# [100%]
错误:解压压缩文件 在文件/usr/share/doc/redhat-release 失败:cpio: rename 失败 - 是一个目录
错误:centos-release-7-7.1908.0.el7.centos.x86_64: 安裝 已失败
安装时出错!提示“ /usr/share/doc/redhat-release 失败:cpio: rename 失败 - 是一个目录 ”
推测:安装centos-release时,这个redhat-release目录碍事了,所以我们手动把它删除掉(注意备份)。
[root@linuxprobe doc]# rm -r /usr/share/doc/redhat-release
rm:是否删除目录 "/usr/share/doc/redhat-release"?y
[root@linuxprobe doc]# rpm -Uvh /home/kivy/centos-release-7-7.1908.0.el7.centos.x86_64.rpm
准备中... ################################# [100%]
正在升级/安装...
1:centos-release-7-7.1908.0.el7.cen################################# [100%]
这样centos-release就安装好了。然后安装下载好的 initscripts-9.49.47-1.el7.x86_64.rpm 。
[root@linuxprobe doc]# rpm -Uvh /home/kivy/initscripts-9.49.47-1.el7.x86_64.rpm
准备中... ################################# [100%]
正在升级/安装...
1:initscripts-9.49.47-1.el7 ################################# [ 50%]
UPGRADE: Automatically re-enabling default systemd units:
brandbot.path
rhel-autorelabel.service
rhel-autorelabel-mark.service
rhel-configure.service
rhel-dmesg.service
rhel-domainname.service
rhel-import-state.service
rhel-loadmodules.service
rhel-readonly.service
正在清理/删除...
2:initscripts-9.49.17-1.el7 ################################# [100%]
大功告成。