Redhat 계열 offline으로 package를 yum이용하여 설치

참조 : https://finai.tistory.com/2

  1. 설치에 필요한 rpm 파일을 의존성까지 포함하여 다운로드
  2. 다운로드 된 rpm 파일을 repo로 생성
  3. 생성된 repo를 전체 tar.gz로 묶어 설치대상 offline server에 복사
  4. 복사된 repo 파일을 압축해제 및 repo config 파일을 생성하여 offline repo 확인
  5. offline repo를 사용하여 Package 설치

1. 설치에 필요한 rpm 파일을 의존성까지 포함하여 다운로드

– yum-utils / createrepo 2개의 package 필요.
yum install 명령을 사용하여 설치.
# yum list yum-utils createrepo_c
createrepo_c.x86_64 0.20.1-2.el9 @appstream
yum-utils.noarch 4.3.0-13.el9 @baseos
# yum install yum-utils createrepo_c


– yumdownloader –resolv 을 이용하여 다운로드

    # yumdownloader --resolv glibc.x86_64 \
    glibc-all-langpacks.x86_64 \
    glibc-common.x86_64 \
    glibc-gconv-extra.x86_64 \
    glibc-langpack-ko.x86_64 \
    less.x86_64 \
    python3-idna.noarch \
    ghostscript.x86_64 \
    ghostscript-tools-fonts.x86_64 \
    ghostscript-tools-printing.x86_64 \
    libgs.x86_64 \
    python-unversioned-command.noarch \
    python3.x86_64 \
    python3-libs.x86_64 \
    flatpak.x86_64 \
    flatpak-libs.x86_64 \
    flatpak-selinux.noarch \
    flatpak-session-helper.x86_64 \
    openssh.x86_64 \
    openssh-clients.x86_64 \
    openssh-server.x86_64 \
    libndp.x86_64 \
    bind-libs.x86_64 \
    bind-license.noarch \
    bind-utils.x86_64 \
    bpftool.x86_64 \
    kernel.x86_64 \
    kernel-core.x86_64 \
    kernel-modules.x86_64 \
    kernel-modules-core.x86_64 \
    kernel-tools.x86_64 \
    kernel-tools-libs.x86_64 \
    python3-perf.x86_64 \
    openssl.x86_64 \
    openssl-libs.x86_64 \
    cups-filters.x86_64 \
    cups-filters-libs.x86_64 \
    firefox.x86_64 \
    expat.x86_64
    마지막 메타자료 만료확인(1:38:25 이전): 2024년 10월 31일 (목) 오전 11시 45분 47초.
    (1/47): nss-softokn-freebl-3.101.0-7.el9_4.x86_64.rpm   2.0 MB/s | 309 kB     00:00
    (2/47): nss-sysinit-3.101.0-7.el9_4.x86_64.rpm  110 kB/s |  18 kB     00:00
    (3/47): nss-util-3.101.0-7.el9_4.x86_64.rpm     359 kB/s |  88 kB     00:00
    (4/47): nss-softokn-3.101.0-7.el9_4.x86_64.rpm  1.5 MB/s | 386 kB     00:00
    (5/47): openssl-libs-3.0.7-28.el9_4.x86_64.rpm  4.3 MB/s | 2.1 MB     00:00
    ......... 생략 ...........
    (44/47): cups-filters-libs-1.28.7-17.el9_4.x86_64.rpm  940 kB/s | 133 kB     00:00
		(45/47): cups-filters-1.28.7-17.el9_4.x86_64.rpm  8.6 MB/s | 766 kB     00:00
		(46/47): python-unversioned-command-3.9.18-3.el9_4.6.noarch.rpm  102 kB/s | 8.5 kB     00:00
    (47/47): firefox-128.3.1-2.el9_4.x86_64.rpm

현재 디렉토리 아래로 다운로드 되니 다운로드전 offline_repo 디렉토리 생성하여 그 위치에서 다운로드 권장.

2. 다운로드 된 rpm 파일을 repo로 생성

– createrepo –database 명령어를 사용하여 repo 생성
# createrepo –database /root/offline_repo
Directory walk started
Directory walk done – 49 packages
Temporary output repo path: /root/offline_repo/.repodata/
Preparing sqlite DBs
Pool started (with 5 workers)
Pool finished

상기 명령어 이후 .repodata 디렉토리 및 repo datafile 생성됨.

3. 생성된 repo를 전체 tar.gz로 묶어 설치대상 offline server에 복사

– tar -cvzf // scp 등의 명령어를 사용해 또는 usb를 통해 offline 서버로 생성된 repo를 복사

    # tar -cvzf ./offline_repo.tar.gz ./offline_repo/*
    ./offline_repo/bind-libs-9.16.23-18.el9_4.6.x86_64.rpm
    ./offline_repo/bind-license-9.16.23-18.el9_4.6.noarch.rpm
    ./offline_repo/bind-utils-9.16.23-18.el9_4.6.x86_64.rpm
    ./offline_repo/bpftool-7.3.0-427.40.1.el9_4.x86_64.rpm
    ./offline_repo/bubblewrap-0.4.1-7.el9_4.x86_64.rpm

     ........... 생략 ...........
    ./offline_repo/repodata/
    ./offline_repo/repodata/6425716f029688fd8dd8a8404d20d7d5725bba063db784b7ecb69de836c8830d-primary.xml.gz
    ./offline_repo/repodata/76654535505d3248e9c27c14bf88aeb44b2b99e5c73332649b321c1be5d6fe52-filelists.xml.gz
    ./offline_repo/repodata/58d73aad1ef321eecfe7ce49bf68969803ce3d1c96b7162d6b340f9d8b972ad1-other.xml.gz
    ./offline_repo/repodata/c0f7b7d745c240bf86a55abf9df1972edf5086e513fc50a9a9c31a7afaec090d-primary.sqlite.bz2
    ./offline_repo/repodata/672229b734ce8c94e7e505b55eff4cb2827bdf21ad058a160f5c53cef7ed13fd-other.sqlite.bz2
    ./offline_repo/repodata/repomd.xml
    ./offline_repo/selinux-policy-38.1.35-2.el9_4.2.0.2.noarch.rpm
    ./offline_repo/selinux-policy-targeted-38.1.35-2.el9_4.2.0.2.noarch.rpm

    # scp offline_repo.tar.gz 10.10.10.137:/root/offline_repo.tar.gz
    The authenticity of host '10.10.10.137 (10.10.10.137)' can't be established.
    ED25519 key fingerprint is SHA256:zhmmv4HgNfgiuVz8BnePq7TzSbl7HanGqRnYfXH4RM4.
    This key is not known by any other names
    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
    Warning: Permanently added '10.10.10.137' (ED25519) to the list of known hosts.
    root@10.10.10.137's password:
    offline_repo.tar.gz 100% 253MB 111.7MB/s 00:02

4. 복사된 repo 파일을 압축해제 및 repo config 파일을 생성하여 offline repo 확인

(4 부터는 offline Server에서 작업, 1-3과정은 internet 가능한 서버에서 작업.)

– 로컬경로에 복사된 repo file 압축해제 및 yum.repos.d 아래 repo 파일 생성
offline의 경우 기존 web으로 연결된 repo가 error이 나므로 backup로 이동하여 사용하지 않게 처리

# tar -xvzf offline_repo.tar.gz ./offline_repo/
# cd /etc/yum.repos.d
# vi offline.repo
# offline.repo
name=Rocky Linux 9 update offline
#mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=BaseOS-$releasever$rltype
baseurl=file:///root/offline_repo
gpgcheck=0
enabled=1

# mkdir backup
# mv -rp rocky* ./backup
# yum repolist
저장소 ID 저장소 이름 offline Rocky Linux 9 update offline
# yum list
…결과생략.

5. offline repo를 사용하여 Package 설치

– yum install 명령어를 사용하여 Package 설치

# yum install glibc.x86_64 \
glibc-all-langpacks.x86_64 \
glibc-common.x86_64 \
glibc-gconv-extra.x86_64 \
glibc-langpack-ko.x86_64 \
less.x86_64 \
python3-idna.noarch \
ghostscript.x86_64 \
ghostscript-tools-fonts.x86_64 \
ghostscript-tools-printing.x86_64 \
libgs.x86_64 \
python-unversioned-command.noarch \
python3.x86_64 \
python3-libs.x86_64 \
flatpak.x86_64 \
flatpak-libs.x86_64 \
flatpak-selinux.noarch \
flatpak-session-helper.x86_64 \
openssh.x86_64 \
openssh-clients.x86_64 \
openssh-server.x86_64 \
libndp.x86_64 \
bind-libs.x86_64 \
bind-license.noarch \
bind-utils.x86_64 \
bpftool.x86_64 \
kernel.x86_64 \
kernel-core.x86_64 \
kernel-modules.x86_64 \
kernel-modules-core.x86_64 \
kernel-tools.x86_64 \
kernel-tools-libs.x86_64 \
python3-perf.x86_64 \
openssl.x86_64 \
openssl-libs.x86_64 \
cups-filters.x86_64 \
cups-filters-libs.x86_64 \
firefox.x86_64 \
expat.x86_64

마지막 메타자료 만료확인(0:07:53 이전): 2024년 10월 31일 (목) 오후 01시 35분 14초.
꾸러미 glibc-2.34-100.el9.x86_64가 이미 설치되어 있습니다.
꾸러미 glibc-all-langpacks-2.34-100.el9.x86_64가 이미 설치되어 있습니다.
꾸러미 glibc-common-2.34-100.el9.x86_64가 이미 설치되어 있습니다.
꾸러미 glibc-gconv-extra-2.34-100.el9.x86_64가 이미 설치되어 있습니다.
…………. 생략 ………..

전체 크기: 287 M 진행할까요? [y/N]: y 꾸러미 내려받기 중: ……………….. 생략. 확인 중 : selinux-policy-targeted-38.1.35-2.el9_4.2.0.2.noarch 89/90 확인 중 : selinux-policy-targeted-38.1.35-2.el9_4.0.1.noarch 90/90 향상되었습니다: bind-libs-32:9.16.23-18.el9_4.6.x86_64 bind-license-32:9.16.23-18.el9_4.6.noarch bind-utils-32:9.16.23-18.el9_4.6.x86_64 bpftool-7.3.0-427.40.1.el9_4.x86_64 bubblewrap-0.4.1-7.el9_4.x86_64 cups-filters-1.28.7-17.el9_4.x86_64 cups-filters-libs-1.28.7-17.el9_4.x86_64 expat-2.5.0-2.el9_4.1.x86_64 firefox-128.3.1-2.el9_4.x86_64 flatpak-1.12.9-3.el9_4.x86_64 flatpak-libs-1.12.9-3.el9_4.x86_64 flatpak-selinux-1.12.9-3.el9_4.noarch flatpak-session-helper-1.12.9-3.el9_4.x86_64 ghostscript-9.54.0-17.el9_4.x86_64 ghostscript-tools-fonts-9.54.0-17.el9_4.x86_64 ghostscript-tools-printing-9.54.0-17.el9_4.x86_64 glibc-2.34-100.el9_4.4.x86_64 glibc-all-langpacks-2.34-100.el9_4.4.x86_64 glibc-common-2.34-100.el9_4.4.x86_64 glibc-gconv-extra-2.34-100.el9_4.4.x86_64 glibc-langpack-ko-2.34-100.el9_4.4.x86_64 kernel-tools-5.14.0-427.40.1.el9_4.x86_64 kernel-tools-libs-5.14.0-427.40.1.el9_4.x86_64 less-590-4.el9_4.x86_64 libgs-9.54.0-17.el9_4.x86_64 libndp-1.8-6.el9_4.x86_64 nss-3.101.0-7.el9_4.x86_64 nss-softokn-3.101.0-7.el9_4.x86_64 nss-softokn-freebl-3.101.0-7.el9_4.x86_64 nss-sysinit-3.101.0-7.el9_4.x86_64 nss-util-3.101.0-7.el9_4.x86_64 openssh-8.7p1-38.el9_4.4.x86_64 openssh-clients-8.7p1-38.el9_4.4.x86_64 openssh-server-8.7p1-38.el9_4.4.x86_64 openssl-1:3.0.7-28.el9_4.x86_64 openssl-libs-1:3.0.7-28.el9_4.x86_64 python-unversioned-command-3.9.18-3.el9_4.6.noarch python3-3.9.18-3.el9_4.6.x86_64 python3-idna-2.10-7.el9_4.1.noarch python3-libs-3.9.18-3.el9_4.6.x86_64 python3-perf-5.14.0-427.40.1.el9_4.x86_64 selinux-policy-38.1.35-2.el9_4.2.0.2.noarch selinux-policy-targeted-38.1.35-2.el9_4.2.0.2.noarch 설치되었습니다: kernel-5.14.0-427.40.1.el9_4.x86_64 kernel-core-5.14.0-427.40.1.el9_4.x86_64 kernel-modules-5.14.0-427.40.1.el9_4.x86_64 kernel-modules-core-5.14.0-427.40.1.el9_4.x86_64 완료되었습니다!

– Kernel 관련 Package는 rebooting 이후 적용.

# uname -a
Linux rocky94-2 5.14.0-427.13.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Wed May 1 19:11:28 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

# shutdown -r now
# uname -a
Linux rocky94-2 5.14.0-427.40.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Oct 16 14:57:47 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다