Emacs 29.4 インストール(AUR)
Emacs 29.3のときと同じようにソースからビルドしてもよかったけど、せっかくOSを入れ替えたのでAURの作法でやってみました。
まだaurに不慣れで、変なことしてるかもなのでツッコミよろしくです!
完成品
下記のようなのが入ります。
$ emacs --batch --eval '(message (string-replace "\n" "" (emacs-version)))'
GNU Emacs 29.4 (build 3, x86_64-pc-linux-gnu, GTK+ Version 3.24.43, cairo version 1.18.0) of 2024-08-29
$ emacs --batch --eval '(message system-configuration-features)'
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON LCMS2 LIBOTF LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB
環境
Wayland環境です。
SwayだけでDEなしのデスクトップですが、Arch Linuxでもこの方法で行けると思います。
1. aurをとってくる
素晴らしいお手本があります。
このお手本そのままでもNATIVE_COMPなEmacsができるので、基本これに沿って行きます。
paru -S base-devel
cd ~/Downloads
git clone https://aur.archlinux.org/emacs-git.git/ emacs-git-aur
cd emacs-git-aur
2. aurを変更する
このままビルドするとgitの最新ができてしまうので、
- リリース 29.4を使いたい
- いつも使っているビルドオプションを使いたい
なのでPKGBUILDファイルを変更して、以下の3点をカスタマイズします。
- gitのタグを
emacs-29.4に切り替え - ビルドオプション
--without-popを追加 - ビルドオプション
--with-small-ja-dicを追加
変更後のファイルをgistに置きました。
下記のようにPKGBUILDファイルをバックアップした上でダウンロード(上書き)します。
cp PKGBUILD{,.orig} # バックアップ
wget https://gist.githubusercontent.com/hidsh/153e3a19eacdaaf031fed4d1897b10fc/raw/43890cb4f19042c03266431cbae8e76663022341/PKGBUILD
diff PKGBUILD.orig PKGBUILD # 差分を確認
3. ビルド、インストール
ビルドしてインストールします。
makepkg -siC
sudo pacman -Syu
sudo pacman -U emacs-git-29.4.166187-1-x86_64.pkg.tar.zst
which emacs # => /bin/emacs
4. ignore updating this package
sudo vim /etc/pacman.conf
#IgnorePkg =
IgnorePkg = emacs-git
おわりに
初めてBUILDPKGをいじりましたが、初見ということもあり手間取りました。
最初は、emacsのソースをgit cloneするときに、29.4のタグだけを取得したくて
source=("emacs-git::git+https://git.savannah.gnu.org/git/emacs.git#emacs-29.4"
"nemacs")
のようにしたのですが、エラーになりました。
しかたないので、全取得したあとでタグを切り替えるようにしています。
また、元のコメントにもあるのですがCHECK = "YES"にするとやっぱりエラーになります。
なので、ここは変更せずに直接ビルドするしかないようです(メンテナはケアする気がなさそ)。
あと、(これはEndeavorOSの仕様かもしれませんが)インストールするとなぜか/binに入ります。
長いことapt民だったこともあり、/usr/binに入るのに慣れきっていたのでちょっと意外に感じます。
まあ/usr/binよりも/binのほうが短くていいですが、しばらく違和感続くかも。
・・・aurまだよくわからん x_x;
Discussion