배경
폐쇄형 네트워크 환경에서 RHEL 8을 사용하여 서버를 실행하고 있습니다. 파일을 서버에 업로드할 수 있지만 yum update
서버에서는 작동하지 않습니다. 특정 패키지를 최신 버전으로 업데이트하고 싶습니다. 패키지를 업데이트하려면 업데이트된 패키지에서 필수 패키지를 업데이트해야 합니다.
질문
.rpm
패키지 업데이트에 필요한 모든 파일의 URL을 열거할 수 있다면 .rpm
다른 환경에서 파일을 다운로드하여 서버에 업로드할 수 있었습니다.
종속성 트리와 트리에 있는 패키지의 URL을 검색 할 수 있다는 것을 알고 있지만 repoquery
폐쇄된 네트워크에 있는 환경 외에는 RHEL 환경이 없습니다.
질문
.rpm
RHEL 환경 없이 특정 패키지를 업데이트하는 데 필요한 모든 파일의 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
.
두 장치 모두에서 패키지를 동기화 상태로 유지하면 이 작업을 무기한으로 수행할 수 있습니다.