CentOS 7 升級到 CentOS 8

生活無限好發表於2020-12-09

友情提醒

升級前記得備份伺服器上的資料,升級到 Centos 8 後不久(大概幾個小時)就被人掛了馬

CentOS 7 升級到 CentOS 8

,反正是測試機,也懶得去找問題出在哪裡,直接重灌了系統:smile:,雲伺服器建議大家儘量通過官方提供的映象升級,方便快捷,自己手動升級會碰到一些奇奇怪怪的問題需要解決

準備工作

備份

zip -r -q -o /etc/yum.repos.d/CentOS-Base_backup.zip /etc/yum.repos.d/*
cd /etc/yum.repos.d/
ls | grep -v CentOS-Base_backup.zip | xargs rm

設定映象源為阿里雲

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

非阿里雲ECS使用者會出現 Couldn’t resolve host ‘mirrors.cloud.aliyuncs.com’ 資訊,不影響使用。使用者也可自行修改相關配置: eg:

sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo

生成快取

yum makecache

配置 Epel 映象

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

開始升級

安裝 yum-utils 工具

yum install -y yum-utils

通過執行命令來解析 RPM 軟體包

yum install -y rpmconf
rpmconf -a

全部選擇預設配置

CentOS 7 升級到 CentOS 8
default =什麼,就選擇什麼

對未安裝或不需要的包執行清理

package-cleanup --leaves
package-cleanup --orphans

安裝 dnf

dnf 是 CentOS 8 的預設軟體包管理器

yum install -y dnf

刪除 yum 軟體包管理器

dnf -y remove yum yum-metadata-parser
rm -rf /etc/yum

使用 dnf 更新系統

dnf upgrade -y

安裝 CentOS 8 相關軟體包

dnf install https://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/Packages/{centos-linux-release-8.3-1.2011.el8.noarch.rpm,centos-gpg-keys-8-2.el8.noarch.rpm,centos-linux-repos-8-2.el8.noarch.rpm}

檔案路徑需要通過訪問 https://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/Packages/ 來獲取

CentOS 7 升級到 CentOS 8

找到 release,gpg-keys,repos這三個檔案的檔名替換到下載上面的 {} 裡。

備份 CentOS 7 映象的配置

zip -r -q -o /etc/yum.repos.d/CentOS-Base_backup_7.zip /etc/yum.repos.d/*
ls | grep -v CentOS-Base_backup | xargs rm

設定 CentOS 8 映象源為阿里雲

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo

sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo

dnf makecache

更新 Epel 映象

dnf -y upgrade  https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm

sed -i 's|^#baseurl=https://download.fedoraproject.org/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel*
sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*

dnf clean all

刪除 CentOS 7 的舊核心

rpm -e `rpm -q kernel` --nodeps

刪除有衝突的軟體包

rpm -e --nodeps sysvinit-tools

開始 CentOS 8 版本升級

dnf -y --releasever=8 --allowerasing --setopt=deltarpm=false distro-sync

如果升級發現有報錯,需要解除安裝 from package 後面的包名:

rpm -e --nodeps openssl11-libs-1:1.1.1g-1.el7.x86_64
rpm -e --nodeps python36-rpmconf-1.0.22-1.el7.noarch

再次執行升級,此步驟需要等待較長時間

dnf -y --releasever=8 --allowerasing --setopt=deltarpm=false distro-sync

為 CentOS 8 安裝新核心

dnf -y install kernel-core

安裝 CentOS 8 最小軟體包

dnf -y groupupdate "Core" "Minimal Install"

安裝完成後可以通過以下命令檢查安裝的 CentOS 版本

cat /etc/os-release
cat /etc/redhat-release

重啟伺服器

重啟後如果無法連線遠端伺服器,請參考 部落格:CentOS 8 修改網路卡名稱

本作品採用《CC 協議》,轉載必須註明作者和本文連結
www.haowuliaoa.com

相關文章