Linux OS/Redhat (CentOS & Rocky Linux)

CentOS 6 -> CentOS 7로 OS 업그레이드(repo 이용)

서버엔지니어 2023. 3. 9.
728x90

현재 CentOS 5,6 은 현재 지원이 종료되었기 때문에 사이트를 운영할 때 TLS관련 부분때문에 SSL 인증서부분들이 인증이 안될 수 있습니다.  이 부분을 해결하려면 TLS 버전을 올리기 위해서는 OS를 업그레이드를 해야합니다. 제가 찾는 방법은 CentOS 6 은 2020년 11월 30일날 종료 되었기 때문에 7로 업그레이드 하는 방법을 찾아보고 확인해본 결과입니다.

 

CentOS 6 최신버전은  6.10 이다.

6.10 버전이 아닌 OS들은 yum update -y 를 하여 6.10버전으로 만들어 줍니다.

# yum update -y

# yum upgrade -y

 

6.10 버전의 커널은 대략 이렇습니다.

# uname -r
2.6.32-754.23.1.el6.x86_64

 

# cat /etc/redhat-release
CentOS release 6.10 (Final)

 

업그레이드 repo 생성

 

# vi /etc/yum.repos.d/upgrade.repo

================================

[upgrade]
name=upgrade
baseurl=https://buildlogs.centos.org/centos/6/upg/x86_64/
enabled=1
gpgcheck=0

================================

-> https://buildlogs.centos.org/centos/6/upg/x86_64/ 

해당 링크가 만약 404로 사이트가 닫는다면 새로운 repo주소를 찾아서 바꿔야한다.

 

# yum clean all ; yum repolist

업그레이드를 위한 tool들을 다운로드 및 재설치 해줍니다.
# yum -y install preupgrade-assistant-contents redhat-upgrade-tool preupgrade-assistant
# yum erase -y openscap
# yum install -y https://buildlogs.centos.org/centos/6/upg/x86_64/Packages/openscap-1.0.8-1.0.1.el6.centos.x86_64.rpm
# yum install -y redhat-upgrade-tool preupgrade-assistant-contents

# preupg

Pre upgrade Assistant를 실행하여 업그레이드 성공에 부정적인 영향을 미칠 수 있는 모든 항목을 확인 할 수 있습니다.

 

CentOS 7 업그레이드를 위한 추가 미러 사이트 만들어 주기

# mkdir -pv /var/tmp/system-upgrade/base/ /var/tmp/system-upgrade/extras/ /var/tmp/system-upgrade/updates/

# echo http://vault.centos.org/7/os/x86_64/ > /var/tmp/system-upgrade/base/mirrorlist.txt

# echo http://vault.centos.org/7/extras/x86_64/ > /var/tmp/system-upgrade/extras/mirrorlist.txt

# echo http://vault.centos.org/7/updates/x86_64/ > /var/tmp/system-upgrade/properties/mirrorlist.txt

# echo http://vault.centos.org/7/updates/x86_64/ > /var/tmp/system-upgrade/updates/mirrorlist.txt

 

CentOS 7 key 가져오기

# rpm --import http://vault.centos.org/7.0.1406/os/x86_64/RPM-GPG-KEY-CentOS-7

 

CentOS repo 추가

 

# vi /etc/yum.repos.d/centos7.repo

===============================

[centos7]
name=centos7
baseurl=http://mirror.centos.org/centos/7/os/x86_64/
enabled=1
gpgcheck=0

===============================

# yum clean all ; yum repolist

 

CentOS 7 로 업그레이드 진행

# centos-upgrade-tool-cli --force --network=7 --instrepo=http://vault.centos.org/7.0.1406/os/x86_64/ --cleanup-post

 

# reboot

--> 되게 오래걸린다. reboot도중 너무 오래걸려서 Ctrl+Alt+Del로 눌러서 리부팅을 2번 진행했습니다.

 

데몬들이 전부 내려가 있는 상태이므로 등록, 각종 서비스 재시작 및 시작프로그램 등록

# systemctl start sshd
# systemctl enable sshd

 

# ln -s /lib64/libpcre.so.1 /lib64/libpcre.so.0


CentOS 6.10 에서 해줬던 업그레이드 repo 이름 바꾸기

# mv /etc/yum.repos.d/upgrade.repo /etc/yum.repos.d/CentOS7_upgrade.repo_back


# mv /etc/yum.repos.d/centos7.repo /etc/yum.repos.d/centos7.repo_back

 

간혹가다가 CentOS-Base.repo 가 CentOS6으로 되어있어서 안되는 경우가 있다.  이런경우 보통 업그레이드되면서 CentOS-Base.repo.rpmnew 가 CentOS7의 레포로 저장되어 있을 것이다.

# cd /etc/yum.repos.d/

# mv CentOS-Base.repo CentOS-Base.repo_back
# mv CentOS-Base.repo.rpmnew CentOS-Base.repo

 

# yum clean all ; yum repolist
# yum update -y --skip-broken

 

yum 관련 cache 제거 CentOS6 repo관련 파일들이 남아 있기 때문에 삭제해준다.

# rm -rf /var/cache/yum/*

# rm -rf /etc/yum.repos.d/redhat-upgrade-*

# yum remove -y python-markdown-2.0.1-4.el6.noarch python-cheetah-2.4.1-1.el6.x86_64 python-cheetah-2.4.1-1.el6.x86_64 python-boto-2.34.0-6.el6.noarch python-argparse-1.2.1-2.1.el6.noarch ppl-0.10.2-11.el6.x86_64 libgcj-4.4.7-23.el6.x86_64 cloog-ppl-0.15.7-1.2.el6.x86_64 cloog-ppl-0.15.7-1.2.el6.x86_64

 

# yum remove -y gcc* epel-release

# rpm -qa | grep el6 | xargs -n 1 rpm -e --nodeps

# rpm -qa | grep el6 | xargs -n 1 yum remove -y

# yum clean all

# yum install -y gcc* epel-release

# yum -y groupinstall Base
# yum -y groupinstall development tools

 

# yum update -y 

# yum update -y --skip-broken

 

아래 설정을 안해주면 grep 기능을 사용할 수 없기 때문에 해줍니다.

# ln -s /lib64/libpcre.so.1 /lib64/libpcre.so.0

 

rpm -qa | grep mysql
grep: error while loading shared libraries: libpcre.so.0: cannot open shared object file: No such file or directory

# rpm -qa | grep ssh

openssh-server-7.4p1-21.el7.x86_64
libssh2-1.8.0-4.el7.x86_64
openssh-7.4p1-21.el7.x86_64
openssh-clients-7.4p1-21.el7.x86_64

 

yum update -y 

이러면 CentOS6 에서 CentOS7로 업그레이드가 끝납니다.

# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

# uname -r
3.10.0-1160.el7.x86_64

 

이후 php는 재 컴파일하는게 좋습니다.

 

댓글