Compilar Emacs desde el código fuente
Como la mayoría sabéis, he estado utilizando el mejor editor de código del mundo, durante bastante tiempo1 y lo seguiré haciendo durante mucho tiempo más, aunque la única ventaja que le quede en el futuro, sea el impagable ejercicio (fisio)terapéutico para prevenir la artrosis en mis manos y dedos. ¿De qué vengo a hablar hoy? Pues hay quien me ha preguntado qué sabor uso: doomemacs, spacemacs o vanilla. Mi respuesta es siempre que la mejor configuración para ti, te la haces tú mismo.
Mi archivo de configuración está accesible en un repositorio de codeberg, ya he hablado de ello en el blog. Utilizo, como versión de trabajo, el paquete de Emacs que proporciona la distro que utilizo (OpenSuse Tumbleweed). A día de hoy ya tiene el paquete actualizado a la versión 29.1. Pero si utilizas otras distribuciones de GNU/Linux y no se actualiza el paquete con tanta rapidez, tienes la opción de compilarlo tú mismo. Este artículo cuenta cómo en dos sencillos pasos: descargar y compilar.
Descargar
Descargar fuentes de versiones antiguas puede hacerse desde el ftp
de GNU:
https://ftp.gnu.org/gnu/emacs/
La última versión que podemos encontrar a día de hoy es la 29.1
con
fecha de 30 de julio de 2023. Éste paquete es el más recomendable si
quieres un ejecutable más estable. Los pasos de compilación son los
mismos, exceptuando que la versión empaquetada ya viene con su
correspondiente archivo configure
, mientras que en la versión del
repositorio (emacs 30.0.50
) debes generarlo tú lanzando
autogen.sh
.
El repositorio de Emacs se encuentra en https://savannah.gnu.org/projects/emacs. Ahí mismo se puede encontrar cómo descargar los archivos fuentes del programa:
git clone -b master git://git.sv.gnu.org/emacs.git
Compilar
Hay que estar atento a las dependencias y a lo que tienes instalado. Algunas de dichas dependencias son bloqueantes. Es decir, si no se satisfacen lanzan un error e informan sobre falta de algún paquete y que es obligatorio cumplir con la dependencia o especificar que el ejecutable no soporte esa determinada característica desde la configuración.
En otros casos, como pueden ser las capacidades gráficas, o por
ejemplo, también, en el soporte para XML, etc., el sistema no avisa
de que determinada librería (o el paquete de desarrollo) no se
encuentra, sencillamente se generará un ejecutable sin soporte para
ello. El editor funcionará, pero no podrás visualizar algún tipo de
fichero, bien gráfico o .xml
o de tipos de fuentes o de cualquier
otra característica.
De primeras, necesitas tener instalado autoconf
y las cabeceras de
GTK
. En mi caso, en OpenSuse Tumbleweed, el paquete
gtk3-devel
. Se puede compilar para que sólo funcione en consola,
pero no lo recomiendo. Hay que echarle un ojo a cómo configurar la
compilación para ajustarla a nuestras necesidades, incluyendo la
posibilidad de deshabilitar la mayoría de funcionalidades para dejar
el editor sólo, en un ejecutable compacto y sin la mayoría de
dependencias.
Si has descargado el código del repositorio de desarrollo, antes de la
configuración debes utilizar autogen.sh
para que genere el archivo
de configuración. Si has descargado un paquete de versión del ftp
,
ya viene con el configure
preparado.
./autogen.sh ./configure --help
La compilación desde el repositorio la he hecho a un directorio local de mi usuario para no machacar los ejecutables de la distro, que son los que utilizo principalmente. Dejando la versión compilada para hacer pruebas.
./configure --prefix=/home/notxor/opt
Tarda un rato en comprobar todas las dependencias. Si ocurre algún
error es porque te faltará instalar alguna de ellas o, al menos,
faltan las cabeceras de desarrollo. Los paquetes de desarrollo suelen
encontrarse con el añadido dev
o devel
(según la distribución que
estés utilizando) y al instalarla desaparecerá el error. Otra opción,
si no se quiere instalar la dependencia, es compilar Emacs si esa
característica. Para ello, se puede desactivar desde el mismo
configure
con la opción --withow-OPCION
o --with-OPCION=no
.
Si no hay errores de configuración, la compilación es sencilla:
make make install
Después de un rato de generar los binarios e instalarlos, lo único que te falta es crearte un enlace de algún tipo para lanzar el nuevo ejecutable. Para esto, hay quien se pone un icono en el escritorio o quien se hace un script de lanzamiento (o las dos cosas).
Conclusión
Es Emacs en estado salvaje: funcionar, lo que se dice funcionar, funciona, pero no puedes estar seguro de que no fallará o se producirá un error. Por tanto, es recomendable no utilizarlo como único editor: recuerda al compilar, hacerlo en un sitio donde no machaques la versión estable. Puesto que es una versión de desarrollo puede contener errores y sería conveniente utilizarla sólo para trastear y cotillear el código fuente, o para hacernos de cero o ajustar algún paquete que necesitemos.
Es tan sencillo como parece.
Notas al pie de página:
Si no estás de acuerdo con esta afirmación es que no lo has probado lo suficiente para ser consciente de lo que es capaz.
Comentarios