
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:
Tiene varios requisitos:
rpm -qpR httpd-2.4.35-5.el7.x86_64.rpm
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 repoquery
comando también proporciona una lista diferente. ¿Cuál debo seguir?
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
- en tal caso será mucho más fácil crear un repositorio local, accesible para el host en cuestión.
dnf
proporcione una lista más grande porque muestra TODAS las dependencias, no solo las que faltan.- Si desea utilizar este método, simplemente descárguelo con
dnf
los paquetes necesarios e instálelos. - Verá
rpm
el paquete dependiente, por ejemploapr15
, descárguelo, transfiéralo, instálelo e intente nuevamente instalar el paquete principal. Cuando vea solo el nombre del archivo, puede intentaryum provides /etc/mime.types
obtener el nombre del paquete.