리눅스/CentOS

CentOS Linux 8에서 CentOS Stream으로 전환

씨실과 날실 2021. 1. 5. 09:00

 

리눅스, 특히 RPM 계열 리눅스를 사용하시거나 관심이 많으신 분들은 CentOS Linux 유지보수 중단 소식을 접하신 분들이 많으실 겁니다.

보다 자세한 내용은 위 링크의 글을 참고하시면 될 겁니다.

 

어쨌든 레드햇의 이러한 결정에 따라 현재 CentOS Linux를 사용하는 수많은 개인과 기업들은 혼란을 겪고 있습니다. 특히 CentOS Linux 8로 업그레이드해거나 새로 설치한 경우 그 혼란은 가중되고 있습니다.

 

이러한 연유로 CentOS Linux 사용자들은 앞으로의 대책을 강구해야 하는데 다음 몇 가지 대안을 선택할 수 있습니다.

1. RHEL 서브스크립션 라이선스 구매

2. OS를 오라클 리눅스로 변경

3. RHEL과 호환되지 않는 다른 리눅스로 OS 변경

4. 미래에 새로 만들어질 RHEL 호환 리눅스를 기다림

5. CentOS Linux를 CentOS Stream으로 변경

가장 간단한 것은 레드햇의 RHEL 서브스크립션 라이선스를 구매해 사용하는 것입니다.

그러나 비용이 굉장히 비싸고 서브스크립션이라는 것 자체가 프로그램 구매 비용이라기보다는 사후지원 이용 비용 개념이기 때문에 기업이 아닌 이상에야 이를 이용할 유인이 크지 않습니다.

 

두 번째는 RHEL과 호환이 되는 오라클 리눅스를 이용하는 것입니다.

주의할 점은 오라클 리눅스는 두 가지 버전의 커널을 가진다는 것입니다.

Red Hat Compatible Kernel (RHCK)

Unbreakable Enterprise Kernel (UEK) 

전자(RHCK)가 RHEL과 100% 호환되는 RHEL 클론 리눅스라면 후자(UEK)는 RHEL을 기반으로 하되 오라클이 자체적으로 기능을 강한  파생 배포판입니다. 개인의 경우 RHCK 커널 기반의 오라클 리눅스를 다운받아 설치하면 될것입니다.

https://edelivery.oracle.com/osdc/faces/Home.jspx

https://yum.oracle.com/oracle-linux-isos.html

 

세 번째는 굳이 RHEL 호환성을 고집할 필요 없다면 다른 리눅스로 옮겨가는 것도 나쁘지 않습니다.실제로 저는 우분투로 웹서버 등을 큰 문제 없이 운용하고 있습니다.

물론 이때는 현재 자신이 사용하는 패키지가 해당 배포판의 저장소나 서드파티 배포 장소에서 존재하고 해당 패키지의 버전과 의존성 등 제반 사항을 확인할 필요가 있습니다.

 

네 번째는 새로 만들어질 RHEL 클론 리눅스가 나올 때까지 기다리는 것입니다.

현재 CentOS Linux의 가장 유력한 대안은 Rocky Linux와 Project Nenix AlmaLinux입니다.

보다 자세한 내용은 위 링크를 참고하시기 바랍니다.

 

마지막으로 CentOS Linux를 CentOS Stream으로 컨버전하는 것입니다.

저 개인적으로는 기업이 아닌 개인의 경우 백업을 철저히 한다는 조건 하에 CentOS Stream을 사용하는 것도 크게 나쁘지 않을 것 같습니다. 물론 Rocky Linux 등 여타의 RHEL 클론 리눅스들이 어느 정도 자리를 잡게 되면 그쪽으로 옮겨가는 것이 가장 좋겠지요.

 

아래부터는 CentOS Linux를 CentOS Stream으로 컨버전(변경)하는 방법을 알려드리도록 하겠습니다.

 


CentOS Linux를 CentOS Stream으로 전환(컨버전)

시스템 내 패키지 전체 업데이트

[study@localhost ~]$ sudo dnf update

가장 먼저 시스템 내의 패키지들을 최신버전으로 업데이트해줍니다. 이 작업은 패키지 관련 작업을 할 때 가장 먼저 수행해야 할 기본적인 작업입니다. 혹시라도 여러분들이 어떤 패키지를 설치한다거나 그외 시스템 및 패키지 관련 작업에 대하여 문제에 부딪쳐 다른 블로그나 사이트에서 해결책을 찾을 때 해당 글에서 이 명령이 적혀있지 않더라도 이 작업이 수행되었음을 전제로 하는 것이 일반적이므로 유의하시기 바랍니다.

 

실행 예시

[study@localhost ~]$ sudo dnf update
[sudo] study의 암호: 
CentOS-8 - AppStream                            2.9 kB/s | 4.3 kB     00:01    
CentOS-8 - AppStream                            4.8 MB/s | 6.3 MB     00:01    
CentOS-8 - Base                                 1.6 kB/s | 3.9 kB     00:02    
CentOS-8 - Base                                 2.1 MB/s | 2.3 MB     00:01    
CentOS-8 - Extras                               2.9 kB/s | 1.5 kB     00:00    
CentOS-8 - Extras                                19 kB/s | 8.6 kB     00:00    
Dependencies resolved.
================================================================================
 Package                         Arch   Version                 Repo       Size
================================================================================
Installing:
 kernel                          x86_64 4.18.0-240.1.1.el8_3    BaseOS    4.3 M
 kernel-core                     x86_64 4.18.0-240.1.1.el8_3    BaseOS     30 M
 kernel-devel                    x86_64 4.18.0-240.1.1.el8_3    BaseOS     17 M
 kernel-modules                  x86_64 4.18.0-240.1.1.el8_3    BaseOS     26 M
Upgrading:
 NetworkManager                  x86_64 1:1.26.0-9.el8_3        BaseOS    2.4 M
 NetworkManager-adsl             x86_64 1:1.26.0-9.el8_3        BaseOS    137 k
 NetworkManager-bluetooth        x86_64 1:1.26.0-9.el8_3        BaseOS    163 k
 NetworkManager-config-server    noarch 1:1.26.0-9.el8_3        BaseOS    124 k
 NetworkManager-libnm            x86_64 1:1.26.0-9.el8_3        BaseOS    1.7 M
 
 - 중략 -
 
 Installing group/module packages:
 centos-linux-release            noarch 8.3-1.2011.el8          BaseOS     22 k
     replacing  centos-release.x86_64 8.2-2.2004.0.1.el8
     replacing  centos-repos.x86_64 8.2-2.2004.0.1.el8
Installing dependencies:
 centos-linux-repos              noarch 8-2.el8                 BaseOS     20 k
 crypto-policies-scripts         noarch 20200713-1.git51d1222.el8
                                                                BaseOS     67 k
 freerdp-libs                    x86_64 2:2.1.1-1.el8           AppStream 899 k
 jq                              x86_64 1.5-12.el8              AppStream 161 k
 libmodulemd                     x86_64 2.9.4-2.el8             BaseOS    189 k
 libslirp                        x86_64 4.3.1-1.module_el8.3.0+475+c50ce30b
                                                                AppStream  69 k
 libvirt-daemon-driver-storage-iscsi-direct
                                 x86_64 6.0.0-28.module_el8.3.0+555+a55c8938
                                                                AppStream  74 k
 libwinpr                        x86_64 2:2.1.1-1.el8           AppStream 359 k
 libxmlb                         x86_64 0.1.15-1.el8            BaseOS     91 k
 oniguruma                       x86_64 6.8.2-2.el8             AppStream 187 k
 pipewire0.2-libs                x86_64 0.2.7-6.el8             AppStream 361 k
 podman-catatonit                x86_64 2.0.5-5.module_el8.3.0+512+b3b58dca
                                                                AppStream 308 k
 python3-dasbus                  noarch 1.2-2.el8               AppStream  89 k
Installing weak dependencies:
 cups-ipptool                    x86_64 1:2.2.6-38.el8          AppStream 5.8 M
 memstrack                       x86_64 0.1.11-1.el8            BaseOS     48 k
 openssh-askpass                 x86_64 8.0p1-5.el8             AppStream  92 k
 plymouth-theme-spinner          x86_64 0.9.4-7.20200615git1e36e30.el8
                                                                AppStream 161 k
삭제 중:
 kernel                          x86_64 4.18.0-147.el8          @anaconda   0  
 kernel-core                     x86_64 4.18.0-147.el8          @anaconda  58 M
 kernel-modules                  x86_64 4.18.0-147.el8          @anaconda  20 M
Enabling module streams:
 perl                                   5.26                                   
 perl-IO-Socket-SSL                     2.066                                  
 perl-libwww-perl                       6.34                                   

Transaction Summary
================================================================================
설치         22 Packages
업그레이드  629 Packages
삭제          3 Packages

Total download size: 756 M
Is this ok [y/N]: y
패키지 다운로드중:
CentOS-8 - AppStream194% [======================================-] 1.8 kB/s | 1.(1/651): jq-1.5-12.el8.x86_64.rpm               250 kB/s | 161 kB     00:00    
(2/651): libslirp-4.3.1-1.module_el8.3.0+475+c5 413 kB/s |  69 kB     00:00    
(3/651): libvirt-daemon-driver-storage-iscsi-di 416 kB/s |  74 kB     00:00    
(4/651): libwinpr-2.1.1-1.el8.x86_64.rpm        603 kB/s | 359 kB     00:00    
(5/651): oniguruma-6.8.2-2.el8.x86_64.rpm       562 kB/s | 187 kB     00:00    

-중략 - 

(650/651): vim-minimal-8.0.1763-15.el8.x86_64.r 274 kB/s | 572 kB     00:02    
(651/651): kbd-misc-2.0.4-10.el8.noarch.rpm      50 kB/s | 1.5 MB     00:30    
--------------------------------------------------------------------------------
합계                                            6.0 MB/s | 756 MB     02:06     
트랜잭션 점검 실행 중
트랜잭션 검사가 성공했습니다.
트랜잭션 테스트 실행 중
트랜잭션 테스트가 완료되었습니다.
거래 실행 중
  스크립틀릿 실행: filesystem-3.8-3.el8.x86_64                              1/1 
  준비 중입니다  :                                                          1/1 
  스크립틀릿 실행: libgcc-8.3.1-5.1.el8.x86_64                              1/1 
  Upgrading      : libgcc-8.3.1-5.1.el8.x86_64                           1/1287 
  스크립틀릿 실행: libgcc-8.3.1-5.1.el8.x86_64                           1/1287 
  Upgrading      : gsettings-desktop-schemas-3.32.0-5.el8.x86_64         2/1287 
  Upgrading      : google-noto-fonts-common-20161022-7.el8.1.noarch      3/1287 
  Upgrading      : hwdata-0.314-8.6.el8.noarch                           4/1287 
  Upgrading      : libreport-filesystem-2.9.5-15.el8.x86_64              5/1287 
  
  -중략 - 
  
    Upgrading      : hyperv-daemons-license-0-0.29.20180415git.el8.no      6/1287 
  Upgrading      : gnome-control-center-filesystem-3.28.2-22.el8.no      7/1287 
  Upgrading      : bind-license-32:9.11.20-5.el8.noarch                  8/1287 
  Upgrading      : python3-setuptools-wheel-39.2.0-6.el8.noarch          9/1287 
  Upgrading      : python3-pip-wheel-9.0.3-18.el8.noarch                10/1287 
  Upgrading      : cups-filesystem-1:2.2.6-38.el8.noarch                11/1287 
  Upgrading      : dnf-data-4.2.23-4.el8.noarch                         12/1287 
  Upgrading      : osinfo-db-20200813-1.el8.noarch                      13/1287 
  Upgrading      : tzdata-2020d-1.el8.noarch                            14/1287 
  Upgrading      : subscription-manager-rhsm-certificates-1.27.16-1     15/1287 
  Upgrading      : rhsm-icons-1.27.16-1.el8.noarch                      16/1287 
  Upgrading      : linux-firmware-20200619-99.git3890db36.el8.noarc     17/1287 
  Upgrading      : libssh-config-0.9.4-2.el8.noarch                     18/1287 
  Upgrading      : kernel-headers-4.18.0-240.1.1.el8_3.x86_64           19/1287 
  Upgrading      : kbd-misc-2.0.4-10.el8.noarch                         20/1287 
  Upgrading      : kbd-legacy-2.0.4-10.el8.noarch                       21/1287 
  Upgrading      : firewalld-filesystem-0.8.2-2.el8.noarch              22/1287 
  Upgrading      : dhcp-common-12:4.3.6-41.el8.noarch                   23/1287 
  Upgrading      : dbus-common-1:1.12.8-11.el8.noarch                   24/1287 
  Upgrading      : centos-gpg-keys-1:8-2.el8.noarch                     25/1287 
  Installing     : centos-linux-repos-8-2.el8.noarch                    26/1287 
  Installing     : centos-linux-release-8.3-1.2011.el8.noarch           27/1287 
  Upgrading      : setup-2.12.2-6.el8.noarch                            28/1287 
경고: /etc/shadow(이)가 /etc/shadow.rpmnew(으)로 생성되었습니다

  스크립틀릿 실행: setup-2.12.2-6.el8.noarch                            28/1287 
  Upgrading      : filesystem-3.8-3.el8.x86_64                          29/1287 
오류: lsetfilecon: (/proc, system_u:object_r:default_t:s0) 명령을 지원하지 않음

  Upgrading      : glibc-langpack-en-2.28-127.el8.x86_64                30/1287 
  Upgrading      : libselinux-2.9-4.el8_3.x86_64                        31/1287 
  스크립틀릿 실행: libselinux-2.9-4.el8_3.x86_64                        31/1287 
  Upgrading      : pcre2-10.32-2.el8.x86_64                             32/1287 
  스크립틀릿 실행: glibc-2.28-127.el8.x86_64                            33/1287 
  Upgrading      : glibc-2.28-127.el8.x86_64                            33/1287 
  스크립틀릿 실행: glibc-2.28-127.el8.x86_64                            33/1287 
  Upgrading      : bash-4.4.19-12.el8.x86_64                            34/1287 
  스크립틀릿 실행: bash-4.4.19-12.el8.x86_64                            34/1287 
  Upgrading      : glibc-common-2.28-127.el8.x86_64                     35/1287 
  Upgrading      : glibc-langpack-ko-2.28-127.el8.x86_64                36/1287 
  Upgrading      : zlib-1.2.11-16.el8_2.x86_64                          37/1287 
  Upgrading      : libxml2-2.9.7-8.el8.x86_64                           38/1287 
  Upgrading      : libstdc++-8.3.1-5.1.el8.x86_64                       39/1287 
  
  -중략 - 
  
    스크립틀릿 실행: libseccomp-2.4.1-1.el8.x86_64                      1267/1287 
  정리           : expat-2.2.5-3.el8.x86_64                           1268/1287 
  정리           : zlib-1.2.11-13.el8.x86_64                          1269/1287 
  정리           : libzstd-1.4.2-2.el8.x86_64                         1270/1287 
  정리           : libffi-3.1-21.el8.x86_64                           1271/1287 
  정리           : lz4-libs-1.8.1.2-4.el8.x86_64                      1272/1287 
  정리           : libpsl-0.20.2-5.el8.x86_64                         1273/1287 
  정리           : glibc-langpack-en-2.28-101.el8.x86_64              1274/1287 
  정리           : bash-4.4.19-10.el8.x86_64                          1275/1287 
  스크립틀릿 실행: bash-4.4.19-10.el8.x86_64                          1275/1287 
  정리           : pcre2-10.32-1.el8.x86_64                           1276/1287 
  정리           : libselinux-2.9-3.el8.x86_64                        1277/1287 
  정리           : glibc-common-2.28-101.el8.x86_64                   1278/1287 
  정리           : glibc-langpack-ko-2.28-101.el8.x86_64              1279/1287 
  정리           : glibc-2.28-101.el8.x86_64                          1280/1287 
  정리           : filesystem-3.8-2.el8.x86_64                        1281/1287 
  정리           : setup-2.12.2-5.el8.noarch                          1282/1287 
  폐기           : centos-release-8.2-2.2004.0.1.el8.x86_64           1283/1287 
  폐기           : centos-repos-8.2-2.2004.0.1.el8.x86_64             1284/1287 
  정리           : centos-gpg-keys-8.2-2.2004.0.1.el8.noarch          1285/1287 
  정리           : tzdata-2020a-1.el8.noarch                          1286/1287 
  정리           : libgcc-8.3.1-5.el8.0.2.x86_64                      1287/1287 
  스크립틀릿 실행: libgcc-8.3.1-5.el8.0.2.x86_64                      1287/1287 
  스크립틀릿 실행: filesystem-3.8-3.el8.x86_64                        1287/1287 
  스크립틀릿 실행: crypto-policies-scripts-20200713-1.git51d1222.el   1287/1287 
  스크립틀릿 실행: ca-certificates-2020.2.41-80.0.el8_2.noarch        1287/1287 
  스크립틀릿 실행: libwbclient-4.12.3-12.el8.3.x86_64                 1287/1287 
    스크립틀릿 실행: pulseaudio-13.99.1-1.el8.x86_64                    1287/1287 
  스크립틀릿 실행: kernel-core-4.18.0-240.1.1.el8_3.x86_64            1287/1287 
  스크립틀릿 실행: ibus-1.5.19-12.el8.x86_64                          1287/1287 
  스크립틀릿 실행: authselect-libs-1.2.1-2.el8.x86_64                 1287/1287 
  스크립틀릿 실행: libvirt-daemon-6.0.0-28.module_el8.3.0+555+a55c8   1287/1287 
  스크립틀릿 실행: libvirt-daemon-config-network-6.0.0-28.module_el   1287/1287 
  스크립틀릿 실행: container-selinux-2:2.144.0-1.module_el8.3.0+475   1287/1287 
  스크립틀릿 실행: nss-3.53.1-11.el8_2.x86_64                         1287/1287 
  스크립틀릿 실행: evolution-data-server-3.28.5-14.el8.x86_64         1287/1287 
  스크립틀릿 실행: sssd-common-2.3.0-9.el8.x86_64                     1287/1287 
  스크립틀릿 실행: authselect-compat-1.2.1-2.el8.x86_64               1287/1287 
  스크립틀릿 실행: tuned-2.14.0-3.el8.noarch                          1287/1287 
  스크립틀릿 실행: firefox-78.5.0-1.el8_3.x86_64                      1287/1287 
  스크립틀릿 실행: microcode_ctl-4:20200609-2.20201027.1.el8_3.x86_   1287/1287 
  스크립틀릿 실행: libgcc-8.3.1-5.el8.0.2.x86_64                      1287/1287 
  스크립틀릿 실행: glibc-common-2.28-127.el8.x86_64                   1287/1287 
  스크립틀릿 실행: systemd-239-41.el8_3.x86_64                        1287/1287 
  스크립틀릿 실행: systemd-udev-239-41.el8_3.x86_64                   1287/1287 
  스크립틀릿 실행: gtk3-3.22.30-6.el8.x86_64                          1287/1287 
  스크립틀릿 실행: vim-common-2:8.0.1763-15.el8.x86_64                1287/1287 
  확인 중        : cups-ipptool-1:2.2.6-38.el8.x86_64                    1/1287 
  확인 중        : freerdp-libs-2:2.1.1-1.el8.x86_64                     2/1287 
  확인 중        : jq-1.5-12.el8.x86_64                                  3/1287 
  확인 중        : libslirp-4.3.1-1.module_el8.3.0+475+c50ce30b.x86      4/1287 
  확인 중        : libvirt-daemon-driver-storage-iscsi-direct-6.0.0      5/1287 
 
 - 중략 -
 
  확인 중        : zlib-1.2.11-16.el8_2.x86_64                        1281/1287 
  확인 중        : zlib-1.2.11-13.el8.x86_64                          1282/1287 
  확인 중        : zlib-devel-1.2.11-16.el8_2.x86_64                  1283/1287 
  확인 중        : zlib-devel-1.2.11-13.el8.x86_64                    1284/1287 
  확인 중        : kernel-4.18.0-147.el8.x86_64                       1285/1287 
  확인 중        : kernel-core-4.18.0-147.el8.x86_64                  1286/1287 
  확인 중        : kernel-modules-4.18.0-147.el8.x86_64               1287/1287 
Installed products updated.

업그레이드 됨:
  NetworkManager-1:1.26.0-9.el8_3.x86_64                                        
  NetworkManager-adsl-1:1.26.0-9.el8_3.x86_64                                   
  NetworkManager-bluetooth-1:1.26.0-9.el8_3.x86_64                              
  NetworkManager-config-server-1:1.26.0-9.el8_3.noarch                          
  NetworkManager-libnm-1:1.26.0-9.el8_3.x86_64                                  

- 중략 -

  zlib-1.2.11-16.el8_2.x86_64                                                   
  zlib-devel-1.2.11-16.el8_2.x86_64                                             

설치됨:
  centos-linux-release-8.3-1.2011.el8.noarch                                    
  centos-linux-repos-8-2.el8.noarch                                             
  crypto-policies-scripts-20200713-1.git51d1222.el8.noarch                      
  cups-ipptool-1:2.2.6-38.el8.x86_64                                            
  freerdp-libs-2:2.1.1-1.el8.x86_64                                             
  jq-1.5-12.el8.x86_64                                                          
  kernel-4.18.0-240.1.1.el8_3.x86_64                                            
  kernel-core-4.18.0-240.1.1.el8_3.x86_64                                       
  kernel-devel-4.18.0-240.1.1.el8_3.x86_64                                      
  kernel-modules-4.18.0-240.1.1.el8_3.x86_64                                    
  libmodulemd-2.9.4-2.el8.x86_64                                                
  libslirp-4.3.1-1.module_el8.3.0+475+c50ce30b.x86_64                           
  libvirt-daemon-driver-storage-iscsi-direct-6.0.0-28.module_el8.3.0+555+a55c8938.x86_64
  libwinpr-2:2.1.1-1.el8.x86_64                                                 
  libxmlb-0.1.15-1.el8.x86_64                                                   
  memstrack-0.1.11-1.el8.x86_64                                                 
  oniguruma-6.8.2-2.el8.x86_64                                                  
  openssh-askpass-8.0p1-5.el8.x86_64                                            
  pipewire0.2-libs-0.2.7-6.el8.x86_64                                           
  plymouth-theme-spinner-0.9.4-7.20200615git1e36e30.el8.x86_64                  
  podman-catatonit-2.0.5-5.module_el8.3.0+512+b3b58dca.x86_64                   
  python3-dasbus-1.2-2.el8.noarch                                               

제거됨:
  kernel-4.18.0-147.el8.x86_64             kernel-core-4.18.0-147.el8.x86_64    
  kernel-modules-4.18.0-147.el8.x86_64    

완료되었습니다!
[study@localhost ~]$   

 

현재 CentOS Linux 8 버전 확인

[study@localhost ~]$ cat /etc/redhat-release
CentOS Linux release 8.3.2011
[study@localhost ~]$ 

현재 사용 중인 CentOS Linux 8 버전을 확인해줍니다.

 

CentOS Stream 저장소 활성화

[study@localhost ~]$ sudo dnf install centos-release-stream

위 명령으로 CentOS Stream 저장소를 활성화해줍니다.

 

실행 예시

[study@localhost ~]$ sudo dnf install centos-release-stream
[sudo] study의 암호: 
마지막 메타 데이터 만료 확인 : 1 day, 16:30:40 전에 2020년 12월 30일 (수) 오후 07시 13분 17초.
종속성이 해결되었습니다.
================================================================================
 패키지                    아키텍처   버전                     리포지터리  크기
================================================================================
설치 중:
 centos-release-stream     x86_64     8.1-1.1911.0.7.el8       extras      11 k

트랜잭션 요약
================================================================================
설치  1 패키지

총 다운로드 크기 : 11 k
설치된 크기 : 6.6 k
정말입니까 [y/N]: y
패키지 다운로드중:
centos-release-stream-8.1-1.1911.0.7.el8.x86_64 231 kB/s |  11 kB     00:00    
--------------------------------------------------------------------------------
합계                                             19 kB/s |  11 kB     00:00     
트랜잭션 점검 실행 중
트랜잭션 검사가 성공했습니다.
트랜잭션 테스트 실행 중
트랜잭션 테스트가 완료되었습니다.
트랜잭션 실행 중
  준비 중입니다  :                                                          1/1 
  설치 중        : centos-release-stream-8.1-1.1911.0.7.el8.x86_64          1/1 
  확인 중        : centos-release-stream-8.1-1.1911.0.7.el8.x86_64          1/1 
Installed products updated.

설치됨:
  centos-release-stream-8.1-1.1911.0.7.el8.x86_64                               

완료되었습니다!
[study@localhost ~]$ 

 

활성화된 저장소(리포지터리) 확인

[study@localhost ~]$ dnf repolist
리포지터리 ID                      리포지터리 이름
Stream-AppStream                   CentOS-Stream - AppStream
Stream-BaseOS                      CentOS-Stream - Base
Stream-extras                      CentOS-Stream - Extras
appstream                          CentOS Linux 8 - AppStream
baseos                             CentOS Linux 8 - BaseOS
extras                             CentOS Linux 8 - Extras
[study@localhost ~]$ 

위를 보면 알 수 있듯이 기존 기본 활성 저장소 외에 Stream 저장소 3개가 추가되었음을 확인할 수 있습니다.

 

패키지 업데이트 저장소(리포지터리) 교체

[study@localhost ~]$ sudo dnf swap centos-{linux,stream}-repos

dnf의 하위 명령인 swap 명령을 이용해 패키지를 교체해줍니다.

 

실행 예시

[study@localhost ~]$ sudo dnf swap centos-{linux,stream}-repos
[sudo] study의 암호: 
마지막 메타 데이터 만료 확인 : 0:29:35 전에 2021년 01월 01일 (금) 오전 11시 46분 54초.
종속성이 해결되었습니다.
================================================================================
 패키지                     아키텍처    버전           리포지터리          크기
================================================================================
설치 중:
 centos-stream-release      noarch      8.4-1.el8      Stream-BaseOS       21 k
     교체  centos-linux-release.noarch 8.3-1.2011.el8
     교체  centos-release-stream.x86_64 8.1-1.1911.0.7.el8
 centos-stream-repos        noarch      8-2.el8        Stream-BaseOS       19 k
삭제 중:
 centos-linux-repos         noarch      8-2.el8        @BaseOS             26 k

트랜잭션 요약
================================================================================
설치  2 패키지
삭제  1 패키지

총 다운로드 크기 : 40 k
정말입니까 [y/N]: y
패키지 다운로드중:
(1/2): centos-stream-release-8.4-1.el8.noarch.r 283 kB/s |  21 kB     00:00    
(2/2): centos-stream-repos-8-2.el8.noarch.rpm   238 kB/s |  19 kB     00:00    
--------------------------------------------------------------------------------
합계                                             55 kB/s |  40 kB     00:00     
트랜잭션 점검 실행 중
트랜잭션 검사가 성공했습니다.
트랜잭션 테스트 실행 중
트랜잭션 테스트가 완료되었습니다.
트랜잭션 실행 중
  준비 중입니다  :                                                          1/1 
  스크립틀릿 실행: centos-stream-repos-8-2.el8.noarch                       1/1 
  설치 중        : centos-stream-repos-8-2.el8.noarch                       1/5 
  설치 중        : centos-stream-release-8.4-1.el8.noarch                   2/5 
  폐기           : centos-release-stream-8.1-1.1911.0.7.el8.x86_64          3/5 
  폐기           : centos-linux-release-8.3-1.2011.el8.noarch               4/5 
  삭제 중        : centos-linux-repos-8-2.el8.noarch                        5/5 
  스크립틀릿 실행: centos-linux-repos-8-2.el8.noarch                        5/5 
  확인 중        : centos-stream-release-8.4-1.el8.noarch                   1/5 
  확인 중        : centos-linux-release-8.3-1.2011.el8.noarch               2/5 
  확인 중        : centos-release-stream-8.1-1.1911.0.7.el8.x86_64          3/5 
  확인 중        : centos-stream-repos-8-2.el8.noarch                       4/5 
  확인 중        : centos-linux-repos-8-2.el8.noarch                        5/5 
Installed products updated.

설치됨:
  centos-stream-release-8.4-1.el8.noarch   centos-stream-repos-8-2.el8.noarch  

제거됨:
  centos-linux-repos-8-2.el8.noarch                                             

완료되었습니다!
[study@localhost ~]$

 

저장소(리포지터리) 교체 확인

활성화된 저장소 기본 정보 확인

[study@localhost ~]$ dnf repolist
리포지터리 ID                    리포지터리 이름
appstream                        CentOS Stream 8 - AppStream
baseos                           CentOS Stream 8 - BaseOS
extras                           CentOS Stream 8 - Extras
[study@localhost ~]$ 

 

활성화된 저장소 상세 정보 확인

[study@localhost ~]$ dnf repolist -v
로드 된 플러그인 : builddep, changelog, config-manager, copr, debug, debuginfo-install, download, generate_completion_cache, needs-restarting, playground, product-id, repoclosure, repodiff, repograph, repomanage, reposync, uploadprofile
DNF version: 4.2.23
cachedir: /var/tmp/dnf-study-ynqf7brh
CentOS Stream 8 - AppStream                     3.5 MB/s | 6.4 MB     00:01    
CentOS Stream 8 - BaseOS                        2.6 MB/s | 2.4 MB     00:00    
CentOS Stream 8 - Extras                         11 kB/s | 7.0 kB     00:00    
Repo-id            : appstream
Repo-name          : CentOS Stream 8 - AppStream
Repo-revision      : 8-stream
Repo-distro-tags      : [cpe:/o:centos-stream:centos-stream:8]:  ,  , 8, C, O,
                      : S, S, a, e, e, m, n, r, t, t
Repo-updated       : 2020년 12월 23일 (수) 오전 08시 16분 29초
Repo-pkgs          : 5,721
Repo-available-pkgs: 4,986
Repo-size          : 7.2 G
Repo-mirrors       : http://mirrorlist.centos.org/?release=8-stream&arch=x86_64&repo=AppStream&infra=stock
Repo-baseurl       : http://ftp.kaist.ac.kr/CentOS/8-stream/AppStream/x86_64/os/
                   : (9 more)
Repo-expire        : 172,800 초 (가장 최근: 2021년 01월 01일 (금) 오후 12시 19분
                   : 14초 )
Repo-filename      : /etc/yum.repos.d/CentOS-Stream-AppStream.repo

Repo-id            : baseos
Repo-name          : CentOS Stream 8 - BaseOS
Repo-revision      : 8-stream
Repo-distro-tags      : [cpe:/o:centos-stream:centos-stream:8]:  ,  , 8, C, O,
                      : S, S, a, e, e, m, n, r, t, t
Repo-updated       : 2020년 12월 23일 (수) 오전 08시 16분 23초
Repo-pkgs          : 1,784
Repo-available-pkgs: 1,782
Repo-size          : 1.1 G
Repo-mirrors       : http://mirrorlist.centos.org/?release=8-stream&arch=x86_64&repo=BaseOS&infra=stock
Repo-baseurl       : http://mirror.anigil.com/CentOS/8-stream/BaseOS/x86_64/os/
                   : (9 more)
Repo-expire        : 172,800 초 (가장 최근: 2021년 01월 01일 (금) 오후 12시 19분
                   : 17초 )
Repo-filename      : /etc/yum.repos.d/CentOS-Stream-BaseOS.repo

Repo-id            : extras
Repo-name          : CentOS Stream 8 - Extras
Repo-revision      : 1594390776
Repo-updated       : 2020년 07월 10일 (금) 오후 11시 19분 28초
Repo-pkgs          : 21
Repo-available-pkgs: 21
Repo-size          : 252 k
Repo-mirrors       : http://mirrorlist.centos.org/?release=8-stream&arch=x86_64&repo=extras&infra=stock
Repo-baseurl       : http://mirror.kakao.com/centos/8-stream/extras/x86_64/os/
                   : (9 more)
Repo-expire        : 172,800 초 (가장 최근: 2021년 01월 01일 (금) 오후 12시 19분
                   : 19초 )
Repo-filename      : /etc/yum.repos.d/CentOS-Stream-Extras.repo
총 패키지: 7,526
[study@localhost ~]$ 

 

일부 사이트나 블로그에는 이 작업(저장소 교체) 없이 바로 저장소 동기화 작업만을 안내하고 있는데 그런 경우 동기화 이후 활성 저장소 정보를 다시금 확인해보면 아래와 같이 Stream 저장소가 활성화되지 않아 이후 저장소 동기화 작업 시 Stream 저장소를 통한 동기화 작업이 이루어지지 않습니다.

[study@localhost ~]$ dnf repolist
리포지터리 ID                     리포지터리 이름
appstream                         CentOS Linux 8 - AppStream
baseos                            CentOS Linux 8 - BaseOS
extras                            CentOS Linux 8 - Extras
[study@localhost ~]$

 따라서 온전히 CentOS Stream으로 전환하기 위해서는 저장소 교체 작업을 반드시 수행해주어야 합니다.

 

저장소(리포지터리) 동기화

[study@localhost ~]$ sudo dnf distro-sync

이제 배포판 동기화 작업을 수행해줍니다. 이 작업은 설치된 패키지를 활성화된 저장소에서 사용할 수 있는 최신 버전과 일치하도록 다운그레이드하거나 유지합니다.
위 명령과 같이 패키지가 지정되지 않으면 설치된 모든 패키지를 대상으로 합니다.

 

실행예시

[study@localhost ~]$ sudo dnf distro-sync
마지막 메타 데이터 만료 확인 : 0:01:26 전에 2021년 01월 01일 (금) 오후 12시 23분 05초.
종속성이 해결되었습니다.
================================================================================
 패키지                          아키텍처
                                        버전                    리포지터리
                                                                           크기
================================================================================
설치 중:
 kernel                          x86_64 4.18.0-259.el8          baseos    5.0 M
 kernel-core                     x86_64 4.18.0-259.el8          baseos     31 M
 kernel-devel                    x86_64 4.18.0-259.el8          baseos     17 M
 kernel-modules                  x86_64 4.18.0-259.el8          baseos     27 M
업그레이드:
 NetworkManager                  x86_64 1:1.30.0-0.4.el8        baseos    2.5 M
 NetworkManager-adsl             x86_64 1:1.30.0-0.4.el8        baseos    138 k
 NetworkManager-bluetooth        x86_64 1:1.30.0-0.4.el8        baseos    164 k
 NetworkManager-config-server    noarch 1:1.30.0-0.4.el8        baseos    125 k
 NetworkManager-libnm            x86_64 1:1.30.0-0.4.el8        baseos    1.8 M
 
 - 중략 -
 
 xdg-desktop-portal              x86_64 1.6.0-3.el8             appstream 407 k
 xorg-x11-server-Xorg            x86_64 1.20.10-1.el8           appstream 1.5 M
 xorg-x11-server-Xwayland        x86_64 1.20.10-1.el8           appstream 978 k
 xorg-x11-server-common          x86_64 1.20.10-1.el8           appstream  42 k
 yum                             noarch 4.4.2-2.el8             baseos    200 k
 zlib                            x86_64 1.2.11-17.el8           baseos    102 k
 zlib-devel                      x86_64 1.2.11-17.el8           baseos     58 k
종속 패키지 설치:
 fuse3                           x86_64 3.2.1-12.el8            baseos     50 k
 lmdb-libs                       x86_64 0.9.24-1.el8            baseos     58 k
삭제 중:
 kernel                          x86_64 4.18.0-147.5.1.el8_1    @BaseOS     0  
 kernel-core                     x86_64 4.18.0-147.5.1.el8_1    @BaseOS    58 M
 kernel-devel                    x86_64 4.18.0-147.5.1.el8_1    @BaseOS    46 M
 kernel-modules                  x86_64 4.18.0-147.5.1.el8_1    @BaseOS    20 M
다운그레이드 중:
 anaconda-core                   x86_64 33.16.3.26-1.el8        appstream 2.4 M
 anaconda-gui                    x86_64 33.16.3.26-1.el8        appstream 558 k
 anaconda-tui                    x86_64 33.16.3.26-1.el8        appstream 275 k
 anaconda-user-help              noarch 1:8.3.3-1.el8           appstream  39 k
 anaconda-widgets                x86_64 33.16.3.26-1.el8        appstream 211 k
 firefox                         x86_64 78.3.0-1.el8_2          appstream 105 M
 python36                        x86_64 3.6.8-2.module_el8.3.0+389+6a62c88d
                                                                appstream  19 k

트랜잭션 요약
================================================================================
설치             6 패키지
업그레이드     483 패키지
삭제             4 패키지
다운 그레이드    7 패키지

총 다운로드 크기 : 706 M
정말입니까 [y/N]: y
패키지 다운로드중:
(1/496): anaconda-tui-33.16.3.26-1.el8.x86_64.r 1.8 MB/s | 275 kB     00:00    
(2/496): anaconda-user-help-8.3.3-1.el8.noarch. 574 kB/s |  39 kB     00:00    
(3/496): anaconda-widgets-33.16.3.26-1.el8.x86_ 4.3 MB/s | 211 kB     00:00    
(4/496): anaconda-gui-33.16.3.26-1.el8.x86_64.r 901 kB/s | 558 kB     00:00    
(5/496): python36-3.6.8-2.module_el8.3.0+389+6a 245 kB/s |  19 kB     00:00    

-중략 -

(490/496): tuned-2.15.0-0.1.rc1.el8.noarch.rpm  3.9 MB/s | 302 kB     00:00    
(491/496): vdo-6.2.4.14-14.el8.x86_64.rpm       5.8 MB/s | 592 kB     00:00    
(492/496): yum-4.4.2-2.el8.noarch.rpm           1.9 MB/s | 200 kB     00:00    
(493/496): zlib-1.2.11-17.el8.x86_64.rpm        1.1 MB/s | 102 kB     00:00    
(494/496): zlib-devel-1.2.11-17.el8.x86_64.rpm  641 kB/s |  58 kB     00:00    
(495/496): wpa_supplicant-2.9-3.el8.x86_64.rpm  1.1 MB/s | 1.9 MB     00:01    
(496/496): linux-firmware-20201022-100.gitdae4b 3.5 MB/s | 114 MB     00:32    
--------------------------------------------------------------------------------
합계                                            7.5 MB/s | 706 MB     01:33     
트랜잭션 점검 실행 중
트랜잭션 검사가 성공했습니다.
트랜잭션 테스트 실행 중
트랜잭션 테스트가 완료되었습니다.
트랜잭션 실행 중
  스크립틀릿 실행: filesystem-3.8-4.el8.x86_64                              1/1 
  스크립틀릿 실행: kmod-kvdo-6.2.3.91-73.el8.x86_64                         1/1 
  준비 중입니다  :                                                          1/1 
  스크립틀릿 실행: glibc-langpack-en-2.28-141.el8.x86_64                    1/1 
  업그레이드     : glibc-langpack-en-2.28-141.el8.x86_64                  1/990 
  업그레이드     : glibc-langpack-ko-2.28-141.el8.x86_64                  2/990 
  업그레이드     : glibc-common-2.28-141.el8.x86_64                       3/990 
  스크립틀릿 실행: glibc-2.28-141.el8.x86_64                              4/990 
  업그레이드     : glibc-2.28-141.el8.x86_64                              4/990 
  스크립틀릿 실행: glibc-2.28-141.el8.x86_64                              4/990 
  업그레이드     : libselinux-2.9-5.el8.x86_64                            5/990 
  스크립틀릿 실행: libselinux-2.9-5.el8.x86_64                            5/990 

-중략 - 

  스크립틀릿 실행: kernel-core-4.18.0-147.5.1.el8_1.x86_64              956/990 
  삭제 중        : kernel-core-4.18.0-147.5.1.el8_1.x86_64              956/990 
  스크립틀릿 실행: kernel-core-4.18.0-147.5.1.el8_1.x86_64              956/990 
  정리           : linux-firmware-20200619-99.git3890db36.el8.noarch    957/990 
  정리           : dracut-049-95.git20200804.el8.x86_64                 958/990 
  정리           : systemd-udev-239-41.el8_3.x86_64                     959/990 
  스크립틀릿 실행: systemd-udev-239-41.el8_3.x86_64                     959/990 
  정리           : procps-ng-3.3.15-3.el8.x86_64                        960/990 
  정리           : kpartx-0.8.4-5.el8.x86_64                            961/990 
  정리           : device-mapper-8:1.02.171-5.el8.x86_64                962/990 
  정리           : device-mapper-libs-8:1.02.171-5.el8.x86_64           963/990 
  정리           : elfutils-libs-0.180-1.el8.x86_64                     964/990 
  정리           : elfutils-default-yama-scope-0.180-1.el8.noarch       965/990 
  정리           : dbus-1:1.12.8-11.el8.x86_64                          966/990 
  스크립틀릿 실행: systemd-239-41.el8_3.x86_64                          967/990 
  정리           : systemd-239-41.el8_3.x86_64                          967/990 
  정리           : systemd-pam-239-41.el8_3.x86_64                      968/990 
  정리           : pam-1.3.1-11.el8.x86_64                              969/990 
  스크립틀릿 실행: pam-1.3.1-11.el8.x86_64                              969/990 
  스크립틀릿 실행: dbus-daemon-1:1.12.8-11.el8.x86_64                   970/990 
  정리           : dbus-daemon-1:1.12.8-11.el8.x86_64                   970/990 
  스크립틀릿 실행: dbus-daemon-1:1.12.8-11.el8.x86_64                   970/990 
  정리           : libdb-5.3.28-39.el8.x86_64                           971/990 
  스크립틀릿 실행: libdb-5.3.28-39.el8.x86_64                           971/990 
  정리           : openssl-libs-1:1.1.1g-11.el8.x86_64                  972/990 
  스크립틀릿 실행: openssl-libs-1:1.1.1g-11.el8.x86_64                  972/990 
  정리           : dbus-tools-1:1.12.8-11.el8.x86_64                    973/990 
  정리           : dbus-libs-1:1.12.8-11.el8.x86_64                     974/990 
  스크립틀릿 실행: dbus-libs-1:1.12.8-11.el8.x86_64                     974/990 
  정리           : systemd-libs-239-41.el8_3.x86_64                     975/990 
  정리           : shadow-utils-2:4.6-11.el8.x86_64                     976/990 
  정리           : iptables-libs-1.8.4-15.el8.x86_64                    977/990 
  정리           : libsemanage-2.9-3.el8.x86_64                         978/990 
  정리           : elfutils-libelf-0.180-1.el8.x86_64                   979/990 
  정리           : cpio-2.12-8.el8.x86_64                               980/990 
  스크립틀릿 실행: gzip-1.9-9.el8.x86_64                                981/990 
  정리           : gzip-1.9-9.el8.x86_64                                981/990 
  정리           : dbus-common-1:1.12.8-11.el8.noarch                   982/990 
  정리           : filesystem-3.8-3.el8.x86_64                          983/990 
  정리           : zlib-1.2.11-16.el8_2.x86_64                          984/990 
  정리           : glibc-langpack-en-2.28-127.el8.x86_64                985/990 
  정리           : libselinux-2.9-4.el8_3.x86_64                        986/990 
  정리           : glibc-common-2.28-127.el8.x86_64                     987/990 
  정리           : glibc-langpack-ko-2.28-127.el8.x86_64                988/990 
  정리           : glibc-2.28-127.el8.x86_64                            989/990 
  정리           : libgcc-8.3.1-5.1.el8.x86_64                          990/990 
  스크립틀릿 실행: libgcc-8.3.1-5.1.el8.x86_64                          990/990 
  스크립틀릿 실행: filesystem-3.8-4.el8.x86_64                          990/990 
  스크립틀릿 실행: container-selinux-2:2.151.0-1.module_el8.4.0+575+6   990/990 
  스크립틀릿 실행: nss-3.53.1-17.el8_3.x86_64                           990/990 
  스크립틀릿 실행: clevis-15-1.el8.x86_64                               990/990 
  스크립틀릿 실행: sssd-common-2.4.0-3.el8.x86_64                       990/990 
  스크립틀릿 실행: libvirt-daemon-6.0.0-29.module_el8.4.0+547+a85d02b   990/990 
  스크립틀릿 실행: dconf-0.28.0-4.el8.x86_64                            990/990 
  스크립틀릿 실행: libwbclient-4.13.2-5.el8.x86_64                      990/990 
  스크립틀릿 실행: evolution-data-server-3.28.5-15.el8.x86_64           990/990 
  스크립틀릿 실행: kernel-core-4.18.0-259.el8.x86_64                    990/990 
  스크립틀릿 실행: kmod-kvdo-6.2.3.91-73.el8.x86_64                     990/990 
  스크립틀릿 실행: authselect-libs-1.2.2-1.el8.x86_64                   990/990 
  스크립틀릿 실행: authselect-compat-1.2.2-1.el8.x86_64                 990/990 
  스크립틀릿 실행: tuned-2.15.0-0.1.rc1.el8.noarch                      990/990 
  스크립틀릿 실행: libvirt-daemon-config-network-6.0.0-29.module_el8.   990/990 
  스크립틀릿 실행: microcode_ctl-4:20201112-1.el8.x86_64                990/990 
  스크립틀릿 실행: firefox-78.3.0-1.el8_2.x86_64                        990/990 
  스크립틀릿 실행: libgcc-8.3.1-5.1.el8.x86_64                          990/990 
  스크립틀릿 실행: glibc-common-2.28-141.el8.x86_64                     990/990 
  스크립틀릿 실행: glib2-2.56.4-9.el8.x86_64                            990/990 
  스크립틀릿 실행: systemd-239-43.el8.x86_64                            990/990 
  스크립틀릿 실행: systemd-udev-239-43.el8.x86_64                       990/990 
  확인 중        : anaconda-core-33.16.3.26-1.el8.x86_64                  1/990 
  확인 중        : anaconda-core-33.16.3.26-2.el8.centos.x86_64           2/990 
  확인 중        : anaconda-gui-33.16.3.26-1.el8.x86_64                   3/990 
  확인 중        : anaconda-gui-33.16.3.26-2.el8.centos.x86_64            4/990 
  확인 중        : anaconda-tui-33.16.3.26-1.el8.x86_64                   5/990 
  
- 중략 -

  확인 중        : zlib-devel-1.2.11-16.el8_2.x86_64                    986/990 
  확인 중        : kernel-4.18.0-147.5.1.el8_1.x86_64                   987/990 
  확인 중        : kernel-core-4.18.0-147.5.1.el8_1.x86_64              988/990 
  확인 중        : kernel-devel-4.18.0-147.5.1.el8_1.x86_64             989/990 
  확인 중        : kernel-modules-4.18.0-147.5.1.el8_1.x86_64           990/990 
Installed products updated.

업그레이드 됨:
  NetworkManager-1:1.30.0-0.4.el8.x86_64                                        
  NetworkManager-adsl-1:1.30.0-0.4.el8.x86_64                                   
  NetworkManager-bluetooth-1:1.30.0-0.4.el8.x86_64                              
  NetworkManager-config-server-1:1.30.0-0.4.el8.noarch                          
  NetworkManager-libnm-1:1.30.0-0.4.el8.x86_64                                  
  
- 중략 -

  xdg-desktop-portal-1.6.0-3.el8.x86_64                                         
  xorg-x11-server-Xorg-1.20.10-1.el8.x86_64                                     
  xorg-x11-server-Xwayland-1.20.10-1.el8.x86_64                                 
  xorg-x11-server-common-1.20.10-1.el8.x86_64                                   
  yum-4.4.2-2.el8.noarch                                                        
  zlib-1.2.11-17.el8.x86_64                                                     
  zlib-devel-1.2.11-17.el8.x86_64                                               

다운 그레이드:
  anaconda-core-33.16.3.26-1.el8.x86_64                                         
  anaconda-gui-33.16.3.26-1.el8.x86_64                                          
  anaconda-tui-33.16.3.26-1.el8.x86_64                                          
  anaconda-user-help-1:8.3.3-1.el8.noarch                                       
  anaconda-widgets-33.16.3.26-1.el8.x86_64                                      
  firefox-78.3.0-1.el8_2.x86_64                                                 
  python36-3.6.8-2.module_el8.3.0+389+6a62c88d.x86_64                           

설치됨:
  fuse3-3.2.1-12.el8.x86_64               kernel-4.18.0-259.el8.x86_64         
  kernel-core-4.18.0-259.el8.x86_64       kernel-devel-4.18.0-259.el8.x86_64   
  kernel-modules-4.18.0-259.el8.x86_64    lmdb-libs-0.9.24-1.el8.x86_64        

제거됨:
  kernel-4.18.0-147.5.1.el8_1.x86_64                                            
  kernel-core-4.18.0-147.5.1.el8_1.x86_64                                       
  kernel-devel-4.18.0-147.5.1.el8_1.x86_64                                      
  kernel-modules-4.18.0-147.5.1.el8_1.x86_64                                    

완료되었습니다!
[study@localhost ~]$ 

 

CentOS 버전 확인

[study@localhost ~]$ cat /etc/redhat-release
CentOS Stream release 8
[study@localhost ~]$ 

위와 같이 CentOS Linux가 CemtOS Stream으로 정상적으로 전환되었는지 확인합니다.