美文网首页
CentOS 7 远程升级到 CentOS 8

CentOS 7 远程升级到 CentOS 8

作者: WqyJh | 来源:发表于2020-01-24 20:40 被阅读0次

    CentOS 8 已经正式发布了,主要新特性如下:

    • 默认内核版本 4.18
    • 使用 dnf 作为默认包管理器(yum 为指向 dnf 的软链接)
    • BaseOS/AppStream 存储库
    • Python 的默认版本为 3.6
    • nftables 取代 iptables
    • GCC 8.2, glibc 2.28
    • OpenJDK 11, Node.js
    • MySQL 8.0, Mariadb 10.3, PostgreSQL 10, Redis 5

    安装 CentOS 8 可以通过下载官方镜像,制作启动 U 盘来完成。本文不使用启动 U 盘,而是在 CentOS 7 系统运行的情况下,远程操作,热升级到 CentOS 8。

    注意:热升级不能保障数据安全,因此不建议在生产环境中使用。本文作者用这种方法是因为人在家里无法使用 U 盘安装,但是又需要给一台尚未投入生产的 CentOS 7 服务器升级系统。

    1. 安装 yum-utils

    # 安装 epel
    sudo yum install epel-release -y
    
    sudo yum install yum-utils rpmconf -y
    sudo rpmconf -a
    
    sudo package-cleanup --leaves
    sudo package-cleanup --orphans
    

    2. 安装 dnf

    sudo yum install dnf -y
    
    sudo dnf -y remove yum yum-metadata-parser
    sudo rm -rf /etc/yum /etc/yum.repos.d
    

    3. 升级软件源

    #sudo dnf upgrade -y
    
    curl -O 'http://mirrors.ustc.edu.cn/centos/8/BaseOS/x86_64/os/Packages/centos-gpg-keys-8.1-1.1911.0.8.el8.noarch.rpm'
    curl -O 'http://mirrors.ustc.edu.cn/centos/8/BaseOS/x86_64/os/Packages/centos-repos-8.1-1.1911.0.8.el8.x86_64.rpm'
    curl -O 'http://mirrors.ustc.edu.cn/centos/8/BaseOS/x86_64/os/Packages/centos-release-8.1-1.1911.0.8.el8.x86_64.rpm'
    sudo dnf install -y centos-gpg-keys-8.1-1.1911.0.8.el8.noarch.rpm centos-repos-8.1-1.1911.0.8.el8.x86_64.rpm centos-release-8.1-1.1911.0.8.el8.x86_64.rpm
    
    sudo dnf -y upgrade https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
    

    4. 升级内核和软件包

    sudo dnf clean all
    
    sudo rpm -e `rpm -q kernel` # 移除旧内核
    sudo rpm -e --nodeps sysvinit-tools
    sudo dnf -y --releasever=8 --allowerasing --setopt=deltarpm=false distro-sync
    
    # 安装新内核
    sudo dnf -y install kernel-core
    
    # 升级基本软件包
    sudo dnf -y groupupdate "Core" "Minimal Install"
    

    5. 更新 grub 菜单

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

    Problem

    移除旧内核的时候出现以下错误,表明有软件包依赖该内核,必须先移除这个软件包才能继续操作。

    这个问题不一定会出现,因为本文使用的 CentOS 7 镜像是 Vagrant 上的 centos/7 (virtualbox, 1905.1) 镜像,其中包含某些特定软件包不会在通用系统中存在。

    sudo rpm -e `rpm -q kernel`
    错误:依赖检测失败:
        kernel >= 3.10.0-384.el7 被 (已安裝) hypervvssd-0-0.34.20180415git.el7.x86_64 需要
        kernel >= 3.10.0-384.el7 被 (已安裝) hypervkvpd-0-0.34.20180415git.el7.x86_64 需要
        kernel >= 3.10.0-384.el7 被 (已安裝) hypervfcopyd-0-0.34.20180415git.el7.x86_64 需要
        kernel >= 3.10.0-384.el7 被 (已安裝) hypervvssd-0-0.34.20180415git.el7.x86_64 需要
        kernel >= 3.10.0-384.el7 被 (已安裝) hypervkvpd-0-0.34.20180415git.el7.x86_64 需要
        kernel >= 3.10.0-384.el7 被 (已安裝) hypervfcopyd-0-0.34.20180415git.el7.x86_64 需要
    

    用以下命令移除这些软件包。

    sudo dnf -y remove hypervvssd hypervkvpd
    sudo rpm -e hypervfcopyd
    

    移除之后重新执行移除旧内核的操作。

    Reference

    相关文章

      网友评论

          本文标题:CentOS 7 远程升级到 CentOS 8

          本文链接:https://www.haomeiwen.com/subject/ecththtx.html