인터넷에 접속하지 않고 서버에 RPM 패키지 설치

인터넷에 접속하지 않고 서버에 RPM 패키지 설치

인터넷에 액세스할 수 없는 최소한의 CentOS 서버가 있습니다. 그것을 부르자서버 A.

내 목표는 응용 프로그램에 대한 로컬 RPM 파일의 특정 버전을 설치하기 위해 쉘 스크립트 파일을 작성하는 것입니다. 대상 애플리케이션이 Apache라고 가정해 보겠습니다. 문제는 각 RPM에 종속성이 있다는 것입니다.

인터넷에 접속할 수 있는 다른 서버(저는 이를 서버라고 부릅니다)서버 B, 패키지를 다운로드합니다.

wget http://repo.okay.com.mx/centos/7/x86_64/release/httpd-2.4.35-5.el7.x86_64.rpm

그런 다음 서버 A로 이동하고 설치해 보세요.

rpm -i httpd-2.4.35-5.el7.x86_64.rpm

냠 설치 종속성 스크린샷:
냠 설치 종속성 스크린샷

여기에는 몇 가지 요구 사항이 있습니다.

rpm -qpR httpd-2.4.35-5.el7.x86_64.rpm

종속성 찾아보기 스크린샷:
종속성 찾아보기 스크린샷

일부 요구 사항을 이해할 수 없습니다.

1- 무엇입니까 /etc/mime.types? 그런 파일이 없습니다. 어디서 구할 수 있나요?

2- 다음과 같은 일부 패키지가 여러 번 언급되었습니다.

systemd-utils
systemd-utils
systemd-utils

무슨 뜻이에요?

3- 일부 패키지에는 다양한 변형이 있습니다. 둘 중 어느 것을 설치해야 합니까? libc.so

4- 목록이 알파벳순으로 정렬된 것 같습니다. 설치 순서는 어떻게 되나요?

5- 이 dnf repoquery명령은 다른 목록도 제공합니다. 어느 것을 따라야합니까?

dnf 리포쿼리 스크린샷:
dnf 리포쿼리 스크린샷

6- 내가 원하는 것을 자동으로 수행할 수 있는 방법이 없을까요?

답변1

# Install Yumdownloader using the following command as root user.

yum install yum-utils

# Once installed, run the following command to download a package, for example httpd.
# To download packages with all dependencies, use --resolve option:

mkdir httpd && cd httpd && yumdownloader --resolve httpd

# it will download httpd with all dependencies into working dir.

docker 내부의 centos 7에서 테스트되었습니다.

[root@187dddae557b httpd]# ls
apr-1.4.8-7.el7.x86_64.rpm                   httpd-2.4.6-97.el7.centos.5.x86_64.rpm
apr-util-1.5.2-6.el7.x86_64.rpm              httpd-tools-2.4.6-97.el7.centos.5.x86_64.rpm
centos-logos-70.0.6-3.el7.centos.noarch.rpm  mailcap-2.1.41-2.el7.noarch.rpm

답변2

  1. 그러한 경우 해당 호스트가 액세스할 수 있는 로컬 저장소를 생성하는 것이 훨씬 쉬울 것입니다.
  2. dnf누락된 것뿐만 아니라 모든 종속성을 표시하므로 더 큰 목록을 제공하십시오.
  3. 이 방법을 사용하려면 dnf필요한 패키지를 다운로드하여 설치하면 됩니다.
  4. rpm예를 들어 종속 패키지가 표시되면 다운로드 apr15하여 전송하고 설치한 후 기본 패키지를 다시 설치해 보세요. 파일 이름만 표시되면 yum provides /etc/mime.types패키지 이름을 얻으려고 시도할 수 있습니다.

관련 정보