Crear repositorios locales
Si usted ha descargado, creado o reconstruido paquetes RPM localmente (como se explica en es/TipsAndTricks/YumAndRPM ) usted puede necesitar un lugar para ponerlos de forma tal que estos sean accesibles desde todas las computadoras de su red local.
Este procedimiento explicará cómo configurar un recurso compartido NFS que contiene un repositorio local de paquetes construidos/reconstruidos/descargados y cómo acceder a ellos de una manera uniforme desde otros sistemas con la misma versión de la distribución. Uno puede seguir un procedimiento similar para habilitar espejos locales del sistema operativo, sus actualizaciones, etc. Esto nos permite evitar la descarga de los paquetes relacionados desde los servidores espejos y controlar, hasta que hayan sido probadas, la disponibilidad de las actualizaciones para las computadoras locales.
El ejemplo cubrirá la arquitectura i386 para CentOS4. Para otras arquitecturas y versiones, podemos seguir algo similar. Además, es posible usar otros medios de suministrar acceso al repositorio, tal como los servidores httpd y/o ftp.
Convenciones en la sección de línea de comando:
# significa ejecutar como root.
$ significa ejecutar como un usuario, por ejemplo builduser.
Pasos a seguir:
Contents
- Cear una estructura de directorio en el servidor, digamos que server1.
- Si createrepo no está instalado, y no lo está por defecto, instálelo
- Construir un conjunto de paquetes nuevos desde `foo-1.2.3.4-1.el4.src.rpm`.
- Mover los ficheros a el repositorio y construya los metadatos.
- Crear `/etc/yum.repos.d/local.repo`.
- Instalar paquetes en el servidor para probar el repositorio.
- Exportar el directorio vía NFS – si es que ya no está en un directorio compartido.
- Entrar a la computadora del cliente (ej, client1) como root y configure el punto de montaje NFS y la configuración de yum.
- Comprobar la configuración – debería ser capaz de ver el repositorio.
- Instalar paquetes en el cliente.
1. Cear una estructura de directorio en el servidor, digamos que server1.
[root@server1 ~]# mkdir -p /share/CentOS/4/local/i386/RPMS
2. Si createrepo no está instalado, y no lo está por defecto, instálelo
[root@server1 ~]# yum install createrepo
3. Construir un conjunto de paquetes nuevos desde `foo-1.2.3.4-1.el4.src.rpm`.
|
NOTA: Alternativamente puede obtener paquetes desde otros fuentes confiables. |
[builduser@server1 ~]$ rpmbuild --rebuild /path/to/srpm/foo-1.2.3.4-1.el4.src.rpm
Esto crea (por ejemplo):
/home/builduser/rpmbuild/RPMS/foo-1.2.3.4-1.el4.i386.rpm /home/builduser/rpmbuild/RPMS/foo-devel-1.2.3.4-1.el4.i386.rpm /home/builduser/rpmbuild/RPMS/foo-docs-1.2.3.4-1.el4.i386.rpm
4. Mover los ficheros a el repositorio y construya los metadatos.
[root@server1 ~]# mv /home/builduser/rpmbuild/RPMS/foo* /share/CentOS/4/local/i386/RPMS [root@server1 ~]# chown -R root.root /share/CentOS/4/local [root@server1 ~]# createrepo /share/CentOS/4/local/i386 [root@server1 ~]# chmod -R o-w+r /share/CentOS/4/local
|
NOTA: Los pasos 3 y 4 son independientes para cada uno de los paquetes adicionados al repositorio. |
5. Crear `/etc/yum.repos.d/local.repo`.
|
NOTA: El ejemplo asume que el plugin yum-plugin-protectbase está instalado y que su repositorio está habilitado por defecto, de forma protegida, y es permitido reemplazar los paquetes principales. Además asume que sus paquetes no están firmados con GPG. |
[local] name=CentOS-$releasever - local packages for $basearch baseurl=file:///raid/RH/CentOS/$releasever/local/$basearch enabled=1 gpgcheck=0 protect=1
Para repositorios vía HTTP o FTP la línea de baseurl debe ser modificada según corresponda.
6. Instalar paquetes en el servidor para probar el repositorio.
|
NOTA: Estos paquetes pueden ser eliminados más tarde si no son necesarios en el servidor. |
[root@server1 ~]# yum install foo foo-devel foo-docs
7. Exportar el directorio vía NFS – si es que ya no está en un directorio compartido.
|
NOTA: Puede que necesite instalar e iniciar NFS, y/o reiniciarlo si usted no lo ha estado usando. |
Cambie la dirección IP para ajustarse a su red local. Use "rw" en lugar de "ro" si usted desea que el recurso compartido tenga permisos de escritura para algunos clientes privilegiados.
[root@server1 ~]# echo "/share 192.168.1.0/24(ro,async)' >>/etc/exports [root@server1 ~]# exportfs -r
8. Entrar a la computadora del cliente (ej, client1) como root y configure el punto de montaje NFS y la configuración de yum.
|
NOTA: Para que este ejemplo funcione como se muestra, el paquete autofs es necesario (yum install autofs). Una alternativa sería crear /share y montar NFS en /etc/fstab. El ejemplo asume que usted tiene ssh/scp trabajando para root. Usted necesitará un DNS que trabaje con los nombres de las computadoras locales o configurar /etc/hosts con las direcciones IP y nombres de sus computadoras. |
[root@client1 ~]# scp server1:/etc/yum.repos.d/local.repo /etc/yum.repos.d/ [root@client1 ~]# ln -s /net/server1/share /share
9. Comprobar la configuración – debería ser capaz de ver el repositorio.
[root@client1 ~]# ls /share/CentOS/4/local
10. Instalar paquetes en el cliente.
[root@client1 ~]# yum install foo foo-devel foo-docs
Repita los tres últimos pasos para los clientes adicionales que lo necesiten.