yum + yum 업데이트로 설치된 모든 rpm을 캡처하는 방법

yum + yum 업데이트로 설치된 모든 rpm을 캡처하는 방법

rhel 7.2에서 rhel 7.6으로 업그레이드했습니다.

업그레이드는 yum 업데이트를 통해 이루어집니다(redhat 레퍼토리에서).

subscription-manager release --set=7.6
subscription-manager repos --enable "rhel-*-optional-rpms" --enable "rhel-*-extras-rpms"  --enable "rhel-ha-for-rhel-*-server-rpms"

그럼 우리는 공연을 했어요

yum update

yum 기록에서 업데이트도 볼 수 있습니다.

yum history
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
ID     | Command line             | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
    31 | update                   | 2020-09-11 09:10 | I, O, U        |  899 EE

업데이트 과정에서 300rpm이 업데이트/설치되었습니다.

하지만 이제 네트워크 연결 없이 다른 컴퓨터에서 오프라인으로 yum 업데이트를 수행하려고 합니다. (yum 업데이트 중) 설치된 모든 rpm을 캡처할 수 있는지 물었습니다.

따라서 설치된 모든 rpm 목록을 캡처할 수 있습니다.

rpm 목록이 있으면 다음을 통해 다운로드할 수 있기 때문에 이것을 묻는 것입니다.yumdownloader

내가 찾은 것은

 yum history info 31 | grep  Updated
    Updated       rpm-4.11.3-17.el7.x86_64                  @anaconda/7.2
    Updated       subscription-manager-1.15.9-15.el7.x86_64 @anaconda/7.2
    Updated       yum-3.4.3-132.el7.noarch                  @anaconda/7.2
    Updated       yum-langpacks-0.4.2-4.el7.noarch          @anaconda/7.2
    Updated     ModemManager-1.1.0-8.git20130913.el7.x86_64                    @anaconda/7.2
    Updated     ModemManager-glib-1.1.0-8.git20130913.el7.x86_64               @anaconda/7.2
    Updated     NetworkManager-adsl-1:1.0.6-27.el7.x86_64                      @anaconda/7.2
    Updated     NetworkManager-config-server-1:1.0.6-27.el7.x86_64             @anaconda/7.2
    Updated     NetworkManager-glib-1:1.0.6-27.el7.x86_64                      @anaconda/7.2
    Updated     NetworkManager-libnm-1:1.0.6-27.el7.x86_64                     @anaconda/7.2
    Updated     NetworkManager-libreswan-1.0.6-3.el7.x86_64                    @anaconda/7.2
    Updated     NetworkManager-libreswan-gnome-1.0.6-3.el7.x86_64              @anaconda/7.2
    Updated     NetworkManager-team-1:1.0.6-27.el7.x86_64                      @anaconda/7.2

.
.
.

이것이 yum 업데이트에서 설치된 모든 rpm을 캡처하는 실제 방법입니까?

답변1

Red Hat에는 연결이 끊긴 시스템을 업데이트하는 가능한 방법을 설명하는 솔루션 문서가 있습니다.연결이 끊긴 시스템(인터넷에 연결되지 않은 시스템)을 정기적으로 업데이트하려면 어떻게 해야 합니까?.

사용 가능한 옵션은 다음과 같습니다.

  1. Red Hat Satellite Server를 설정합니다. 이를 위해서는 추가 구독이 필요합니다. 위성 서버는 온라인 Red Hat 리포지토리에 연결됩니다. 모든 시스템은 위성 서버에 연결하여 업데이트를 다운로드합니다.

  2. 연결된 다른 시스템에서 업데이트를 다운로드합니다. 패키지를 대상 시스템으로 전송하고 업데이트합니다.

  3. 배포 미디어(배포 전용 DVD/ISO 이미지)를 사용합니다.

  4. Red Hat 웹사이트에서 패키지를 수동으로 다운로드하세요. 이 방법은 시간이 많이 걸리고 자동화하기 어려우며 종속성 해결을 수동으로 처리해야 합니다.

  5. 로컬 저장소를 만듭니다. 이 방법에는 reposync도구를 사용하여 소프트웨어 패키지를 시스템에 다운로드하는 작업이 포함됩니다. 그런 다음 패키지는 HTTP/NFS/FTP를 사용하여 다른 시스템에 yum 저장소로 노출됩니다.


귀하의 경우에는 두 번째 접근 방식을 사용하고 있는 것 같습니다. 이 접근 방식에 대한 자세한 내용은 여기에서 확인할 수 있습니다.네트워크 연결 없이 오프라인 Red Hat Enterprise Linux 서버를 Red Hat/Proxy/Satellite로 업데이트하는 방법은 무엇입니까?. 이 문서에서는 대상 시스템에서 RPM 데이터베이스를 복사한 다음 이를 사용하여 yum update --downloadonly새 패키지를 얻을 것을 권장합니다.

다른 옵션을 조사하여 작업에 더 적합한지 확인할 수도 있습니다. 현재 7.2에서 7.6으로 업그레이드하려고 하므로 7.6 릴리스 미디어(세 번째 방법)를 사용하는 것이 효과적일 수 있습니다.

장기적인 솔루션을 위해서는 첫 번째 방법(위성)이나 다섯 번째 방법(로컬 저장소)을 살펴보는 것이 좋습니다. 이러한 방법은 더욱 집중적이며 더 나은 자동화 가능성을 제공합니다.

답변2

Yum 다운로드 /var/cache/yum/<repo>/packages따라서 해당 디렉터리의 rpm을 동일한 경로의 다른 서버로 복사하면 문제가 해결됩니다. 하지만 기억해두세요:

  • 가장 좋은 방법은 인터넷에 연결된 컴퓨터에서 먼저 패키지를 정리하여 yum update최신 실행 중인 업데이트/설치된 패키지만 남아 복사되도록 하는 것입니다. 반면에 이는 증분 rpm 메커니즘이 사용되지 않으며 차이점뿐만 아니라 각 rpm의 전체 크기를 다운로드해야 함을 의미합니다.

  • 대상 컴퓨터가 인터넷에 전혀 액세스할 수 없는 경우 yum은 사용 가능한 최신 패키지에 대한 알림을 받지 않습니다. 따라서 rpms를 복사한 후 yum install ./*.rpm이를 사용하여 설치할 수 있습니다. 인터넷 대역폭이 낮은 컴퓨터에서 제가 사용하는 방법은 yum check-update네트워크에 연결된 상태에서 실행한 후 모든 rpm을 /var/cache/yum/<repo>/packages업데이트에 복사한 후 실행하는 것입니다. Yum은 캐시에서 rpm을 찾고 네트워크에서 다운로드하지 않습니다.

많은 수의 시스템을 자주 업데이트해야 하는 경우 가장 좋은 방법은 로컬 리포지토리와 업데이트 서버를 설정하는 것입니다. 이는 간단한 작업이며 이를 수행하는 방법에 대한 많은 가이드를 찾을 수 있습니다.

관련 정보