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

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í:

[root@centostst1 CentOS 7 x86_64]# cd /CentOS_7.4.1708/
[root@centostst1 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
[root@centostst1 CentOS_7.4.1708]#

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

[root@centostst1 ~]# 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
[root@centostst1 ~]#

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

[root@centostst1 ~]# 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
[root@centostst1 ~]#

Comprobamos que el repositorio ya aparece:

[root@centostst1 ~]# yum repolist
Loaded plugins: fastestmirror, langpacks
DVD_CentOS_7.4.1708 | 3.6 kB 00:00:00
[root@centostst1 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
[root@centostst1 yum.repos.d]#

E instalamos un paquete RPM:

[root@centostst1 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!
[root@centostst1 yum.repos.d]#

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

Aprende a instalar paquetes RPM de diferentes maneras

COMPÁRTEME

Deja un comentario