从CentOS 7.0升级到7.7版本
我平时都在VirtualBox上装虚拟机,方法是导入ova镜像文件,比如导入从网上下载的CentOS7-base.ova,该ova为CentOS 7.0版本,而现在最新版本为7.7,为此进入系统后第一件事就是系统升级:
# yum update
可是该命令居然异常退出了!
重新进入系统后检查:
# uname -r
3.10.-123.9..el7.x86_64 # cat /proc/version
Linux version 3.10.-123.9..el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8. (Red Hat 4.8.-) (GCC) ) # SMP Tue Oct :: UTC # cat /etc/redhat-release
CentOS Linux release 7.7. (Core)
可见Linux发行版本号已改为7.7,但核心仍然是旧版本,并且再次执行yum update命令失败,说明系统未升级成功。经常一段时间摸索找到两种从7.0升级到7.7的方法。
方法一:升级失败后手工解决错误并重新升级
yum update命令异常退出后重新登录系统,然后执行:
清理上次失败的命令
# yum-complete-transaction --cleanup-only
查看重复的包
# package-cleanup --dupes
kbd-misc-1.15.-.el7.noarch
kbd-misc-1.15.-.el7.noarch
nss-tools-3.44.-.el7_7.x86_64
nss-tools-3.16.-.el7_0.x86_64
...
gzip-1.5-.el7.x86_64
gzip-1.5-.el7.x86_64
该命令本应无输出,但由于上次yum update命令失败导致大量重复的新旧包。
删除重复的包
# package-cleanup --cleandupes
...
Complete!
Warning: Some duplicates were not removed because they are required by installed packages.
You can try --cleandupes with --removenewestdupes, or review them with --dupes and remove manually.
该命令虽然删除了很多重复包,但提示未完全清除。
尝试重新升级
# yum update
...
--> Finished Dependency Resolution
Error: Package: avahi-libs-0.6.-.el7.x86_64 (@anaconda)
Requires: avahi = 0.6.-.el7
Removing: avahi-0.6.-.el7.x86_64 (@anaconda)
avahi = 0.6.-.el7
Updated By: avahi-0.6.-.el7.x86_64 (base)
avahi = 0.6.-.el7
Error: firewalld conflicts with :NetworkManager-0.9.9.1-.git20140326.4dba720.el7_0..x86_64
Error: avahi-libs conflicts with avahi-0.6.-.el7.x86_64
You could try using --skip-broken to work around the problem
...
仍升级失败!
根据上面的错误信息删除旧包
# rpm -e avahi-libs-0.6.-.el7.x86_64
error: Failed dependencies:
avahi-libs = 0.6.-.el7 is needed by (installed) avahi-0.6.-.el7.x86_64
avahi-libs = 0.6.-.el7 is needed by (installed) avahi-autoipd-0.6.-.el7.x86_64
该命令失败,原因是存在依赖项。为此需同时删除依赖项:
# rpm -e avahi-libs-0.6.-.el7.x86_64 \
> avahi-0.6.-.el7.x86_64 \
> avahi-autoipd-0.6.-.el7.x86_64
error: Failed dependencies:
avahi-autoipd is needed by (installed) NetworkManager-:0.9.9.1-.git20140326.4dba720.el7_0..x86_64
仍有其它级联依赖项,一并删除:
# rpm -e avahi-libs-0.6.-.el7.x86_64 \
> avahi-0.6.-.el7.x86_64 \
> avahi-autoipd-0.6.-.el7.x86_64 \
> NetworkManager-:0.9.9.1-.git20140326.4dba720.el7_0..x86_64
error: Failed dependencies:
NetworkManager = :0.9.9.1-.git20140326.4dba720.el7_0. is needed by (installed) NetworkManager-tui-:0.9.9.1-.git20140326.4dba720.el7_0..x86_64
继续一并删除:
# rpm -e avahi-libs-0.6.-.el7.x86_64 \
> avahi-0.6.-.el7.x86_64 \
> avahi-autoipd-0.6.-.el7.x86_64 \
> NetworkManager-:0.9.9.1-.git20140326.4dba720.el7_0..x86_64 \
> NetworkManager-tui-:0.9.9.1-.git20140326.4dba720.el7_0..x86_64
成功!
继续尝试升级
# yum update
...
Replaced:
grub2.x86_64 :2.02-0.2..el7.centos. Complete!
成功!成功升级后请重启系统:
# reboot
再次查看并删除重复的包
# package-cleanup --dupes
...
kbd-misc-1.15.-.el7.noarch
kbd-misc-1.15.-.el7.noarch
libdb-5.3.-.el7.x86_64
libdb-5.3.-.el7_0..x86_64
...
libteam-1.27-.el7.x86_64
libteam-1.9-.el7.x86_64
仍有一些重复的包,删除之:
# package-cleanup --cleandupes
...
--> Finished Dependency Resolution
Error: Rpmdb checksum is invalid: pkg checksums: grub2-tools-:2.02-0.2..el7.centos..x86_64
You could try using --skip-broken to work around the problem
...
不知何故居然报错了,但再次执行就成功了:
# package-cleanup --cleandupes
...
Removed:
audit-libs.x86_64 :2.3.-.el7 bind-license.noarch :9.9.-.el7 device-mapper.x86_64 :1.02.-.el7
device-mapper-event-libs.x86_64 :1.02.-.el7 device-mapper-libs.x86_64 :1.02.-.el7 dracut.x86_64 :-.el7
e2fsprogs-libs.x86_64 :1.42.-.el7 kbd-misc.noarch :1.15.-.el7 libcom_err.x86_64 :1.42.-.el7
libcurl.x86_64 :7.29.-.el7 libdb.x86_64 :5.3.-.el7_0. libss.x86_64 :1.42.-.el7
libteam.x86_64 :1.9-.el7 systemd.x86_64 :-.el7_0. systemd-libs.x86_64 :-.el7_0. Complete!
再检查一下是否有重复的包:
# package-cleanup --dupes
没有重复的包了。
重启系统并再次检查新版本号
# reboot # uname -r
3.10.-1062.18..el7.x86_64 # cat /proc/version
Linux version 3.10.0-1062.18.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) ) #1 SMP Tue Mar 17 23:49:17 UTC 2020 # cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
完全正确!至此升级成功!
方法二:从7.0到7.5再到7.7版本
如果你已执行了yum update命令并且失败则只能用上面的方法一解决,本方法适用于新装系统。
从7.0升级到7.5版本
yum update命令默认升级到最新版,但我们可修改配置文件让其升级到指定的版本。
检查是否有更新
# yum list centos-release
...
Installed Packages
centos-release.x86_64 7-0.1406.el7.centos.2.5 @updates
Available Packages
centos-release.x86_64 7-7.1908.0.el7.centos base
该命令显示当前版本是7.0,可升级到7.7版本(但我们知道升级会报错)。
修改CentOS-Base.repo文件,指向7.5版本库
把CentOS-Base.repo文件里的mirrorlist注释掉,并增加相应的baseurl,其它不变,如下:
# cat /etc/yum.repos.d/CentOS-Base.repo
...
[base]
...
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
baseurl=http://vault.centos.org/7.5.1804/os/$basearch/
...
[updates]
...
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
baseurl=http://vault.centos.org/7.5.1804/updates/$basearch/
...
[extras]
...
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
baseurl=http://vault.centos.org/7.5.1804/extras/$basearch/
...
[centosplus]
...
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
baseurl=http://vault.centos.org/7.5.1804/centosplus/$basearch/
...
清空缓存
修改配置文件后要清理一下缓存:
# yum clean all
再次检查更新
# yum list centos-release
Installed Packages
centos-release.x86_64 -0.1406.el7.centos.2.5 @updates
Available Packages
centos-release.x86_64 -5.1804..el7.centos updates
可见如果升级则将升级到7.5版本。
升级到7.5版本
# yum update
升级成功后请reboot重启系统。
从7.5升级到7.7版本
把上面的CentOS-Base.repo文件还原、清空缓存、然后执行yum update即可。
从CentOS 7.0升级到7.7版本的更多相关文章
- Ubuntu 14.0 升级内核到指定版本
1.卸载现有内核sudo apt purge linux-headers-* linux-headers-*-generic linux-image-*-generic linux-image-ext ...
- CentOS 6.6 升级GCC G++ (当前最新版本为v6.1.0) (完整)
---恢复内容开始--- CentOS 6.6 升级GCC G++ (当前最新GCC/G++版本为v6.1.0) 没有便捷方式, yum update.... yum install 或者 添加y ...
- CentOS 7.0 下 Python 2.7 升级到 Python 3.5
前段因为时间工作需要,要把 Centos 7.0 默认安装的 Python 2.7 升级到 Python 3.5. 具体操作如下: # 安装 gcc gcc-c++ 等编译工具软件 yum insta ...
- 【转】CentOS 6.6 升级GCC G++ (当前最新版本为v6.1.0) (完整)
原文地址:https://www.cnblogs.com/lzpong/p/5755678.html 我这里是centos7 升级到gcc8.1,过程差不多,参考这篇文章,记录一下. ---原文--- ...
- CentOS 6.9升级GCC至7.3.0版本
1.查看当前centos版本: cat /etc/redhat-release 2. 安装centos6.9默认的开发工具,包含gcc,g++,make等等一系列工具: yum groupinsta ...
- centos 7.0 编译安装php 7.0.3
php下载页面 http://cn2.php.net/downloads.php 7.0.3多地区下载页面 http://cn2.php.net/get/php-7.0.3.tar.gz/from/a ...
- centos 7.0 安装nginx 1.9.10
可以参考以前安装成功的案例 centos 7.0 nginx 1.7.9成功安装过程 官网下载 http://nginx.org/en/download.html nginx下载位置 /usr/loc ...
- centos 7.0 nginx 1.7.9成功安装过程
centos 7.0根目录 的目录构成 [root@localhost /]# lsbin dev home lib64 mnt proc run srv tmp varboot etc lib me ...
- centos 7.0 编译 安装mysql 5.6.22 过程 已完成~ 成功~ 撒花~
mysql 下载目录/usr/local/srcmysql 解压目录 /usr/local/bin/mysql GitHub https://github.com/mysql/mysql-server ...
随机推荐
- go micro实战01:快速搭建服务
背景 go-micro给我们提供了一个非常便捷的方式来快速搭建微服务,而且并不需要提前系统了解micro,下面用一个简单的示例来快速实现一个服务. 创建Proto文件 因为我们要做微服务,那么就一定有 ...
- 洛谷P1957口算练习题题解
前言: 题目传送门:https://www.luogu.com.cn/problem/P1957 其实这很简单 纯模拟撒~~~~ 正文开始: _话说 ,就当本蒟蒻正高高兴兴的刷水题时,居然 碰到了这个 ...
- Servlet(三)----Servlet体系与HTTP
## Servlet的体系结构 Servlet --- 接口 | | GenericServlet --- 抽象类 | | HttpServlet -- 抽象类 GenericServle ...
- [BFS,大水题] Codeforces 198B Jumping on Walls
题目:http://codeforces.com/problemset/problem/198/B Jumping on Walls time limit per test 2 seconds mem ...
- jquery实现元素的显示和隐藏
这个是指定表格列的隐藏的demo,其余的都大同小异了 $("#account-table tr").find($("#tcNum")).show();//sho ...
- DOM 操作成本到底高在哪儿?
从我接触前端到现在,一直听到的一句话:操作DOM的成本很高,不要轻易去操作DOM.尤其是React.vue等MV*框架的出现,数据驱动视图的模式越发深入人心,jQuery时代提供的强大便利地操作DOM ...
- Sprinboot 整合 RabbitMQ,RabbitMQ 消息重试机制
当消费者消费消息的时候,出现错误,RabbitMQ 本身会有
- SpringBoot 集成多数据源
一个项目中怎么划分数据库,可以通过具体业务需求. 项目中数据源怎么如何划分,通过注解的方式@Datasource(ref="") 在方法上指定,会连接指定的数据源,这种方式比较繁琐 ...
- 12c OCR corrupted results in CRS stack down.
12c OCR corrupted results in CRS stack down. 1. check crsd.trc2017-03-21 16:14:44.667838 : CRSOCR:2 ...
- elasticesearch搜索返回高亮关键字
pre_tags 前缀标签 post_tags 后缀标签 tags_schema 设置为styled可以使用内置高亮样式 require_field_match 多字段高亮需要设置为false 使用h ...