Notxor tiene un blog

Defenestrando la vida

Compilar Emacs desde el código fuente

Notxor
2023-08-05

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:

1

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.

Categoría: emacs

Comentarios

Debido a algunos ataques mailintencionados a través de la herramienta de comentarios, he decidido no proporcionar dicha opción en el Blog. Si alguien quiere comentar algo, me puede encontrar en esta cuenta de Mastodon, también en esta otra cuenta de Mastodon y en Diaspora con el nick de Notxor.

Si usas habitualmente XMPP (si no, te recomiendo que lo hagas), puedes encontrar también un pequeño grupo en el siguiente enlace: notxor-tiene-un-blog@salas.suchat.org

Disculpen las molestias.