ACTUALIZACIÓN DE SOFTWARE |
4.7 Actualizando e Instalando Nuevo Software
Otra tarea del administrador de sistemas es la actualización e instalación de nuevo software.
La comunidad Linux es muy dinámica. Las versiones nuevas del núcleo aparecen cada pocas semanas, y otros programas
se actualizan casi tan a menudo. Por esto, los nuevos usuarios de Linux sienten a menudo la necesidad de actualizar
sus sistemas constantemente para mantener el paso de los cambios. No sólo esto no es necesario, sino que es una
perdida de tiempo. Para mantenerse al día de todos los cambios del mundo Linux, debería utilizar todo su tiempo
actualizando en vez de usando su sistema.
Pero entonces, ¿cuando se debe actualizar?. Alguna gente piensa que se debe actualizar cuando se libera una
nueva versión de distribución. Muchos usuarios Linux reinstalan completamente sus sistemas con la nueva versión
de una distribución (con un kernel más avanzado), cada vez. Esto, también, es una perdida de tiempo. En general,
los cambios de las versiones de cada distribución son pequeños. Bajarse y reinstalar 3 discos cuando solo ha
cambiado un 10% del software es, por supuesto, inútil.
La mejor forma de actualizar su sistema es haciéndolo a mano: actualizando sólo aquellos paquetes de software
que sepa que hay que actualizar. Esto asusta a un montón de gente: quieren saber que actualizar y como, y que se
romperá si no actualizan.
Para tener éxito con Linux, es importante superar los temores del "hágalo usted mismo" que es lo que Linux es,
a fin de cuentas.
De hecho, una vez que tenga su sistema trabajando y todo el software correctamente configurado,
la reinstalación de una nueva versión no dudará en limpiar toda la configuración y todo estará roto otra vez,
igual que la primera vez que instaló su sistema. Volver atrás de esta forma no es necesario todo lo que se necesita
es algún conocimiento acerca de como actualizar el sistema y de cómo hacerlo bien.
Se encontrará con que cuando actualice un componente de su sistema, no tienen por que fallar los demás.
Realmente, la actualización insensata para "mantenerse en la ola" no es tan importante. Esto no es MS-DOS o
Microsoft Windows. No hay ninguna razón importante para ejecutar la versión más reciente de todo el software. Si
encuentra que desea o necesita funciones de una versión nueva, entonces actualice. Si no, no lo haga.
En otras palabras, actualice solo lo que tenga que hacerlo y cuando tenga que hacerlo. No actualice sólo por el mero
hecho de actualizar. Hacerlo sólo gastaría un montón de tiempo y esfuerzo intentando mantenerse al día.
El software más importante para actualizar en su sistema es el núcleo, las librerias y el compilador gcc. Estas son
las tres partes esenciales de su sistema, y en algunos casos cada uno depende de las otras para que todo funcione bien.
La mayor parte del resto del software de su sistema no necesita ser actualizado periódicamente.
Actualizar el núcleo es simplemente asunto de coger los fuentes y compilarlos uno mismo. Debe compilar el núcleo por
si mismo para poder activar o desactivar ciertas funciones, o para configurar su máquina para ajustarla
a determinados elementos Hardware. El proceso es casi indoloro.
Los fuentes del núcleo pueden obtenerse de cualquiera de los servidores FTP de Linux. En sunsite.unc.edu, por ejemplo,
los fuentes del núcleo se encuentran en /pub/Linux/kernel. Las versiones del núcleo se numeran utilizando un número
de versión y un nivel de "parche". Por ejemplo, la versión de nucleo 2.2, nivel de parche 4 es nombrada como 2.2.pl4,
o simplemente 2.2.4
Los fuentes del núcleo se presentan en un fichero tar comprimido con gzip. Por ejemplo, el fichero conteniendo
los fuentes del nucleo 2.2.4 es linux-2.2.4.tar.gz.
Se desempaqueta este fichero tar desde el directorio /usr/src ;esto crea el directorio /usr/src/Linux que
contiene los fuentes del núcleo. Se debe borrar o cambiar de nombre el directorio /usr/src/Linux existente antes de
desempaquetar la nueva versión.
Una vez que se han desempaquetado los fuentes, llega el proceso de compilación del nuevo núcleo. Hay que advertir,
que para poder compilar el núcleo, se debe tener gcc y g++, compiladores C y C++, instalados en el sistema.
Puede necesitar tener la versión más reciente de estos compiladores.
Para compilar el núcleo os voy a presentar un caso real. En mi ordenador tengo la versión del kernel
2.4.20-2 (versión 2 de compilación del núcleo 2.4.20). Voy a volver a compilar este núcleo generando una tercera versión
del mismo, la 2.4.20-3
Para obtener información del núcleo actualmente en funcionamiento podemos usar el comando uname :
# uname -a |
vmlinuz-2.4.20-2 que es el núcleo actual System.map-2.4.20-2 que es la tabla de símbolos del sistema. config-2.4.20-2 que es un fichero con infomación sobre la configuración del núcleo. |
# cd /usr/src |
# gunzip linux-2.4.20.tar.gz # tar xvf linux-2.4.20.tar |
/usr/src/kernel-source-2.4.20 |
# make menuconfig # make clean # make dep #reconstruye dependencias # make bzImage # compila el nuevo núcleo # make modules #compila módulos del núcleo # make modules_install |
# cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.20-3 # cp System.map /boot/System.map-2.4.20-3 # cp .config /boot/config-2.4.20-3 # cd /boot # rm System.map # ln -s System.map-2.4.20-3 System.map # rm /vmlinuz #ln -s /boot/vmlinuz-2.4.20-3 /vmlinuz |
# cd /lib/modules/versiónDELnúcleo #insmod <modulo>.o |
4.7.2 Actualizando las librerias
Como se mencionó antes, la mayor parte del software del sistema está compilado para que utilice las librerias
compartidas, que contienen sub-rutinas comunes compartidas entre distintos programas. Si le aparece el mensaje
Incompatible Library version
cuando se intenta ejecutar un programa, entonces necesita actualizar a la versión de las librerias que el programa
requiere. Las librerias son compatible-ascendentes; esto es, un programa compilado para utilizar una versión antigua de
las librerias, debe trabajar con la nueva versión de las librerias instalada. Sin embargo, lo contrario no es cierto.
La ultima versión de las librerias se puede encontrar en los servidores FTP de Linux. En sunsite.unc.edu, están
disponibles en /pub/Linux/GCC. Los ficheros de "version" que se encuentran ahí deben explicar que ficheros se necesita
obtener y como instalarlos.
Rápidamente, se deben coger los ficheros image-version.tar.gz y inc-version.tar.gz donde versiÓn es la version de las
librerias a instalar, por ejemplo 4.4.1. Son ficheros tar comprimidos con gzip; el fichero image contiene las imagenes
de las librerias a instalar en /lib y /usr/lib. El fichero inc contiene los ficheros de inclusión a instalar en
/usr/include.
El fichero release-version.tar.gz debe explicar el método de instalación detalladamente (las instrucciones exactas
varían para cada version). En general, se necesita instalar los ficheros de librerias .a y .sa en /usr/lib. Estas son
las librerias utilizadas en tiempo de compilación.
Además, los ficheros imagen de las librerias compartidas libc.so.version se instalan en /lib. Estas son las imagenes
de las librerias compartidas que son cargadas en tiempo de ejecución por los programas que utilizan las librerias.
Cada librería tiene un enlace simbólico utilizando el numero de version mayor de la librería en /lib .Por ejemplo,
la versión 4.4.1 de la librería libc tiene un numero de version mayor de 4. El fichero que contiene la librería es
libc.so.4.4.1. Existe un enlace simbólico del nombre libc.so.4 en /lib apuntando a este fichero.
Por ejemplo, cuando se actualiza de libc.so.4.4 a libc.so.4.4.1, necesita cambiar el enlace simbólico para apuntar
a la nueva version.
* Es muy importante que se cambie el enlace simbólico en un solo paso, como se indica mas abajo.
Si de alguna forma borrase el enlace simbólico libc.so.4, los programas que dependen del enlace
(incluyendo utilidades básicas como ls y cat) dejarán de funcionar. Utilice el siguiente comando para actualizar
el enlace simbólico libc.so.4 para que apunte al fichero libc.so.4.4.1:
# ln -sf /lib/libc.so.4.4.1 /lib/libc.so.4
Se necesita también cambiar el enlace simbólico libm.so.version de la misma forma. Si se esta actualizando a una version diferente de las librerias, sustituya lo anterior con los nombres adecuados.
La nota de la version de la librería debe explicar los detalles. (Ver sección 3.10 para mas información acerca de los enlaces simbólicos).
El compilador de C y C++ gcc se utiliza para compilar software en su sistema, siendo el más importante el núcleo. La versión más reciente de gcc se encuentra en los servidores FTP de Linux. En sunsite.unc.edu se encuentra en el directorio /pub/Linux/GCC (junto con las librerias). Debe existir un fichero release para la distribución gcc detallando que ficheros se necesitan obtener y como instalarlos.
4.7.4 Actualizando otro software
La actualización de otro software solo suele consistir en obtener los ficheros apropiados e instalarlos.
Mucho software para Linux se distribuye como ficheros tar comprimidos con gzip, incluyendo, ya sea fuentes,
ejecutables o ambos. Si los ejecutables no se incluyen con la version, puede ser necesario recompilarlos uno mismo;
normalmente esto significa teclear make en el directorio que tiene los fuentes.
Insistimos, normalmente no es una buena idea el actualizar reinstalando desde cero la version mas reciente de una distribucion.
Si se reinstala de esta forma, no lo dude, arruinara su instalación actual. La mejor forma de actualizar software es
por partes; esto es, si hay un programa que se usa a menudo y tiene una nueva versión, actualícelo. Si no,
no se moleste. Regla practica: Si no tiene nada roto, no lo repare. Si su software actual funciona, no hay motivo para actualizar.