Instalar un paquete RPM en un servidor sin acceso a Internet

Instalar un paquete RPM en un servidor sin acceso a Internet

Tengo un servidor CentOS mínimo sin acceso a Internet. llamémosloservidor A.

Mi objetivo es crear un archivo de script de shell para instalar una versión específica de un archivo RPM local para una aplicación. Digamos que la aplicación de destino es Apache. El problema es que cada RPM tiene dependencias.

En un servidor diferente donde hay acceso a internet, al que yo llamoservidor B, descargo el paquete:

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

Luego muévalo al servidor A e intente instalarlo:

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

Captura de pantalla de dependencia de instalación de yum:
captura de pantalla de dependencia de instalación de yum

Tiene varios requisitos:

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

buscar captura de pantalla de dependencias:
buscar captura de pantalla de dependencias

No puedo entender algunos de los requisitos:

1- ¿Qué es /etc/mime.types? No tengo ese archivo. ¿De dónde puedo conseguirlo?

2- Algunos paquetes se mencionan varias veces, como

systemd-utils
systemd-utils
systemd-utils

¿Qué significa?

3- Algunos paquetes tienen múltiples variaciones. ¿Cuál de ellos debería instalar? libc.so

4- Parece que la lista está ordenada alfabéticamente. ¿Cuál es el orden de instalación?

5- El dnf repoquerycomando también proporciona una lista diferente. ¿Cuál debo seguir?

Captura de pantalla de repositorio dnf:
captura de pantalla de repositorio dnf

6- ¿No existe una forma más automática de realizar lo que busco?

Respuesta1

# 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.

probado en centos 7 dentro de la ventana acoplable:

[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

Respuesta2

  1. en tal caso será mucho más fácil crear un repositorio local, accesible para el host en cuestión.
  2. dnfproporcione una lista más grande porque muestra TODAS las dependencias, no solo las que faltan.
  3. Si desea utilizar este método, simplemente descárguelo con dnflos paquetes necesarios e instálelos.
  4. Verá rpmel paquete dependiente, por ejemplo apr15, descárguelo, transfiéralo, instálelo e intente nuevamente instalar el paquete principal. Cuando vea solo el nombre del archivo, puede intentar yum provides /etc/mime.typesobtener el nombre del paquete.

información relacionada