Instalar yum en un servidor virtual
Contents
1. No tengo yum en mi instalación de CentOS
De no ser así, eso no es CentOS. Si usted tiene una instalación de CentOS y el yum ha desaparecido, usted no tiene una instalación real de CentOS, pues no es realmente posible instalar CentOS sin instalar yum.
Varios proveedores virtuales (VPS) y algunas derivaciones de CentOS (como: OpenVZ, BlueQuartz, Asterisk, Trixbox) parecen instalar partes de CentOS en sus servidores virtuales y algunos eliminan yum de sus instalaciones. Por qué lo hacen no está del todo claro. Talvez ellos intentan dificultarle la sobrescritura del núcleo. Esto es considerado enfermizo, pues yum tiene mecanismos para proteger paquetes específicos ante posibles cambios. Talvez ellos no han leído sobre la opción 'exclude' en la página man de yum o talvez ellos desean evitar las llamadas de mantención y están deseando vender un sistema que no puede ser actualizado fácilmente En la segunda variante, cuando una máquina es comprometida con algún hueco de seguridad que ellos evitaron parchear, ellos pueden cobrarle por una instalación completa o una restauración desde los respaldos.
|
IMPORTANTE: Antes que intente cualquier cosa: Por favor, pregúntele a su VPS por qué eliminó yum y cómo pretende que usted mantenga su sistema actualizado sin yum. Lo siguiente puede dañar su sistema si existen otros paquetes para el núcleo que tiene que estar protegido. |
2. ¿ Estás diciendo que fui engañado y que me llevan por el camino equivocado ?
Si, una verdadera instalación de CentOS tiene un núcleo (kernel) de CentOS, el paquete centos-release de CentOS, el paquete yum de CentOS y ninguna modificación o adición a los contenidos de /etc/yum.repos.d/. Todas las dependencias serán resueltas y excepto para los ficheros de configuración (vea man rpm) un
$ sudo rpm -Va
correrá silenciosamente excepto para los cambios de los ficheros de configuración esperados.
Además, un verdadero sistema CentOS puede ser actualizado libremente en cualquier momento. Nosotros adicionamos este requisito como ajustes de seguridad y echo asincrónicamente. Un indicio de que puede existir un problema es que el estante de hospedaje del vendedor ofrece CentOS 4.X (donde X es un dígito), en vez de CentOS 4 y así en lo adelante. El equipo de CentOS (y de echo el estabilizador de la distribución mayor) no permite 'retener' a uno no actual, anterior al 'punto' de versión y aún representar el producto como un artículo 'genuino'.
Una prueba rápida que nos permite ver si yum está suministrando respuestas esperadas es esta:
$ sudo yum grouplist \*
la cual retornará una lista completa de los grupos de paquetes disponibles en CentOS 4 y CentOS 5.
Miembros del canal IRC #centos en irc.freenode.net a menudo le preguntarán realizar esa prueba o un par de otras pruebas con:
$ rpm -V yum
y
$ uname -a
para ayudar rápidamente a diagnosticar estas cosas. Cuando está claro que no existe una instalación de CentOS en juego, los miembros conocidos del canal regular IRC no continuarán ofreciendo más advertencia. Ellos no desean sugerir un curso que pueda destruir potencialmente su sistema más adelante; ellos no pueden y no conocen todas las formas que los estantes de hospedaje de los proveedores puedan haber alterado las funciones que un verdadero entorno CentOS suministra en cuanlquier momento.
|
TRUCO: Si usted fue engañado, le pedimos que busque la forma que ellos remienden su forma de actuar. Usted podría pedir a su proveedor que: |
3. Recuperar solamente el repositorio yum de CentOS original
|
IMPORTANTE: Algunos administradores de sistema encuentran que ellos tienen cambios auto-infligidos en los ficheros de configuración de yum, tales como adicionar, habilitar o editar las configuraciones de yum para permitir usar repositorios que no son de CentOS. Esta sección describe una forma de recuperación. |
La versión 'original' de los ficheros necesarios están almacenadas en el paquete centos-release. Una solución es usar una copia obtenida de ese paquete y restaurar solo aquellos ficheros en el directorio /etc/yum.repos.d/. Obviamente /etc/yum.conf y otros ficheros pueden tener necesidad de ser alterados también, para lo cual una recuperación similar es aplicable.
En nuestro ejemplo asumimos una entrega CentOS 4 y recuperar el rpm centos-release apropiado dentro de /tmp/ con wget:
$ # ... as an end user $ cd /tmp $ mkdir unpack $ wget http://mirror.centos.org/centos-4/4.5/os/i386/CentOS/RPMS/centos-release-4-4.3.i386.rpm $ mkdir -p /tmp/unpack/var/lock/rpm/ $ # this is a very unusual case (an 'out of tree' RPM --root), where it is $ # NOT improper to use --nodeps $ sudo rpm -Uvh --root --nodeps centos-release*rpm $ # ... become root $ su - # cd /etc/yum.repos.d/ # mkdir attic # mv * attic/ # cp /tmp/unpack/etc/yum.repos.d/*
y usted tendrá nuevamente la configuración original para el repositorio yum de CentOS. Como terminamos de desempaquetar la configuración 'fuera de la estructura de árbol', podemos hacer: rm -rf /tmp/unpack para limpiarlo nosotros mismos.
4. Instalando yum
Usted necesita los paquetes siguientes para obtener un yum funcional - de los cuales todos pueden ser descargados desde los espejos de CentOS:
- centos-release
Usted debería tener este paquete instalado Puede comprobarlo con:
rpm -q centos-release centos-release-4-4.3.i386
Si esto ya está en su sistema, por favor compruebe que la configuración de yum no haya sido movida y que esté disponible en su sistema:
ls -l /etc/yum.repos.d/
Este es el directorio que debería contener los ficheros CentOS-Base.repo y CentOS-Media.repo. Si ellos no están ahí, usted tendrá que reinstalar el paquete centos-release:
rpm -uvH --replacekgs centos-release.*.rpm
Si el paquete centos-release no está instalado en su computadora, usted puede quitar --replacepkgs del comando de arriba.
Entonces usted necesita los paquetes siguientes:
CentOS-4
(disponibles en donde obtuvo el paquete centos-release):
- yum
- sqlite
- python-sqlite
- python-elementtree
- python-urlgrabber
CentOS-5
(disponibles en donde obtuvo el paquete centos-release):
- m2crypto
- python-elementtree
- python-sqlite
- python-urlgrabber
- rpm-python
- yum
Descárguelos dentro en un directorio separado e instálelos con:
rpm -uvH *.rpm
desde ese directorio.
5. Asegurándose que su núcleo no sea sobrescrito
Ahora tenemos que asegurarnos que su núcleo no sea sobrescrito por un núcleo de CentOS, debido a que usted necesita un núcleo construido especialmente en el VPS.
Abra /etc/yum.conf con su editor favorito y adicione la siguiente línea al final de la sección [main]:
exclude=kernel*
Esto evitará que yum instale los paquetes que comiencen con kernel y de esta forma el núcleo de su vps está a salvo de ser sobrescrito.