Cómo instalar software usando Git en Linux

¿Ya te han dicho la frase “debes clonar el repositorio y crearlo” y no sabes qué hacer?

Te mostraremos cómo hacer que ese programa en GitHub se ejecute en Linux, incluso si eres un novato

Las instrucciones que componen un programa se escriben, editan y guardan en archivos de texto.

Un programa llamado compilador procesa estos archivos. Esto produce la versión ejecutable del programa.

Los archivos de texto de instrucciones se denominan código fuente. La versión del programa que realmente puede ejecutarse en una computadora se llama binario o ejecutable.

Esa es una versión simplificada de los eventos, pero muestra una imagen correcta, generalizada. En la práctica, encontrarás todo tipo de variaciones en ese modelo.

A veces, otros programas generan los archivos de texto. Otras veces, el código fuente se ejecuta dentro de un intérprete y no necesita compilarse, etc.

Sin embargo, la única verdad universal en todos los proyectos de software es esta: los archivos de código fuente son las joyas de la corona, y deben ser atendidos con el mismo cuidado.

Programas de control de versiones

Todos los archivos de código fuente dentro de un proyecto se denominan codebase – código base. Los proyectos grandes a menudo tienen muchos desarrolladores trabajando en el código base. Cada cambio del código debe ser rastreado e identificable.

Si es necesario, los cambios deben ser reversibles. Si diferentes desarrolladores realizan cambios en el mismo archivo de código fuente, sus ediciones deben fusionarse.

No es sorprendente, entonces, que existan programas de software llamados sistemas de control de versiones para facilitar la gestión de los cambios en el código base.

Los sistemas de control de versiones contienen todas las versiones anteriores de cada archivo en el código base y cada cambio se registra, comenta y rastrea.

Una pequeña cosa llamada Git

Linus Torvalds, el creador del kernel de Linux, desarrolló un programa de control de versiones llamado Git para administrar el código base del kernel de Linux. Ahora es el software de control de versiones más ampliamente adoptado del mundo. Hay millones de personas que lo usan, literalmente.

Con Git, el código base de un proyecto se almacena en repositorios. Además de los repositorios locales que se encuentran en las computadoras de los desarrolladores y, tal vez, en un servidor central en la red, es una buena práctica tener un repositorio remoto o fuera del sitio.

Y ahí es donde entra GitHub.

GitHub

GitHub fue creado como resultado del éxito de git. Los fundadores vieron la necesidad emergente de repositorios remotos git alojados de forma segura.

Lanzaron un negocio que proporciona una plataforma en la nube para permitir a los equipos de desarrollo alojar repositorios remotos. Hasta abril de 2019, GitHub alberga más de 100 millones de repositorios.

Si una aplicación es un proyecto de código abierto, hay muchas posibilidades de que se aloje en GitHub. Hay otras plataformas de repositorio disponibles, como BitBucket y GitLab, pero GitHub tiene la mayor parte de los repositorios de código abierto.

Anatomía de un repositorio

Un repositorio de GitHub se compone de carpetas que contienen archivos como los archivos de código fuente más importantes. Por lo general, hay muchos otros tipos de archivos en el repositorio.

Puede haber archivos de documentación, páginas de manual, archivos de licencia de software, instrucciones de compilación y archivos de script de shell. No hay reglas con respecto a lo que debe o no debe contener un repositorio, pero hay convenciones.

Si conoces una cocina, puedes desplazarte por cualquier cocina. Es lo mismo con los repositorios. Una vez que comprenda las convenciones, sabrás a dónde ir para encontrar lo que necesitas.

Entonces, ¿cómo obtienes una copia del repositorio en tu computadora y cómo creas el programa en un ejecutable binario?

El archivo Readme

Es tradicional incluir un archivo readme en un repositorio. Podría llamarse readme, Readme o README. Puede tener una extensión de “.md” o ninguna extensión.

Echemos un vistazo al repositorio de GitHub para el editor Atom. Verás una larga lista de carpetas y archivos. Desplázate hacia abajo y verás el contenido del archivo README.md.

GitHub coloca automáticamente el contenido del archivo Léame en la portada del repositorio. Si el archivo readme tiene una extensión “.md”, contendrá lenguaje de marcado Markdown. Esto permite a los desarrolladores utilizar elementos de estilo, como fuentes, viñetas e imágenes.

Por lo general, un archivo readme tiene secciones que le dicen de qué se trata el proyecto, de qué tipo de licencia se trata, quién mantiene el proyecto, cómo participar y cómo crear y ejecutar la aplicación.

Si no enumera las instrucciones de compilación reales, te dirá dónde encontrar esta información. Aquí se puede enumerar otra información útil para compilar la aplicación, como las herramientas de compilación requeridas y otras dependencias, o un enlace puede llevarte a esa información.

El repositorio boxes

Nuestra misión es clonar el repositorio boxes y luego crear la aplicación boxes.

El repositorio sigue el mismo diseño que el de Atom. Hay una lista de carpetas y archivos y debajo está el contenido del archivo readme. Sigue el diseño estándar para un repositorio, pero es un proyecto más pequeño, por lo que hay menos carpetas y archivos.

El archivo readme es también es más breve. Tiene una sección llamada ” Development”. En esa sección hay un enlace titulado ” building from source”. Si seguimos ese enlace,  deberíamos encontrar la información que necesitamos.

Por lo general, se necesita una investigación rápida para navegar por el repositorio y encontrar la información que deseas, pero no es difícil. Lee todo en la página del repositorio cuidadosamente. A veces, la información está allí, pero puede que no se muestre de manera destacada.

Las dependencias

La página “crear desde el origen” tiene una sección llamada “Crear en Linux”, y eso es justo lo que necesitamos. Dice que debemos tener un compilador de C, Bison y Flex instalados.

Las instrucciones de compilación dicen que debes emitir el comando make, por lo que también necesitaremos make.

Las herramientas requeridas para crear esta aplicación son un compilador de C, Bison, Flex, make y Git (para clonar el repositorio en tu computadora).

Este artículo fue realizado en computadoras que ejecutan las distribuciones Linux Ubuntu, Fedora y Manjaro. Ninguna de las distribuciones tenía instaladas todas estas herramientas; había que instalar todo en cada una de ellas.

Instalar el conjunto de herramientas

Ubuntu tenía que tener Git, Flex, Bison y make instalados. Estos son los comandos:

Fedora tenía que tener Flex, Bison y make instalados. Aquí están los comandos:

Manjaro tenía que tener instalado el compilador GCC, Flex y Bison. Estos son los comandos:

Clonando el repositorio

Cada repositorio de GitHub tiene una dirección web específica utilizada con Git para clonar el repositorio en tu computadora. En la página principal del repositorio de boxes, hay un botón verde con la etiqueta “Clonar o descargar”.

Haz clic en el botón para ver la dirección web. Esta es la dirección que debemos pasar al comando git cuando clonamos el repositorio.

Desplázate al directorio en el que quieres clonar el repositorio y luego usa este comando. Si la ventana de tu terminal lo admite, puedes copiar y pegar la dirección web en el comando. Presiona Ctrl + Shift + V para pegar en una ventana de la terminal de GNOME.

Git clona el repositorio remoto y crea uno local en tu computadora. Nos dice que está clonando en un directorio llamado “boxes”.

El directorio boxes se crea dentro del directorio desde el que emitiste el comando git. Si cambiamos al directorio boxes y observamos el contenido, vemos la misma lista de archivos y carpetas que vimos en la página de GitHub.

¡Excelente! Hemos clonado con éxito el código fuente y otros archivos en nuestra computadora. Ahora, necesitamos crear la aplicación.

Creando la aplicación

Para compilar la aplicación, debemos seguir las instrucciones en el repositorio de GitHub. A veces, ejecutaremos un archivo de shell en particular, y otros los haremos con make. Las instrucciones de compilación que estamos siguiendo nos dijeron que ejecutáramos make.

La utilidad make lee y realiza un conjunto de instrucciones de un archivo MAKE. Estas instrucciones te indican cómo make compila el programa y lo vincula. Make pasa las instrucciones al compilador y otras herramientas de compilación.

El comando que nos dicen que usemos dos veces make. El primer uso de make es para compilar la aplicación, y la segunda ejecuta un conjunto de pruebas.

El comando que las instrucciones de compilación nos dijeron que usáramos es:

Muchas líneas de salida se desplazan rápidamente en la ventana de la terminal. En aproximadamente un minuto, volverás al símbolo del sistema.

Implementación de la aplicación boxes

La aplicación se ha creado y tenemos un binario ejecutable. Ahora debemos copiar el binario en el directorio /usr/bin/. Esto permite que la shell lo encuentre cuando intentamos usarlo.

Para algunas aplicaciones, esto podría ser todo lo que tienes que hacer. En otros casos, es posible que debas copiar archivos adicionales, como páginas de manual y archivos de configuración, en ubicaciones del sistema de archivos.

Lo último es lo que tenemos que hacer con nuestra nueva aplicación porque estaba en las instrucciones de compilación.

Usa sudo para ejecutar estos comandos. El primer comando copia una página de manual en el directorio man1:

A continuación, copia el archivo de configuración global en un directorio en /usr/ share/:

Finalmente, copia el binario a /usr/bin:

Prueba de la aplicación boxes

¡A ver si todo funciona! Intenta abrir la página del manual para el comando boxes.

¡Es gratificante! Verás una página de manual que te indica cómo usar el comando boxes.

Presiona “Q” para salir del sistema man e intentar usar el comando boxes.

El comando boxes te permite ajustar el texto que se canaliza a él en una amplia variedad de marcos. Algunos de ellos podrían usarse como comentarios en archivos de código fuente. El formato anterior funcionaría como un comentario en un archivo de código fuente C, por ejemplo. Otros son puramente decorativos. La opción –d (diseño) te permite elegir el estilo del marco.

Hay una larga lista de diseños entre los que puedes elegir. Para verlos a todos, usa este comando:

Creación completa

Los pasos para construir desde la fuente son generalmente sencillos:

  • Revisar las instrucciones de compilación en el repositorio.
  • Comprobar que tienes instaladas las herramientas necesarias e instalar las que faltan.
  • Clonar el repositorio en tu computadora.
  • Seguir las instrucciones de compilación, que a menudo son tan simples como escribir make.
  • Copiar los archivos a las ubicaciones requeridas.

Si hay pasos en las instrucciones de compilación que no están claros, revisa si el proyecto tiene un foro o comunidad a la que puedas enviar una pregunta. Si la aplicación tiene un sitio web, pueden tener una página de “Contáctanos”.

El desarrollador que mantiene el proyecto boxes tiene su correo electrónico en la página “Acerca de” del sitio web. Es un gesto generoso de su parte, y típico de la comunidad más amplia de código abierto.