Usando los repositorios de CentOS en máquinas con RHEL
Autor: MatthewHyclak
CentOS adiciona valor a la reconstrucción de RHEL mediante varios repositorios, tales como CentOS-Plus y Extras. Además, existen Repositorios de terceros que son de utilidad a los sistemas RHEL ( ej. RPMForge y el de los Extras de Fedora reconstruidos por Karanbir Singh). El problema es que up2date no maneja muy bien los repositorios de yum. Con la transición a yum de RHEL5, ahora las personas puede administrar sus sistemas RHEL con yum.
Para usar los repositorios de CentOS en RHEL necesita:
- Instalar yum en RHEL. Nosotros utilizaremos el paquete yum de CentOS y haremos los ajustes necesarios para que trabaje en RHEL.
- Permitirle a yum acceder a los repositorios de RHEL. Debido a que Red Had no publica sus repositorios, un espejo tendrá que ser creado. Para los objetivos de este documento utilizaremos la herramienta mrepo de Dag Wieers.
Especificar repositorios adicionales. Los repositorios son administrados generalmente en el directorio /etc/yum.repos.d a través de los ficheros .repo.
1. Preparando Yum
Los siguientes RPMs de CentOS 4, disponibles en http://mirror.centos.org/centos/, serán necesarios.
|
IMPORTANTE: La versión de yum en CentOS 3 no tiene todas las dependencias que tiene en CentOS 4, de esta forma puede ignorar cualquier dependencia en esta lista que no exista en CentOS 3. |
yum
sqlite
python-sqlite
python-elementtree
python-urlgrabber
Para poder instalar estos paquetes, debe estar instalado un paquete que suministre "yumconf". En CentOS, este es suministrado por el RPM centos-release. Este RPM no lo podemos utilizar en RHEL, debido a que sobrescribirá /etc/redhat-release, entre otras cosas. Para trabajar en ello, cree un RPM nuevo que contenga los ficheros apropiados. El rpm suministrado más abajo hace justamente eso. El fichero spec para este RPM (redhat-yumconf-4-4.7.el4.nosrc.rpm) contiene:
Summary: RHEL-4 Yum configuration. Name: redhat-yumconf Version: 4 Release: 4.7.el4 Copyright: GPL Group: System Environment/Base Source0: CentOS-Base.repo Source1: RHEL-Base.repo NoSource: 1 BuildArch: noarch BuildRoot: %{_tmppath}/redhat-yumconf-root Provides: yumconf Conflicts: centos-release %description Repo files for yum on RHEL 4 %install mkdir -p $RPM_BUILD_ROOT/etc mkdir -p $RPM_BUILD_ROOT/etc/yum.repos.d cp -f %{SOURCE0} $RPM_BUILD_ROOT/etc/yum.repos.d cp -f %{SOURCE1} $RPM_BUILD_ROOT/etc/yum.repos.d %clean rm -rf $RPM_BUILD_ROOT %files %defattr(0644,root,root) %config(noreplace) /etc/yum.repos.d/CentOS-Base.repo %config(noreplace) /etc/yum.repos.d/RHEL-Base.repo
Usted notará que el fichero RHEL-Base.repo está listado como un fichero NoSource. Como usted debe crear su propio repositorio, no existe forma de saber en cual servidor este repositorio estará, etc. Es recomendable que usted use el fichero CentOS-Base.repo como una plantilla y cree un fichero RHEL-Base.repo que se adapte a su entorno. Una vez que esté en su lugar, ponga este fichero en el directorio SOURCES de su camino de construcción rpm y reconstruya el SRPM redhat-yumconf-4-4.7.el4.nosrc.rpm.
|
Truco: Si no está seguro donde terminará el repositorio, usted debe crear un fichero vacío por ahora y modificarlo después de que haya creado su espejo. |
Una vez que el RPM esté creado e instalado, los RPMs necesarios de yum y sus dependencias pueden ser instalados. El script de más abajo (yum-bootstrap.sh) ayudará a comenzar este proceso.
# Check that the prerequisite of yumconf is installed rpm -q --whatprovides yumconf 2>&1 >/dev/null if [ $? != 0 ]; then echo "You must have a package installed that provides yumconf." echo "See http://wiki.centos.org/HowTos/PackageManagement/YumOnRHEL" echo "for more details on how to accomplish this." exit 1; fi export ARCH=`uname -i` export BSDIR=/tmp/yum-bootstrap export SOURCE=http://mirror.centos.org/centos/4/os/$ARCH/CentOS/RPMS mkdir $BSDIR wget -P $BSDIR -nH $SOURCE/yum-2.4.3-1.noarch.rpm wget -P $BSDIR -nH $SOURCE/python-urlgrabber-2.9.8-2.noarch.rpm wget -P $BSDIR -nH $SOURCE/python-elementtree-1.2.6-4.2.1.$ARCH.rpm wget -P $BSDIR -nH $SOURCE/python-sqlite-1.1.7-1.2.$ARCH.rpm wget -P $BSDIR -nH $SOURCE/sqlite-3.3.3-1.2.$ARCH.rpm rpm -Uvh $BSDIR/yum* $BSDIR/python* $BSDIR/sqlite* if [ $? -eq 0 ]; then rm -rf $BSDIR fi # Fix the release package, otherwise $releasever is set to null sed -i "s/centos-release/redhat-release/" /etc/yum.conf
2. Creando un espejo de RHEL
Como se mencionó más arriba, para usar yum directamente es necesario construir un espejo para los RPMs binarios de RHEL. Comience por instalar mrepo. La forma más fácil de hacer esto es adicionar el repositorio RPMForge (vea Repositorios). Desde RPMForge, instale mrepo, createrepo y hardlink++.
- Crear el directorio donde le gustaría almacenar el espejo.
mkdir /var/mrepo/rhel4as-x86_64
Copiar el fichero systemid desde /etc/sysconfig/rhn a su nuevo directorio.
cp /etc/sysconfig/rhn/systemid /var/mrepo/rhel4as-x86_64
Modificar el fichero /etc/mrepo.conf incluido para adaptarlo a su entorno. Configure los directorios apropiados, arch y mailto. Usted puede dejar comentada la línea rhnlogin, esto es solo necesario cuando se suscribe a canales. Debido a esto un systemid se ha comenzado a utilizar, este no parece necesitar la contraseña pero le preguntará por una en los casos que sea necesario (ej. usted configura un canal al cual no está suscrito.)
Lo siguiente, es crear un fichero en /etc/mrepo.conf.d para su distribución. El ejemplo que se muestra debajo es para RHEL4 con Extras y Fastrack. Para otros caminos de canales consulte el sitio web de RHN. La página de detalles para cada canal tiene un campo etiqueta (después del Sumario y la Descripción). Esto es lo que usted pone después de rhns:///.
- Ahora construya el repositorio con mrepo. Para ello ejecute el comando:
mrepo -uv rhel4as-x86_64.
/etc/mrepo.conf.d/rhel4as-x86_64.conf:
[rhel4as-x86_64] name = Red Hat Advanced Server $release ($arch) release = 4 arch = x86_64 updates = rhns:///rhel-x86_64-as-4 extras = rhns:///rhel-x86_64-as-4-extras fastrack = rhns:///rhel-x86_64-as-4-fastrack
Es recomendable crear un trabajo de cron que corra mrepo -gu rhel4as-x86_64 para mantener el repositorio actualizado a medida que las actualizaciones son liberadas. Esto es usualmente una vez por semana para RHEL, pero probablemente sea un buen ciclo poner un trabajo corriendo todas las noches, especialmente si hay actualizaciones del repositorio Fastrack o hechos relacionados a la seguridad disponibles.
|
NOTA: mrepo tiene muchos más usos que simplemente descargar actualizaciones desde RHN. Vea el sitio web de mrepo para más opciones de configuración. |
|
IMPORTANTE: Si está corriendo una máquina que no tiene RHEL (ej. CentOS), para ejecutar mrepo existen algunos aspectos que debe conocer antes: |
3. Configurando repositorios
En estos momentos, yum debe estar instalado. Para adicionar repositorios adicionales simplemente adicione ficheros .repo a el directorio /etc/yum.repos.d. Puede encontrar más información en como hacer esto en la página es/HowTos/Repositories Repositorios. Algunos asuntos a tener en cuenta antes de comenzar, al menos en RHEL4, es que la mayoría de los repositorios de terceros usan /4/ como la versión de entrega (releasever), sin embargo RHEL usa /4XX/ como versión de entrega, donde XX es WS, ES o AS - en dependencia del tipo de entrega. La forma más fácil de arreglar esto es remplazando todas las referencias de $releasever en los ficheros .repo con 4.
|
IMPORTANTE: Usando el RPM redhat-yumconf que mostramos arriba, los repositorios base y update de CentOS están habilitados pero restringidos para yum y las dependencias. |