修复CentOS升级过程中出现的package is a duplicate with的错误

服务器CentOS 7升级过程中出现中断,再次运行yum update则出现大量的包重复问题。

错误内容大致如下:

glibc-2.12-1.107.el6_4.5.x86_64 is a duplicate with glibc-2.12-1.107.el6_4.4.x86_64
glibc-common-2.12-1.107.el6_4.5.x86_64 is a duplicate with glibc-common-2.12-1.107.el6_4.4.x86_64
glibc-devel-2.12-1.107.el6_4.5.x86_64 is a duplicate with glibc-devel-2.12-1.107.el6_4.4.x86_64
glibc-devel-2.12-1.107.el6_4.5.x86_64 has missing requires of glibc-headers = ('0', '2.12', '1.107.el6_4.5')
iputils-20071127-17.el6_4.2.x86_64 is a duplicate with iputils-20071127-17.el6_4.x86_64
nspr-4.9.5-2.el6_4.x86_64 is a duplicate with nspr-4.9.2-1.el6.x86_64
nss-3.14.3-4.el6_4.x86_64 is a duplicate with nss-3.14.0.0-12.el6.x86_64
nss-softokn-3.14.3-3.el6_4.x86_64 is a duplicate with nss-softokn-3.12.9-11.el6.x86_64
nss-util-3.14.3-3.el6_4.x86_64 is a duplicate with nss-util-3.14.0.0-2.el6.x86_64
tzdata-2013g-1.el6.noarch is a duplicate with tzdata-2013c-2.el6.noarch
2:xinetd-2.3.14-39.el6_4.x86_64 is a duplicate with 2:xinetd-2.3.14-38.el6.x86_64

解决:

1,需要安装yum-utils

yum install yum-utils -y

2,清除yum缓存

yum clean all

3,列出重复的包

package-cleanup --dupes

4,删除重复的包

package-cleanup --cleandupes --removenewestdupes

5,清除可能存在的损坏包

package-cleanup --problems

6,继续升级

yum update -y

处理完成。

转自:https://my.oschina.net/u/1261643/blog/1840518

centos 更新内核后切换内核并删除旧内核

切换内核:

更新最新内核后需要删除旧内核腾出空间,突然发现虽然更新了内核但是没有启动

首先
uname -r
确认当前启动内核版本

其次
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

查看当前安装好的内核列表

下来

grub2-set-default 0

设置你想要启动的内核序号

最后

grub2-mkconfig -o /boot/grub2/grub.cfg

生成最新的启动列表

重启


删除旧内核:

先查询一下系统已安装的内核
rpm -qa | grep kernel
sudo yum remove -y 旧内核的名字

就好了

Delta RPMs disabled because /usr/bin/applydeltarpm not installed

错误提示:

Delta RPMs disabled because /usr/bin/applydeltarpm not installed

错误原因:
未安装deltarpm。
解决方案:
依次执行下面两条命令,即可解决。

yum provides ‘*/applydeltarpm’
yum install deltarpm

执行之后,继续按照原来的步骤,问题解决。

解决centos7 开机/etc/rc.local 不执行的问题

最近发现centos7 的/etc/rc.local不会开机执行,于是认真看了下/etc/rc.local文件内容的就发现了问题的原因了

#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In constrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run ‘chmod +x /etc/rc.d/rc.local’ to ensure
# that this script will be executed during boot.

翻译:

#这个文件是为了兼容性的问题而添加的。
#
#强烈建议创建自己的systemd服务或udev规则来在开机时运行脚本而不是使用这个文件。
#
#与以前的版本引导时的并行执行相比较,这个脚本将不会在其他所有的服务后执行。
#
#请记住,你必须执行“chmod +x /etc/rc.d/rc.local”来确保确保这个脚本在引导时执行。

于是我有确认了下/etc/rc.local的权限

[root@localhost ~]# ll /etc/rc.local
lrwxrwxrwx. 1 root root 13 8月 12 06:09 /etc/rc.local -> rc.d/rc.local
[root@localhost ~]# ll /etc/rc.d/rc.local
-rw-r–r–. 1 root root 477 6月 10 13:35 /etc/rc.d/rc.local

/etc/rc.d/rc.local没有执行权限,于是按说明的内容执行

chmod +x /etc/rc.d/rc.local

重启后发现/etc/rc.local能够执行了。
看样子是版本的变迁,/etc/rc.local /etc/rc.d/rc.local正在弃用的路上。