기존에 Arch Linux를 사용하다가 systemd가 아닌 다른 init 시스템을 이용해보기 위해서 여러 배포판을 찾아보았다. 그 중 안정성이 좋은 Debian의 포크 중 하나인 Devuan을 OpenRC 시스템으로 설치하였고, doomemacs의 깃헙 페이지에서 추천하는 Emacs의 최신 버전인 29.2를 소스파일을 이용하여 빌드하기로 했다. (Debian과 그 포크들은 안정성을 중요하게 여기기에 Arch Linux만큼 rolling release를 제공하지 않는다...) 이때 다음 블로그(링크)를 참고하였다.
먼저 빌드를 진행할 디렉토리를 만든다.
$ mkdir ~/emacs_build
$ cd emacs_build
Emacs 최신 버전의 소스코드를 wget 명령어로 다운로드 받는다.
$ wget -c https://ftpmirror.gnu.org/emacs/emacs-29.2.tar.gz
$ wget -c https://ftpmirror.gnu.org/emacs/emacs-29.2.tar.gz.sig
gpg 명령어로 key값을 확인하는 절차는 생략한다. 다음 명령어를 사용하여 tarball을 풀고 나온 폴더에 들어간다.
$ tar xvfz emacs-29.2.tar.gz
$ cd emacs-29.2
다음 명령어를 사용하여 의존성을 빌드하는 설정을 해야한다. 먼저 다음을 이용하여 apt에서 제공하는 구버전 Emacs의 의존성 패키지를 설치한다.
$ sudo apt-get build-dep emacs
진행할 빌드 설정을 다음과 같이 한다.
$ ./configure --with-native-compilation=aot\
--with-tree-sitter\
--with-gif\
--with-png\
--with-jpeg\
--with-rsvg\
--with-tiff\
--with-imagemagick\
--with-x-toolkit=lucid\
--with-json\
--with-mailutils
make 명령어를 사용하여 빌드를 진행한다. 진행한 환경에서는 make 패키지가 설치되어 있지 않아서 먼저 make 패키지를 설치하였다.
$ sudo apt install make
먼저 다음 명령어를 사용하여 빌드할 환경을 깨끗하게 치운다.
$ make clean
또한 빌드를 위한 각종 라이브러리를 설치하기로 한다. make 명령어에서 시행착오를 겪으며 정말 설치할 수 있는 라이브러리는 다 설치한 것이어서 필요하지 않거나 중복된 패키지가 있을 수 있다.
$ sudo apt install build-essential libmotif-dev xorg-dev libgtk-3-dev libxpm-dev libjpeg-dev libgif-dev libtiff-dev libguntls28-dev libncurses-dev libinfo-dev ncurses-dev
마지막으로 다음 명령어를 사용하여 실제로 컴파일한다.
$ make -j8
이때, -j 옵션은 제외할 수 있다. (동시에 작업을 진행하는 갯수를 정하는 옵션이다.)
모든 작업이 끝나면 지금까지 빌드한 Emacs의 버전을 확인해본다.
$ ./src/emacs --version
다음과 같은 결과가 나오면 성공한 것이다.
GNU Emacs 29.2
Copyright (C) 2024 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of GNU Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.
만약 make에 실패했다면 컴파일러가 뱉어내는 error를 읽고 필요한 라이브러리를 설치한다.
이제 준비된 빌드파일을 시스템에 설치한다.
$ make install
작업이 끝나면 마찬가지로 시스템에 설치된 Emacs의 버전을 확인할 수 있다.
$ emacs --version
만약 Emacs를 시스템에서 제거하려면 tarball에서 나온 emacs-29.2 폴더를 삭제하지 않고 cd 로 직접 들어가서 다음 명령어를 사용한다.
$ make uninstall
다음은 Devuan에 설치한 Emacs 29.2를 실행한 스크린샷이다. (대략 8년 전에 나온 중소기업 투인원 PC를 소생시키는 리눅스의 마법이 새삼 놀랍다.)

이후엔 계획한 doomemacs를 설치하면 될 것이다.