InfraPlatform

(CentOS대체)How to Migrate to Rocky Linux from CentOS Stream, CentOS, RHEL

IT오이시이 2024. 5. 7. 06:31
728x90

 

CentOS 8에서 Rocky Linux로 마이그레이션

 
CentOS 가 Redhat으로 인수되어 2021년이후 더 이상 오픈소스의 가치를 제공하지 못하게 되면서 CentOS를 이용하던 기업들은 상용 혹은 대체 리눅스를 찾아 변환을 하고 있습니다.
Rocky는 CentOs와 같이 Redhat의 상용화된 리눅스의 안정화된 버전(RHEL)을 재패키징하여 배포함으로써 일반 기업들이 무료로 쓸수 있는 엔터프라이즈 리눅스라고 할 수 있습니다. 
 

저도 오래된 리눅스를 변환해 보았습니다. 일단 패키지 업데이트 오류가 있어서 내용을 추가 보완 했으니 참조해서 사용하지면 좋겠습니다. 

 
 

Rocky Linux is Red Hat Enterprise Linux (open Source)

Rocky Linux는 Red Hat Enterprise Linux 8.5와 100% 호환되는 커뮤니티 엔터프라이즈 운영 체제입니다.  따라서 2021년 12월 말까지 단종되는 CentOS 8의 완벽한 대안이 됩니다.
Rocky Linux 8.5가 출시되면서 CentOS 8에서 Rocky Linux로 마이그레이션하는 데 도움이 되는 변환 도구를 사용할 수 있게 되었습니다. 새로 설치하지 않고 Rocky Linux 8을 테스트하려는 사용자에게 편리합니다.

록키리눅스를 설치하려면 홈페이지에서 Minimal, DVD 및 Boot ISO 이미지로 제공되는 Rocky Linux 8.5를 다운로드하십시오.

 

 

How to Migrate to Rocky Linux from CentOS Stream, CentOS,  RHEL or Oracle Linux

https://rockylinux.org/ko/

1.  Using dnf update : Update the package to the latest
    1)  check system status 
    2)  update rpm  
    3)  update all packages
    4) reboot
2. download migration tool : migrate2rocky.sh 
3. running migration tool :  migrate2rocky.sh -r
4. reboot & start Rokey

 

1. Using dnf update  : Update the package to the latest .

 To update to Rocky Linux, you must update the installed CentOS to the latest version before proceeding.
  Proceed by checking the environment installed in advance of the update and resolving any issues that arise from the update.

    Rocky Linux 로 업데이트 하기 위해서는 설치된 CentOS를 최신버전으로 업데이트 후 진행 하여야 합니다.
   업데이트 사전에 설치된 환경을 확인하고  업데이트에서 발생되는 문제를 해결하여 진행합니다.

 

1)  Before updating, check the version of centos currently installed.

 CentOS 8 or CentOS Stream

[root@vm1 ~]# cat /etc/centos-release
CentOS Linux release 8.2.2004 (Core)

 
Check repolist to update your packages to the latest.

[root@vm1 ~]# dnf repolist
repo id                           repo name
Stream-BaseOS                     CentOS-Stream - Base
appstream                         CentOS Stream 8 - AppStream
baseos                            CentOS Stream 8 - BaseOS
docker-ce-stable                  Docker CE Stable - x86_64
extras                            CentOS Stream 8 - Extras
extras-common                     CentOS Stream 8 - Extras common packages

 
 


2) First update `rpm`  to prevent update  problems

   - Update "rpm" to prevent the problems like "BAD, no. of bytes(9088) out of range" from occurring during update.

dnf update rpm

[root@vm1 yum.repos.d]# dnf update rpm
Last metadata expiration check: 0:16:23 ago on Sat 15 Jul 2023 06:58:14 PM EDT.
Dependencies resolved.
===========================================================================================
 Package                         Arch        Version              Repository          Size
===========================================================================================
Upgrading:
 ima-evm-utils                   x86_64      1.3.2-12.el8         Stream-BaseOS       64 k
 python3-rpm                     x86_64      4.14.3-26.el8        Stream-BaseOS      155 k
 rpm                             x86_64      4.14.3-26.el8        Stream-BaseOS      544 k
 rpm-build-libs                  x86_64      4.14.3-26.el8        Stream-BaseOS      157 k
 rpm-libs                        x86_64      4.14.3-26.el8        Stream-BaseOS      345 k
 rpm-plugin-selinux              x86_64      4.14.3-26.el8        Stream-BaseOS       78 k
 rpm-plugin-systemd-inhibit      x86_64      4.14.3-26.el8        Stream-BaseOS       79 k
 tpm2-tss                        x86_64      2.3.2-4.el8          Stream-BaseOS      275 k

Transaction Summary
===========================================================================================
Upgrade  8 Packages
.... skipped  ...
Upgraded:
  ima-evm-utils-1.3.2-12.el8.x86_64                python3-rpm-4.14.3-26.el8.x86_64
  rpm-4.14.3-26.el8.x86_64                         rpm-build-libs-4.14.3-26.el8.x86_64
  rpm-libs-4.14.3-26.el8.x86_64                    rpm-plugin-selinux-4.14.3-26.el8.x86_64
  rpm-plugin-systemd-inhibit-4.14.3-26.el8.x86_64  tpm2-tss-2.3.2-4.el8.x86_64

Complete!

 


  dnf update , yum update 로 패키지를 설치하면서 오류가 나는 경우 대처
*  It will prevent errors "signature hdr data: BAD, no. of bytes(11844) out of range"
   centos 업데이트 중에 발생되는 문제는 패키지 파일의 버전 차이 일 수 있습니다. 이 경우는 rpm을 업그레이드 하여 문제를 해결합니다.

error: /var/cache/dnf/Stream-BaseOS-055ffcb2ec25a27f/packages/python3-requests-2.20.0-4.el8.noarch.rpm: signature hdr data: BAD, no. of bytes(16512) out of range
error: /var/cache/dnf/Stream-BaseOS-055ffcb2ec25a27f/packages/python3-subscription-manager-rhsm-1.28.38-1.el8.x86_64.rpm: signature hdr data: BAD, no. of bytes(12696) out of range
error: /var/cache/dnf/Stream-BaseOS-055ffcb2ec25a27f/packages/python3-syspurpose-1.28.38-1.el8.x86_64.rpm: signature hdr data: BAD, no. of bytes(11360) out of range
error: /var/cache/dnf/Stream-BaseOS-055ffcb2ec25a27f/packages/rdma-core-46.0-1.el8.1.x86_64.rpm: signature hdr data: BAD, no. of bytes(11844) out of range

Problem opening package sos-4.5.4-1.el8.noarch.rpm
Problem opening package sssd-client-2.9.1-1.el8.x86_64.rpm
Problem opening package sssd-common-2.9.1-1.el8.x86_64.rpm
Problem opening package subscription-manager-1.28.38-1.el8.x86_64.rpm
Problem opening package systemd-239-76.el8.x86_64.rpm
Problem opening package systemd-container-239-76.el8.x86_64.rpm
Problem opening package systemd-udev-239-76.el8.x86_64.rpm
Problem opening package tar-1.30-9.el8.x86_64.rpm
Problem opening package tuned-2.20.0-1.el8.noarch.rpm

 


    3)  update all packages

    Upgrade the package using `dnf update`.
     `dnf update` 를 이용하여 패키지를 업그레이드 합니다.

[root@vm1 yum.repos.d]# dnf update
Last metadata expiration check: 0:17:45 ago on Sat 15 Jul 2023 06:58:14 PM EDT.
Dependencies resolved.
===========================================================================================
 Package                 Arch   Version                             Repository        Size
===========================================================================================
Installing:
 centos-stream-release   noarch 8.6-1.el8                           Stream-BaseOS     22 k
     replacing  centos-release.x86_64 8.2-2.2004.0.1.el8
     replacing  centos-release-stream.x86_64 8.1-1.1911.0.7.el8
     replacing  centos-repos.x86_64 8.2-2.2004.0.1.el8
 kernel                  x86_64 4.18.0-500.el8                      Stream-BaseOS    9.8 M
 kernel-core             x86_64 4.18.0-500.el8                      Stream-BaseOS     43 M
 kernel-devel            x86_64 4.18.0-500.el8                      Stream-BaseOS     28 M
 kernel-modules          x86_64 4.18.0-500.el8                      Stream-BaseOS     35 M
Upgrading:
 ModemManager            x86_64 1.20.2-1.el8                        Stream-BaseOS    1.2 M
 ModemManager-glib       x86_64 1.20.2-1.el8                        Stream-BaseOS    338 k
 NetworkManager          x86_64 1:1.40.16-8.el8                     Stream-BaseOS    2.3 M
 NetworkManager-adsl     x86_64 1:1.40.16-8.el8                     Stream-BaseOS    155 k
 NetworkManager-bluetooth
                         x86_64 1:1.40.16-8.el8                     Stream-BaseOS    181 k
.... skipped ...
  tracer-common-0.7.5-2.el8.noarch
  wpebackend-fdo-1.10.0-3.el8.x86_64

Removed:
  kernel-4.18.0-193.el8.x86_64                  kernel-core-4.18.0-193.el8.x86_64
  kernel-modules-4.18.0-193.el8.x86_64

Complete!

 
Check /etc/redhat-release or /etc/centos-release for update results.
업데이트 결과를 확인합니다.

[root@vm1 yum.repos.d]# cat /etc/centos-release
CentOS Stream release 8

 
When the update is completed normally, apply the update result with the Reboot command.
Reboot로 업데이트 결과를 적용합니다.

[root@vm1 yum.repos.d]# reboot

Now, You are now ready to switch to Rocky Linux.

여기 까지가  Rocky Linux로 전환하기 위한 준비가 완료 되었습니다.

 


2. Download Migration Tool :  migrate2rocky.sh

https://github.com/rocky-linux/rocky-tools/tree/main/migrate2rocky
Download the migrate2rocky.sh migration script hosted on GitHub and can be downloaded using the wget command line tool as follows: 

GitHub에서 호스팅되는 migrate2rocky.sh 마이그레이션 스크립트를 다운로드하는 것이며 wget 명령줄 도구를 사용하여 다음과 같이 다운로드할 수 있습니다.
# downlod migrate2rocky.sh
wget https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh

[root@vm1 yum.repos.d]# chmod 755 migrate2rocky.sh
[root@vm1 yum.repos.d]# ./migrate2rocky.sh -r

 
* When the download is complete, assign execute permission to the migrate2rocky.sh shell script file as shown in the figure.  

  다운로드가 완료되면 그림과 같이 migrate2rocky.sh 셸 스크립트 파일에 실행 권한을 할당합니다.

 



3. Running Migration tool : migrate2rocky.sh -r

CentOS 8에서 Rocky Linux로 마이그레이션을 시작하려면 다음과 같이 스크립트를 실행합니다.
To start migrating from CentOS 8 to Rocky Linux, run the script as follows:

bash migrate2rocky.sh  -r

 
As with the previous CentOS update, various packages are upgraded to the Rocky Linux version, so it takes a lot of time. 

앞에서 진행했던 CentOS의 업데이트 와 같이 각종 패키지를 Rocky Linux 버전으로 업그레이드를 진행하므로  시간이 많이 걸립니다.

 
다음 내용과 함께 시스템 업그레이드가 완료 되었습니다.

CentOS Stream Migration Notes:

Because CentOS Stream leads RockyLinux by the next point release many packages
in Stream will have higher version numbers than those in RockyLinux, some will
even be rebased to a new upstream version.  Downgrading these packages to the
versions in RockyLinux carries the risk that the older version may not
recognize config files, data or other files generated by the newer version in
Stream
.. skipped ...
The subscription-manager dnf plugin may be enabled for the benefit of
Subscription Management. If no longer desired, you can use
"subscription-manager config --rhsm.auto_enable_yum_plugins=0" to block this
behavior.

Done, please reboot your system.



A log of this installation can be found at /var/log/migrate2rocky.log

 



4. reboot & start Rokey : 업데이트가 완료되면 reboot을 합니다.

 
Check the /etc/redhat-release file to make sure the package upgrade to Rocky Linux is complete.

Rocky Linux로 패키지 업그레이드가 완료 되었는지 확인 합니다.
[root@vm1 etc]# cat /etc/redhat-release
Rocky Linux release 8.8 (Green Obsidian)

 
Now  reboot systemn  to start "Rokey Linux" when migration is completed.

이제 마이그레이션이 완료되면 리부팅을 해서 Rokey Linux를 시작 합니다.

 

(마무리 글)  CentOS의 현황과 Rokey로 대체 하는 이유는 

 
오랜만에 리눅스를 설치해 보았습니다. 10년 사용한 CentOS를 다시 Rokey로 변경하는데 생각보다 마이그레이션 툴이 잘 작동해서 사용해도 될 것 같습니다.  CentOs To Rokey를 하는 방법은 내부적으로는 패키지를 CentOs를 Rokey용으로 재 업데이트만 하면 되는 것인데 1천가지 패키지를 순서대로 하려면 할일이 많은것을 쉽게 할 수 있도록 Migration Tool이 제공되었다는 점입니다. 

아주 오래전에  Redhat을 CentOS로 전환할때는 이것을 수동으로 하기도 했고, 2000년대 있던 Redhat 오픈소스 버전을 엔터프라이즈 버전으로 바꾼적도 있지만 여기서는 그런 호랑이 담배피는 이야기는 이제 불필요한 듯합니다.

 

이제는 CentOS가 오픈소스 엔터프라이즈 리눅스가 아닙니다. Rokey Linux가 그 자리를 채웁니다.

기존  Fedora 패키지는 새로운 리눅스 버전을 내놓기 위한  베타 버전이었고, 이것을 안정화 한 것이 Redhat Enterprise(RHEL) 패키지 였습니다.  CentOS는  Redhat의 RHEL 을 재패키징해서 Open Source화 한 엔터프라이즈 리눅스로 알려 왔습니다.
Redhat이 CentOs를 인수하면서   Fedora > Centos Stream > RHEL 로 패키지 순서를 변경함으로써 RHEL이 유일한 엔터프라이즈 리눅스가 되고  CentOS는  CentOs Stream으로 개명되어  상용화 이전의 시범 배포 버전으로 위상이 다운그레이드 되었습니다.
이런 배경에서 오픈소스의 진영에서는 오픈소스  Rokey Linux를  만들었습니다.
Rokey Linux는 이전 CentOs와 같이  RHEL을 재패키징 하여 배포하는 버전으로  Open Source Enterprise  Linux라고 할수 있게 되었습니다. 
리눅스가 상용이냐 오픈소스냐는 태생의 차이 입니다. 요즘 코인과 마찬가지로 소스의 주인은 그 생태계에서 일하는 모든 사람의 것이라는 점입니다. 리눅스는 다양한 사람들이 커뮤니티를 통해서 Kernel 및 각종 Utility의 기능을 만들어 낸 것입니다. 그래서 이것을 패키징해서 상용화 하더라도 저작권이 오픈되어 있기  때문에 누구나 재패키징 해서 오픈소스라고 할수도 있다는 것입니다.
문제는 이런 오픈소스 생태계가 상업화로 인해 무너지면 더이상은 리눅스가 업그레이드 되거나 존속하기 어려워 지기 때문에 오픈소스 진영은 지속적인 오픈소스를 강조하고 있다는 점입니다. 
이러한 생태계가 바로 참여자 중심의 비즈니스 환경인 Web3 라고 할 수 있습니다. ~
감사합니다. 
 
 

 

(참고)

1. How to Migrate to Rocky Linux from CentOS Stream, CentOS, Alma Linux, RHEL, or Oracle Linux
     https://docs.rockylinux.org/guides/migrate2rocky/

2. CentOs is Dead
   https://couplewith.tistory.com/227

3.  패키지 업그레이드 오류 해결  :  rpm 버전의 차이로 발생하는 오류 해결
     https://www.digitalocean.com/community/questions/cento-os-8-not-updating

728x90
반응형