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 |
|
[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 |
|
5. Crear `/etc/yum.repos.d/local.repo`.
|
Atención |
|
[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 |
|
[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 |
|
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 |
|
[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.
