美文网首页运维小技巧我用 LinuxLinux
CentOS6-x到CentOS7-x的在线升级

CentOS6-x到CentOS7-x的在线升级

作者: haw_haw | 来源:发表于2016-10-21 11:31 被阅读4106次

    缘起

    相比Debian系的Linux发布版(如DebianUbuntu),都能很好地支持在线大版本升级,RedHat系的Linux发布版(如RedHatCentOS),其大版本升级一直是为人所诟病的问题。

    这种情况到了CentOS7,终于有了改观:RedHat放出了UpgradeTool,同样,CentOS自然也有了。

    注意:如果已经是CentOS6.7以后的版本了,在线升级到CentOS7可能会有问题,因为CentOS6.7以后版本有些软件的版本已经比CentOS7还高了,升级可能会出问题。

    具体步骤

    安装软件

    cat <<EOF >/etc/yum.repos.d/upgradetool.repo
    [upg]
    name=CentOS-$releasever - Upgrade Tool
    baseurl=http://dev.centos.org/centos/6/upg/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
    EOF
    
    yum -y install redhat-upgrade-tool \
         preupgrade-assistant-contents;
    

    升级前可行性分析

    preupg -l; # 列出预升级的可用内容,多半是"CentOS6_7"
    preupg -s CentOS6_7; # 这里的"CentOS6_7"是上个命令的输出
    # 上面这个命令生成的报告需要看看,主要是关于升级的风险的
    # 个人经验就是升级前尽量将非官方的rpm安装的软件都删掉
    # 安装的第三方的rpm包越少,升级的风险越小
    

    开始升级

    rpm --import \
         http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7;
    centos-upgrade-tool-cli --network 7 \
         --instrepo=http://mirror.centos.org/centos/7/os/x86_64/;
    # 上面这个命令的--instrepo参数用的是官方的repo,
    # 如果自己搭建的有repo镜像(一般都有吧),用自己的就好
    # 需要注意的是,这个镜像目录下需要有文件.treeinfo
    # 没有的话就去官方的位置拷贝一个下来,记得版本号要一致哟
    reboot; # 最后,重启机器即可
    

    收尾工作

    机器起来后,登上服务器,需要做一些擦屁股的工作,比如,看还有没有CentOS6的软件残余,用命令:

    rpm -qa | grep -i el6;
    

    有的话要么想办法删掉,要么想办法将其升级到el7的相应的软件包。

    参考

    相关文章

      网友评论

      • strong_abc:想请问一下.treeinfo在官网镜像中的路径,这边想熊官方镜像中添加checksum。但是没有找到.treeinfo文件

      本文标题:CentOS6-x到CentOS7-x的在线升级

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