miércoles, 23 de noviembre de 2016

Obteniendo el código fuente

Para nuestro ejercicio de compilación, vamos a compilar un programa del Proyecto GNU llamado diction. Es un pequeño pero práctico programa que comprueba la calidad de escritura y edición de los archivos de texto. Como programa, es bastante pequeño y fácil de construir.

Siguiendo la norma, primero vamos a crear un directorio para nuestro código fuente llamado src y luego descargaremos el código fuente en él usando ftp:

[me@linuxbox ~]$ mkdir src
[me@linuxbox ~]$ cd src
[me@linuxbox src]$ ftp ftp.gnu.org
Connected to ftp.gnu.org.
220 GNU FTP server ready.
Name (ftp.gnu.org:me): anonymous
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd gnu/diction
250 Directory successfully changed.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r-- 1 1003 65534  68940 Aug 28 1998 diction-0.7.tar.gz
-rw-r--r-- 1 1003 65534  90957 Mar 04 2002 diction-1.02.tar.gz
-rw-r--r-- 1 1003 65534 141062 Sep 17 2007 diction-1.11.tar.gz
226 Directory send OK.
ftp> get diction-1.11.tar.gz
local: diction-1.11.tar.gz remote: diction-1.11.tar.gz
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for diction-1.11.tar.gz
(141062 bytes).
226 File send OK.
141062 bytes received in 0.16 secs (847.4 kB/s)
ftp> bye
221 Goodbye.
[me@linuxbox src]$ ls
diction-1.11.tar.gz

Nota: Como somos los "mantenedores" de este código fuente mientras lo compilamos, lo guardaremos en ~/src. El código fuente instalado por nuestra distribución se instalará en /usr/src, mientras que nuestro código fuente destinado al uso de múltiples usuarios se instala a menudo en /usr/local/src.

Como podemos ver, el código fuente se proporciona normalmente en forma de archivo tar comprimido. Algunas veces se llama tarball, este archivo contiene el source tree (árbol de código fuente), o jerarquía de directorios y archivos que componen el código fuente. Tras llegar al sitio ftp, examinamos la lista de archivos tar disponibles y seleccionamos la versión más reciente para descargar. Usando el comando get contenido en ftp, copiamos el archivo del servidor ftp a la máquina local.

Una vez que se ha descargado el archivo tar, tiene que ser desempaquetado. Esto se hace con el programa tar:

[me@linuxbox src]$ tar xzf diction-1.11.tar.gz
[me@linuxbox src]$ ls
diction-1.11        diction-1.11.tar.gz

Consejo: El programa diction, como todo el software del Proyecto GNU, sigue ciertos estándares para el empaquetado de código fuente. La mayoría del resto de código fuente disponible en el ecosistema Linux también sigue este estándar. Un elemento del estándar es que cuando el código fuente del archivo tar es desempaquetado, se creará un directorio que contiene el árbol de código fuente, y que este directorio se llamará project-x.xx, conteniendo así tanto el nombre del proyecto como el número de versión. Este esquema también permite una fácil instalación de múltiples versiones del mismo programa. Sin embargo, a menudo es una buena idea examinar la disposición del árbol antes de desempaquetarlo. Algunos proyectos no crearán el directorio, pero en su lugar colocarán los archivos directamente en el directorio actual. Esto provocará un desorden en tu, de otra forma, bien organizado directorio src. Para evitar esto, usa el siguiente comando para examinar el contenido del archivo tar:

tar tzvf archivotar | head

No hay comentarios:

Publicar un comentario