본문 바로가기
FullStack/40. Linux

CentOS7 -> Rocky Linux 8 마이그레이션

by nakanara 2023. 7. 28.
반응형

CentOS EOS가 다가오면서 패치를 위한 대안이 필요합니다. 그 대안으로 Rocky Linux를 많이 고려하고 있습니다.

Rocky Linux는 Red Hat Enterprise Linux(RHEL)와 호환되도록 구성된 커뮤니티 엔터프라이즈 운영체제입니다.

Rocky Linux 8.x는 RHEL 8 버전을 기반으로 개발되어 RHEL 8 버전과 호환성에는 문제가 없습니다.
또한 기존 CentOS도 RHEL을 기반이었기 때문에 RHEL = RockyLinux = CentOS는 호환성에 문제가 없습니다.

NCP(네이버클라우드)에서도 Linux 설치 OS에 RockyLinux를 추가하였습니다.

마이그레이션 위해서는 다음의 순서로 진행이 필요합니다.

  1. CentOS7 -> CentOS8 업그레이드
  2. CentOS8 -> Rocky Linux 마이그레이션

CentOS7 -> CentOS8 업그레이드

1. CentOS7 업그레이드 및 reboot

$ sudo yum -y update
$ sudo reboot
  • 커널 버전 및 기타 소프트웨어 정보 확인
$ uname -r
3.10.0-1160.36.2.el7.x86_64

2. EPEL-Release 설치

CentOS-Base 저장소 외부에서 패키지 다운로드를 위해 EPEL-Release 설치

$ sudo yum install epel-release -y

3. 패키지 설치

$ sudo yum install -y yum-utils rpmconf

4. 불필요 패키지 정리

설치에 사용되지 않거나, 충돌하는 패키지 제거

$ sudo rpmconf -a
Configuration file '/etc/yum/pluginconf.d/langpacks.conf'
/etc/yum/pluginconf.d/langpacks.conf.rpmnew
/etc/yum/pluginconf.d/langpacks.conf

 ==> Package distributor has shipped an updated version.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      M     : merge configuration files
      Z     : background this process to examine the situation
      S     : skip this file
 The default action is to keep your current version.
*** aliases (Y/I/N/O/D/M/Z/S) [default=N] ? 
Your choice: N
  • 불필요 패키지 목록
$ sudo package-cleanup --leaves
  • 중복 패키지 목록
$ sudo package-cleanup --orphans
  • YUM 명령어를 통한 패키지 제거
$ sudo yum remove -y <package>

5. YUM에서 DNF로 업그레이드

CentOS8의 기본 패키지 관리자인 DNF 패키지를 설치합니다.

# DNF 설치
$ sudo yum install -y dnf

# 기존 YUM 패키지 관리자 제거
$ sudo dnf remove -y yum yum-metadata-parser

# YUM 구성 제거
$ sudo rm -Rf /etc/yum
  • DNF 리포지토리용 캐시 구성
$ sudo dnf -y makecache
Extra Packages for Enterprise Linux 7 - x86_64  71 MB/s |  17 MB     00:00
CentOS-7 - Base                                 49 MB/s |  10 MB     00:00
CentOS-7 - Updates                              63 MB/s |  17 MB     00:00
CentOS-7 - Extras                               9.3 MB/s | 310 kB     00:00
Metadata cache created.

6. CentOS7 패키지 업그레이드

$ sudo dnf upgrade -y

7. YUM 저장소 업그레이드

YUM 리포지토리를 CentOS7 -> CentOS8로 변경

$ sudo dnf install http://vault.centos.org/8.5.2111/BaseOS/x86_64/os/Packages/{centos-linux-repos-8-3.el8.noarch.rpm,centos-linux-release-8.5-1.2111.el8.noarch.rpm,centos-gpg-keys-8-3.el8.noarch.rpm}

Dependencies resolved.
======================================================================================================================================================================================================
 Package                                               Arch                                    Version                                            Repository                                     Size
======================================================================================================================================================================================================
Installing:
 centos-linux-repos                                    noarch                                  8-3.el8                                            @commandline                                   20 k
 centos-linux-release                                  noarch                                  8.5-1.2111.el8                                     @commandline                                   22 k
     replacing  centos-release.x86_64 7-9.2009.1.el7.centos
 centos-gpg-keys                                       noarch                                  1:8-3.el8                                          @commandline                                   12 k

Transaction Summary
======================================================================================================================================================================================================
Install  3 Packages

Total size: 54 k
Is this ok [y/N]: y
  • EPEL-Release 리포지토리 업그레이드
$ sudo dnf upgrade -y epel-release

8. CentOS7 -> CentOS8 업그레이드

$ cd /etc/yum.repos.d
$ sudo mkdir backups
$ sudo mv CentOS-* backups

# Create new for CentOS BaseOS repo
$ sudo tee CentOS-Linux-BaseOS.repo<<EOM
[baseos]
name=CentOS Linux \$releasever - BaseOS
baseurl=http://vault.centos.org/8.5.2111/BaseOS/\$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
EOM

# Create new for CentOS AppStream repo
$ sudo tee CentOS-Linux-AppStream.repo<<EOM
[appstream]
name=CentOS Linux \$releasever - AppStream
baseurl=http://vault.centos.org/8.5.2111/AppStream/\$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
EOM
  • CentOS 커널 제거
$ sudo rpm -e `rpm -q kernel` --nodeps $ sudo rpm -e `rpm -q kernel-devel` --nodeps
  • 충돌 패키지 제거
$ sudo rpm -e --nodeps sysvinit-tools
  • CentOS8 업그레이드
$ sudo dnf -y --releasever=8 --allowerasing --setopt=deltarpm=false distro-sync
충돌하는 패키지 오류가 발생할 수 있습니다. 충돌이 발생하면 기존 패키지 제거가 필요합니다.  
패키지 충돌 해결 후 위 명령어 다시 실행  
아래 패키지에서 충돌날 가능성이 있습니다.  
- NetworkManager
- dracut-network
- python36-rpmconf
  • CentOS8 커널 설치
$ sudo dnf install -y kernel-core
  • CentOS8 설치
# CentOS 최소 설치
$ sudo dnf -y groupupdate "Core" "Minimal Install"
  • 시스템 재시작
$ sudo systemctl reboot
  • 재시작 후 버전 확인
$ cat /etc/redhat-release
CentOS Linux release 8.5.2111

CentOS8 -> Rocky Linux 마이그레이션

마이그레이션시 기존 데이터가 유지되지만 마이그레이션 전 데이터를 백업하는 것이 좋습니다.

1. Rocky Linux 마이그레이션 스크립트 다운로드

$ sudo dnf -y install wget
$ wget https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh

# 스크립트 실행 권한 부여
$ chmod a+x migrate2rocky.sh

2. 스크립트를 통한 Rocky Linux8 마이그레이션

$ sudo ./migrate2rocky.sh -r

Removing dnf cache
Preparing to migrate CentOS Linux 8 to Rocky Linux 8.

Determining repository names for CentOS Linux 8.....

Found the following repositories which map from CentOS Linux 8 to Rocky Linux 8:
CentOS Linux 8  Rocky Linux 8
appstream       appstream
baseos          baseos
extras          extras

Getting system package names for CentOS Linux 8..........

Found the following system packages which map from CentOS Linux 8 to Rocky Linux 8:
CentOS Linux 8        Rocky Linux 8
centos-logos-ipa      rocky-logos-ipa
centos-backgrounds    rocky-backgrounds
centos-gpg-keys       rocky-gpg-keys
centos-logos          rocky-logos
centos-indexhtml      rocky-indexhtml
centos-linux-release  rocky-release
centos-logos-httpd    rocky-logos-httpd
centos-linux-repos    rocky-repos

Getting list of installed system packages.

We will replace the following CentOS Linux 8 packages with their Rocky Linux 8 equivalents
Packages to be Removed  Packages to be Installed
centos-gpg-keys         rocky-gpg-keys
centos-linux-release    rocky-release
centos-linux-repos      rocky-repos
.....
Complete!

Done, please reboot your system.
A log of this installation can be found at /var/log/migrate2rocky.log

패키지 설치 및 마이그레이션이 정상적으로 마무리되면 재부팅 메시지가 표시됩니다.

3. Rocky Linux 재시작

로그인 정보는 기존과 동일하게 유지됩니다.

$ sudo reboot now

4. Rocky Linux 정보 확인

$ cat /etc/os-release
NAME="Rocky Linux"
VERSION="8.5 (Green Obsidian)"
ID="rocky"
ID_LIKE="rhel centos fedora"
VERSION_ID="8.5"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Rocky Linux 8.5 (Green Obsidian)"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:rocky:rocky:8:GA"
HOME_URL="https://rockylinux.org/"
BUG_REPORT_URL="https://bugs.rockylinux.org/"
ROCKY_SUPPORT_PRODUCT="Rocky Linux"
ROCKY_SUPPORT_PRODUCT_VERSION="8"

참고

https://docs.rockylinux.org/guides/migrate2rocky/

[Migrating To Rocky Linux - Documentation

How to Migrate to Rocky Linux from CentOS Stream, CentOS, Alma Linux, RHEL, or Oracle Linux Prerequisites & Assumptions CentOS Stream, CentOS, Alma Linux, RHEL, or Oracle Linux running well on a hardware server or VPS. The current supported version for eac

docs.rockylinux.org](https://docs.rockylinux.org/guides/migrate2rocky/)

반응형