폐쇄된 네트워크 환경에서 패키지를 업데이트하기 위한 .rpm URL 목록 가져오기

폐쇄된 네트워크 환경에서 패키지를 업데이트하기 위한 .rpm URL 목록 가져오기

배경

폐쇄형 네트워크 환경에서 RHEL 8을 사용하여 서버를 실행하고 있습니다. 파일을 서버에 업로드할 수 있지만 yum update서버에서는 작동하지 않습니다. 특정 패키지를 최신 버전으로 업데이트하고 싶습니다. 패키지를 업데이트하려면 업데이트된 패키지에서 필수 패키지를 업데이트해야 합니다.

질문

.rpm패키지 업데이트에 필요한 모든 파일의 URL을 열거할 수 있다면 .rpm다른 환경에서 파일을 다운로드하여 서버에 업로드할 수 있었습니다.

종속성 트리와 트리에 있는 패키지의 URL을 검색 할 수 있다는 것을 알고 있지만 repoquery폐쇄된 네트워크에 있는 환경 외에는 RHEL 환경이 없습니다.

질문

.rpmRHEL 환경 없이 특정 패키지를 업데이트하는 데 필요한 모든 파일의 URL을 열거하는 방법이 있습니까 ?

답변1

한 가지 가능한 접근 방식은 다음을 사용하는 것입니다.

rpm -qR package_name.rpm

예를 들어:

rpm -qR https://vault.centos.org/centos/8/BaseOS/x86_64/os/Packages/vim-minimal-8.0.1763-16.el8.x86_64.rpm
warning: https://vault.centos.org/centos/8/BaseOS/x86_64/os/Packages/vim-minimal-8.0.1763-16.el8.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 8483c65d: NOKEY
config(vim-minimal) = 2:8.0.1763-16.el8
libacl.so.1()(64bit)
libacl.so.1(ACL_1.0)(64bit)
libc.so.6()(64bit)
libc.so.6(GLIBC_2.11)(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.15)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.28)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libselinux.so.1()(64bit)
libtinfo.so.6()(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1
rtld(GNU_HASH)

패키지를 받은 후 URL을 직접 작성해야 합니다.

답변2

이 답변은 매우 효과적입니다.https://unix.stackexchange.com/a/636320

dnf update --download-only패키지를 설치하는 대신 RPM을 대상 PC에 복사하고 실행하면 됩니다 rpm -Uvh *rpm.

두 장치 모두에서 패키지를 동기화 상태로 유지하면 이 작업을 무기한으로 수행할 수 있습니다.

관련 정보