Instalar una versión antigua de Git en RHEL 8, Rocky Linux 8 y similares

Git es el sistema de control de versiones por excelencia. Desde que Linus Torvalds lo creó en 2005, se ha convertido en la herramienta estándar para gestionar código fuente, facilitar la colaboración entre equipos y mantener un historial completo de cambios en cualquier proyecto de desarrollo.

Lo habitual es querer tener siempre la última versión de Git instalada: trae mejoras, nuevas funciones y correcciones de seguridad. Sin embargo, en entornos corporativos no siempre es tan sencillo.

Logo de Git

Cuando lo nuevo no siempre funciona

Hay aplicaciones que dependen estrechamente de Git, como es el caso de Bitbucket, Gitlab o productos similares. Estas herramientas esperan un comportamiento muy concreto del binario de Git, y cuando una nueva versión introduce cambios internos, la aplicación puede romperse.

Un ejemplo claro: tras actualizar de RHEL7 a RHEL8 me encontré con que Bitbucket no arrancaba porque el sistema traía una versión demasiado nueva. El mensaje de error era bastante directo: “This version is not supported”.

La solución: usar una versión concreta

En estos casos no queda otra que instalar una versión específica que sí esté soportada. En RHEL8 los repositorios oficiales pueden ofrecer varias versiones mediante el repositorio Application Streams, pero no siempre la que necesitamos.

Ahí es donde toca recurrir a dos opciones:

  • Compilar Git desde código fuente, asegurándonos de tener exactamente la versión que la aplicación soporta.
  • Usar repositorios externos (como IUS) que empaquetan versiones intermedias que Red Hat no publica.

En mi caso opté por compilar la versión 2.41.0 directamente desde las fuentes, instalarlo en el sistema para que la aplicación utilizase ese binario. Resultado: todo funcionando de nuevo, fiu!

Descargar y compilar la versión 2.41.0 para RHEL8

Los pasos son los de siempre. Primero desargamos las herramientas necesarias para compilar:

sudo dnf groupinstall "Development Tools" -y
sudo dnf install curl-devel expat-devel gettext-devel openssl-devel -y
sudo dnf install zlib-devel perl-CPAN perl-devel -y

Descargamos y compilamos:

cd /usr/src
curl -LO https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.41.0.tar.gz
tar xzf git-2.41.0.tar.gz
cd git-2.41.0
make prefix=/usr/local all
sudo make prefix=/usr/local install

Por último, verificamos que efectivamente la versión está instalada:

git --version

Con el resultado, en este caso:

git version 2.41.0

Conclusión

La lección es clara: en sistemas de producción no siempre vale lo de “más nuevo es mejor”. A veces es justo al revés, y debemos instalar versiones antiguas para garantizar la compatibilidad y la estabilidad de nuestras aplicaciones críticas.

Lo importante es conocer las limitaciones de las herramientas que usamos y tener siempre claro que, en entornos empresariales, la prioridad es que todo funcione de forma fiable.

 

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.