Creación de un repositorio local de RPMs en CentOS 7

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email

A veces tenemos servidores aislados en una red que no pueden conectarse a un repositorio externo y necesitamos crear un repositorio local para poder instalar software. De hecho, es una de las tareas que suelo hacer cuando instalo un Linux por primera vez.

A continuación, crearé el repositorio del DVD original de CentOS 7, localmente en el servidor.

En primer lugar, copio todo el contenido del DVD original a un directorio local.

Como sabes, podemos montar imagenes ISO con el comando mount -o loop fichero.iso /punto_de_montaje, así que para copiar el contenido de la ISO, tienes dos opciones:

  • Montar el DVD y copiar el contenido.
  • Montar la ISO y copiar

En mi caso, lo he copiado aquí:

[[email protected] CentOS 7 x86_64]# cd /CentOS_7.4.1708/
[[email protected] CentOS_7.4.1708]# ll
total 304
-rw-rw-r-- 1 david david 14 Sep 5 2017 CentOS_BuildTag
drwxr-xr-x 3 david david 33 Sep 5 2017 EFI
-rw-rw-r-- 1 david david 227 Aug 30 2017 EULA
-rw-rw-r-- 1 david david 18009 Dec 9 2015 GPL
drwxr-xr-x 3 david david 54 Sep 5 2017 images
drwxr-xr-x 2 david david 4096 Sep 5 2017 isolinux
drwxr-xr-x 2 david david 41 Sep 5 2017 LiveOS
drwxrwxr-x 2 david david 208896 Sep 5 2017 Packages
drwxr-xr-x 2 david david 4096 Sep 5 2017 repodata
-rw-rw-r-- 1 david david 1690 Dec 9 2015 RPM-GPG-KEY-CentOS-7
-rw-rw-r-- 1 david david 1690 Dec 9 2015 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r-- 1 david david 2883 Sep 6 2017 TRANS.TBL
[[email protected] CentOS_7.4.1708]#

El siguiente paso, es crear el repositorio, sin más preámbulos:

[[email protected] ~]# createrepo -g /CentOS_7.4.1708/repodata/repomd.xml /CentOS_7.4.1708/Packages/
Spawning worker 0 with 1947 pkgs
Spawning worker 1 with 1947 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[[email protected] ~]#

Y añadimos la configuración correspondiente del repositorio:

[[email protected] ~]# cat /etc/yum.repos.d/dvd.repo 
[DVD_CentOS_7.4.1708]
name=DVD CentOS 7.4.1708
baseurl=file:///CentOS_7.4.1708
enabled=1
gpgcheck=0
[[email protected] ~]#

Comprobamos que el repositorio ya aparece:

[[email protected] ~]# yum repolist
Loaded plugins: fastestmirror, langpacks
DVD_CentOS_7.4.1708 | 3.6 kB 00:00:00
[[email protected] yum.repos.d]# yum repolist all
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
repo id repo name status
DVD_CentOS_7.4.1708 DVD CentOS 7.4.1708 enabled: 3,894
repolist: 3,894
[[email protected] yum.repos.d]#

E instalamos un paquete RPM:

[[email protected] yum.repos.d]# yum install -y xorg-x11-apps
Loaded plugins: fastestmirror, langpacks
DVD_CentOS_7.4.1708 | 3.6 kB 00:00:00 
DVD_CentOS_7.4.1708/group_gz | 156 kB 00:00:00 
Determining fastest mirrors
Resolving Dependencies
--> Running transaction check
---> Package xorg-x11-apps.x86_64 0:7.7-7.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=======================================================================================
 Package Arch Version Repository Size
=======================================================================================
Installing:
 xorg-x11-apps x86_64 7.7-7.el7 DVD_CentOS_7.4.1708 307 k
Transaction Summary
=======================================================================================
Install 1 Package
Total download size: 307 k
Installed size: 772 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
 Installing : xorg-x11-apps-7.7-7.el7.x86_64 1/1 
 Verifying : xorg-x11-apps-7.7-7.el7.x86_64 1/1
Installed:
 xorg-x11-apps.x86_64 0:7.7-7.el7
Complete!
[[email protected] yum.repos.d]#

Este procedimiento también lo he probado en RedHat 6 y 7.

Comandos de RPM más utilizados

  • rpm -i paquete.rpm: Instala un paquete
  • rpm -e paquete: Desinstala un paquete
  • rpm -Uvh paquete.rpm: Actualiza un paquete
  • rpm -qa |grep paquete: Buscamos si el paquete está instalado
  • rpm -qi paquete: Muestra información sobre el paquete
  • rpm -ql paquete: Nos da los ficheros que ha instalado el paquete
  • rpm -qc paquete: Conocemos, únicamente, los ficheos de configuración del paquete

¿Te ha gustado? Compártelo

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email
About Author

Contenido Relacionado

Artículos Recientes

Deja un comentario