"yum install $PACKAGE"를 사용할 수 있는 네트워크 연결이 있는 서버가 있습니다. 필요한 모든 RPM 파일을 $DIRECTORY에 다운로드할
수 있도록 일부 yum 명령이 필요합니다 . $DIRECTORY 에는 네트워크 연결 없이 다른 많은 서버에 이러한 RPM을 설치하는 순서를 설명하는 yum cache-rpms $PACKAGE $DIRECTORY
파일( )도 포함됩니다 . 네트워크를 사용 하는 대신 .Install.sh
Install.sh
yum install $PACKAGE
$DIRECTORY
가능한?
저는 yum과 RPM을 사용할 수 있는 일반적인 솔루션을 찾고 있습니다. 특히 CENTOS 6.7 서버 세트에 있습니다.
답변1
아래는 다운로드 및 설치 패키지로 "httpd"를 사용한 구체적인 예입니다. 이 절차는 CentOS6 및 CentOS7에서 테스트되었습니다.
필요한 것을 설치하고 다운로드한 RPM을 위한 공간을 만드세요.
# yum install yum-plugin-downloadonly yum-utils createrepo
# mkdir /var/tmp/httpd
# mkdir /var/tmp/httpd-installroot
RPM을 다운로드하세요. 이는 다음을 사용합니다.여기에 루트 스킬을 설치하는 것이 좋습니다빈 루트 디렉터리에는 아무것도 설치되어 있지 않으므로 모든 종속성을 강제로 전체 다운로드합니다. Yum은 그 안에 일부 메타데이터를 생성하지만 우리는 그것을 모두 버릴 것입니다. CentOS7의 경우 releasever
값은 "7"입니다.
# yum install --downloadonly --installroot=/var/tmp/httpd-installroot --releasever=6 --downloaddir=/var/tmp/httpd httpd
네, 그거요예전에는작은 버전. 전체 저장소 다운로드 크기를 확인하셨을 것입니다!
새 RPM 힙을 YUM 저장소로 변환하고 더 이상 필요하지 않은 것을 정리하는 데 필요한 메타데이터를 생성합니다.
# createrepo --database /var/tmp/httpd
# rm -rf /var/tmp/httpd-installroot
다운로드 디렉터리를 저장소로 구성합니다. CentOS7의 경우 gpgkey 이름은 "6" 대신 "7"로 지정됩니다.
# vi /etc/yum.repos.d/offline-httpd.repo
[offline-httpd]
name=CentOS-$releasever - httpd
baseurl=file:///var/tmp/httpd
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
누락된 종속성을 확인하려면 다음을 수행하세요.
# repoclosure --repoid=offline-httpd
libssl.so.10(libssl.so.10)(64bit)
CentOS7에서 이 보고서에 (라이브러리 제공자) 디렉토리에 명시적으로 존재하는 정보가 누락된 이유를 파악하지 못했습니다 httpd-tools
. openssl-libs-1.0.1e-51.el7_2.2.x86_64.rpm
그러나 뭔가 빠진 것이 분명하다면 yum install --downloadonly
다시 돌아가 위와 동일한 방법을 사용하여 추가할 수 있는 좋은 기회가 될 수 있습니다.
오프라인이거나 /var/tmp/httpd
저장소 디렉터리를 다른 서버에 복사한 후 해당 서버에 저장소를 설정합니다.
# vi /etc/yum.repos.d/offline-httpd.repo
[offline-httpd]
name=CentOS-$releasever - httpd
baseurl=file:///var/tmp/httpd
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
# yum --disablerepo=\* --enablerepo=offline-httpd install httpd
의존성이 사라지지 않기를 바랍니다!
답변2
너무 많이 필요해서 자동으로 @Steve Bonds라고 답했습니다. PKG
두 시스템 모두에 설치될 패키지로 정의해야 합니다 (면책조항: CentOS 7의 경우. CentOS 6의 경우 --releasever
및 CentOS-7
위치를 변경하십시오.
온라인 기계
PKG=... # NAME OF THE PACKAGE TO INSTALL ON OFFLINE MACHINE
yum install --downloadonly --installroot=/tmp/$PKG-installroot --releasever=7 --downloaddir=/tmp/$PKG $PKG
createrepo --database /tmp/$PKG
rm -rf /tmp/$PKG-installroot
rsync -arv /tmp/$PKG/ [IP of the machine]:/tmp/$PKG
오프라인 머신에서:
PKG=... # NAME OF THE PACKAGE
echo "[offline-$PKG]
name=CentOS-\$releasever - $PKG
baseurl=file:///tmp/$PKG/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7" > /etc/yum.repos.d/offline-$PKG.repo
# install package offline:
yum --disablerepo=\* --enablerepo=offline-$PKG install --nogpgcheck $PKG
답변3
yumdownloader
패키지에 무엇이 포함되어 있는지 문의하신 것 같습니다 yum-utils
. 이에 대한 몇 가지 질문과 답변이 이미 있습니다.이미 설치된 경우에도 모든 종속성을 다운로드하려면 yumdownloader를 사용해야 합니까?또는Yum을 사용하여 패키지 URL을 찾는 방법은 무엇입니까?
yumdownloader
패키지는 다운로드되지만 파일을 생성하지는 않습니다. Install.sh
순서는 yum 자체에 의해 결정될 수 있으므로
yum install ./*rpm
다운로드한 패키지가 포함된 폴더를 통해 대상 컴퓨터에 패키지를 설치할 수 있습니다(기본 설치와 마찬가지로 위 섹션 참조). 링크 repotrack
)