Установка RPM-пакета на сервер без доступа к интернету

Установка RPM-пакета на сервер без доступа к интернету

У меня есть минимальный сервер CentOS без доступа к интернету. Назовем егосервер А.

Моя цель — создать файл скрипта оболочки для установки определенной версии локального файла RPM для приложения. Допустим, целевое приложение — Apache. Проблема в том, что у каждого RPM есть зависимости.

На другом сервере, где есть доступ к интернету, я его называюсервер Б, я скачиваю пакет:

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

Скриншот зависимости установки yum:
снимок экрана зависимости установки yum

К нему предъявляется несколько требований:

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.

протестировано на CentOS 7 внутри Docker:

[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чтобы получить имя пакета.

Связанный контент