从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 ...
随机推荐
- 采用C++实现哈夫曼树的创建并输出哈夫曼编码
一.这篇随笔来自一道信息论的作业题,因为手动编码过于复杂,所以想到了编程解决,原题目如下图所示: 二.源代码如下: #include <iostream> #include <str ...
- DRF之APIView源码简析
一. 安装djangorestframework 安装的方式有以下三种,注意,模块就叫djangorestframework. 方式一:pip3 install djangorestframework ...
- Django魔法
(●'◡'●)
- VirtualBox 安装 Centos8 使用 Xshell 连接
1.下载CentOS CentOS下载地址:https://wiki.centos.org/Download 这里选择本地安装包,网络安装包在安装时需要在线下载资源比较慢 2.安装VirtualBox ...
- MySQL----多表操作
##多表之间的关系 1.一对一(了解) * 如:人和身份证 * 分析:一个人只有一个身份证,一个身份证只能对应一个人. 2.一对多(多对一) * 如:部门和员工 * 分析:一个部门有多个员工,一个员工 ...
- 题解 P1052 【过河】
显然是\(dp\),是用\(STL\)当中的\(map\)可以做到30分 #include <bits/stdc++.h>//万能头文件 using namespace std; int ...
- springboot2 + mybatis 多种方式实现多数据配置
业务系统复杂程度增加,为了解决数据库I/O瓶颈,很自然会进行拆库拆表分服务来应对.这就会出现一个系统中可能会访问多处数据库,需要配置多个数据源. 第一种场景:项目服务从其它多处数据库取基础数据进行业务 ...
- 深度学习中正则化技术概述(附Python代码)
欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习.深度学习的知识! 磐石 介绍 数据科学研究者们最常遇见的问题之一就是怎样避免过拟合. ...
- [RH134] 10-NFS和Samba客户端
NFS和samba服务器的配置,请参考: 这里,我们只讨论客户端的使用 1.NFS客户端的使用 nfs实现的是类Unix系统之间的远程共享目录. 假设我们已经有一个提供nfs服务的服务器,IP为192 ...
- python之openpyxl模块(最全总结 足够初次使用)
openpyxl模块 Python_Openpyxl 1. 安装 pip install openpyxl 2. 打开文件 ① 创建 from openpyxl import Workbook # 实 ...