이미 설치된 명령에 대한 RPM 패키지 다운로드


12

이미 사용하여 openssl-devel을 설치 한 CentOS 시스템이 있습니다.

$ yum install openssl-devel 

모든 종속 패키지를 다운로드하여 설치했습니다. 이제 모든 RPM 패키지가 필요합니다. RPM 패키지 만 다운로드 할 수 있습니까? 내가 이것을 할 때 :

 $ yum install  openssl-devel -y --downloadonly 

그것은 말한다

Package 1:openssl-devel-1.0.1e-4.fc18.x86_64 already installed and latest version

이미 설치되어 있기 때문입니다.

누구든지 같은 시스템에서 RPM 패키지를 다운로드하는 방법을 알고 있습니까?

답변:


13

--downloadonly스위치를 사용하여 이미 설치된 RPM 패키지를 다운로드 할 수 있습니다. 패키지가 이미 설치되어 있는지 확인하기 전에 yum이이 설정을 확인하지 못하는 이유는 확실하지 않지만 기본 도구 아키텍처로 인해 발생할 수 있습니다.

어쨌든, yum에게 패키지 를 다시 설치 하도록 지시하기 만하면됩니다 .

yum --downloadonly --downloaddir=/tmp/rpm_files/ reinstall package_name

물론 yum은이 패키지에만 설치된 종속성을 알지 못하므로 RPM을 가져 와서 다른 시스템에 설치하려고하면 일부 종속성이 누락 될 수 있습니다. 전체 종속성 그래프를 탐색하는 방법이 있으며 이것이 SE의 다른 곳에서 이미 설명되어 있다고 확신합니다.


7

yumdownloader에서 yum-utils전달한 패키지를 다운로드하거나 패키지를 다운로드 할 수있는 URL을 선택적으로 생성합니다.


의존성을 해결하지 않고, 그냥 openssl-devel.x86_64.rpm을 다운로드
abubacker

아니요, 종속성을 해결하지 않습니다. 그러나 도구가 종속성을 해결하기 위해 얼마나 멀리 원하십니까? glibc? filesystem?
이그나시오 바스케스-아 브람스

1
내 요구 사항은, 내가, RPM으로의 목록을 얻을 필요가 오프라인에있는 다른 컴퓨터에 설치하는 간단하다
abubacker

"간단한"이라고 말하지만 실제로 생각만큼 간단하지 않습니다. 이미 설치된 패키지 목록 만 제공하면 종속성을 해결하는 도구가 없습니다.
이그나시오 바스케스-아 브람스

1
실제로 간단합니다. yum install openssl-devel -y-다운로드 만 다른 컴퓨터에서이 명령을 수행하면 모든 종속성이 해결되지만 내 질문은 해당 명령을 설치 한 컴퓨터에서 동일한 작업을 수행 할 수 있는지 여부입니다. 이미
abubacker

3

yum-utils 패키지에서 repotrack 명령을 사용할 수 있습니다 . 이미 설치되어 있어도 전체 종속성 트리를 다운로드합니다 .

예:

sudo yum install yum-utils      # Install yum-utils
sudo repotrack openssl-devel    # Download all dependencies for openssl-devel


샘플 출력 :

[sbadra@rhel6 ~]$ sudo yum install openssl-devel
Loaded plugins: product-id, search-disabled-repos, subscription-manager
Setting up Install Process
Package openssl-devel-1.0.1e-57.el6.x86_64 already installed and latest version
Nothing to do

[sbadra@rhel6 ~]$ sudo repotrack openssl-devel
Downloading audit-libs-2.4.5-6.el6.x86_64.rpm
Downloading audit-libs-2.4.5-6.el6.i686.rpm
Downloading basesystem-10.0-4.el6.noarch.rpm
Downloading bash-4.1.2-48.el6.x86_64.rpm
Downloading ca-certificates-2017.2.14-65.0.1.el6_9.noarch.rpm
Downloading chkconfig-1.3.49.5-1.el6.x86_64.rpm
Downloading coreutils-8.4-46.el6.x86_64.rpm
Downloading coreutils-libs-8.4-46.el6.x86_64.rpm
.... more packages ....
Downloading openssl-1.0.1e-57.el6.i686.rpm
Downloading openssl-1.0.1e-57.el6.x86_64.rpm
Downloading openssl-devel-1.0.1e-57.el6.i686.rpm
Downloading openssl-devel-1.0.1e-57.el6.x86_64.rpm
.... more packages ....
Downloading sed-4.2.1-10.el6.x86_64.rpm
Downloading setup-2.8.14-23.el6.noarch.rpm
Downloading tzdata-2018c-1.el6.noarch.rpm
Downloading zlib-1.2.3-29.el6.x86_64.rpm
Downloading zlib-1.2.3-29.el6.i686.rpm
Downloading zlib-devel-1.2.3-29.el6.i686.rpm
Downloading zlib-devel-1.2.3-29.el6.x86_64.rpm

1
실제로 예상되는 동작이므로 아키텍처 버그에 대한 메모를 취소했습니다. 참조 (x86_64의는 명령도는 i686 패키지를 다운로드 이유는 i686의 상위 집합이다) 추가 정보를 문서.
Sami Badra

2

장기적으로는 컴퓨터를 인터넷에서 다운로드 할 컴퓨터로 지정한 다음 NFS (또는 웹 서버)를 실행하여 / var / cache / yum을 내부 호스트에 노출시킬 수 있습니다.

그런 다음 yum 구성을 업데이트하여 다음을 추가해야합니다.

[main]
keepcache = 1

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/sec-Working_with_Yum_Cache.html :

캐싱을 활성화하면 모든 yum 작업이 구성된 리포지토리에서 패키지 데이터를 다운로드 할 수 있습니다.

보다 실용적인 용어로 :

$ sudo yum install -y nginx
$ sudo find /var/cache/yum/ -type f -name '*.rpm'
<...snip....>
/var/cache/yum/x86_64/7/epel/packages/nginx-1.10.2-1.el7.x86_64.rpm

다른 답변은 실제로 즉각적인 문제를 해결하여 yum reinstall이미 가지고있는 패키지를 실행 하고 RPM을 원하는 경우에만 도움이됩니다 .


0

내가하는 일은 다음과 같습니다.

sudo yum install --config =. / yum.conf --installroot = / tmp / f541Sdex --downloadonly --downloaddir / tmp / DL-e25xds $ (고양이 패키지 목록)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.