从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 ...
随机推荐
- Uncovering thousands of new peptides with sequence-mask-search hybrid de novo peptide sequencing framework (使用序列掩码搜索结合肽段从头测序框架发现了数千个新肽段)-解读人:刘佳维
期刊名:Molecular & Cellular Proteomics 发表时间:(2019年12月) IF:4.828 单位: 朱拉隆功大学 费城威斯塔研究所 物种:人 技术:de novo ...
- 全文搜索技术--solr7.1之mysql的安装步骤
1.安装命令 #>在线安装wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 输完上面一句话不能正常的下载安装 ...
- python基础知识1——简介与入门
什么是Python:Python能做什么:安装与更新:第一个Python程序:变量:pyc字节码:编码:条件和循环:Python运算符:算数,比较,赋值,位,逻辑::::::::::::::::::: ...
- mybatis3.2.7应用_高级映射(一对一、一对多、多对多)
1. 一对一查询 需求:查询订单信息,关联查询创建订单的用户信息 1.1 使用resultType实现 1.1.1 sql语句 确定查询的主表:订单表 确定查询的关联表:用户表 ...
- 【2019多校第一场补题 / HDU6582】2019多校第一场E题1005Path——最短路径+网络流
HDU6582链接 题意 在一张有向图中,有一个起点和一个终点,你需要删去部分路径,使得起点到终点的最短距离增加(并不要求需要使得距离变成最大值),且删除的路径长度最短.求删去的路径总长为多少 分析 ...
- type=file 文件修改表单 名称不能正常回显的问题
easyui 框架下 代码如下: css: .file_box{ float: right; width: 1035px; border: 1px solid #999; height: 32p ...
- pat 1044.火星数字 Java版
个人网站:https://www.lingluan.xyz 火星人是以13进制计数的: 地球人的0被火星人称为tret. 地球人数字1到12的火星文分别为:jan, feb, mar, apr, ma ...
- Android LinearLayout线性布局详解
为了更好地管理Android应用的用户界面里的各组件,Android提供了布局管理器.通过使用布局管理器,Android应用图形用户界面具有良好的平台无关性.推荐使用布局管理器来管理组件的分布.大小, ...
- Apache服务器故障排除攻略
Apache服务器故障排除攻略 应用服务器Apache浏览器配置管理网络应用 随着网络技术的普及.应用和Web技术的不断完善,Web服务已经成为互联网上重要的服务形式之一.原有的客户端/服务器模式正 ...
- html ajax 异步加载 局部刷新
1. getJSON 优点: 简单高效,直接返回处理好的json数据 缺点: 只能使用get请求和使用json数据 <script src ='jquery.min.js'></sc ...