<Anterior | Contenido | Siguiente>
Enlaces simbólicos
Al mirar a nuestro alrededor, es probable que veamos una lista de directorio con una entrada como esta:
lrwxrwxrwx 1 raíz raíz 11 2007-08-11 07:34 libc.so.6 -> libc-2.6.so
lrwxrwxrwx 1 raíz raíz 11 2007-08-11 07:34 libc.so.6 -> libc-2.6.so
¿Observa cómo la primera letra de la lista es "l" y la entrada parece tener dos nombres de archivo? Este es un tipo especial de archivo llamado enlace simbólico (también conocido como enlace suave or enlace simbólico). En la mayoría de los sistemas similares a Unix, es posible tener un archivo referenciado por varios nombres. Si bien el valor de esto puede no ser obvio, es realmente una característica útil.
Imagine este escenario: un programa requiere el uso de un recurso compartido de algún tipo contenido en un archivo llamado "foo", pero "foo" tiene cambios de versión frecuentes. Sería bueno incluir el número de versión en el nombre del archivo para que el administrador u otra parte interesada pueda ver qué versión de "foo" está instalada. Esto presenta un problema. Si cambiamos el nombre del recurso compartido, tenemos que rastrear todos los programas que puedan usarlo y cambiarlo para buscar un nuevo nombre de recurso cada vez que se instala una nueva versión del recurso. Eso no suena nada divertido.
Aquí es donde los enlaces simbólicos salvan el día. Digamos que instalamos la versión 2.6 de "foo", que tiene el nombre de archivo "foo-2.6" y luego creamos un enlace simbólico llamado simplemente "foo" que apunta a "foo-2.6". Esto significa que cuando un programa abre el archivo "foo", en realidad está abriendo el archivo "foo-2.6". Ahora todo el mundo está feliz. Los programas que se basan en "foo" pueden encontrarlo y aún podemos ver qué versión real está instalada. Cuando llega el momento de actualizar a "foo-2.7", simplemente agregamos el archivo a nuestro sistema, eliminamos el enlace simbólico "foo" y creamos uno nuevo que apunta a la nueva versión. Esto no solo resuelve el problema de la actualización de la versión, sino que también nos permite mantener ambas versiones en nuestra máquina. Imagina que “foo-2.7” tiene un error (¡malditos sean los desarrolladores!) Y necesitamos volver a la versión anterior.
Nuevamente, simplemente eliminamos el enlace simbólico que apunta a la nueva versión y creamos un nuevo enlace simbólico que apunta a la versión anterior.
El directorio que aparece arriba (del / lib directorio de un sistema Fedora) muestra un enlace simbólico llamado "libc.so.6" que apunta a un archivo de biblioteca compartida llamado "libc-2.6.so". Esto significa que los programas que busquen "libc.so.6" en realidad obtendrán el archivo "libc-2.6.so". Aprenderemos a crear enlaces simbólicos en el próximo capítulo.