openSUSE 15.4にアップデートしたらemacsが初期ファイルを読まなくなった
この記事は openSUSE Advent Calendar 2022 の14日目です。
大分遅くなりましたが、先月、自宅のopenSUSEを15.4にアップデートしました。なお、SLES15 サービスパック3(Leap 15.3のベース)は、2022年12月でサポートが切れる(セキュリティパッチの提供などが終了する)ので、皆さん15.4にアップデートすることをおすすめします。
さて、15.4にアップデートしたところ、emacsを起動した時に初期設定が反映されなくなりました。
そこでXDDCのもくもく会で力を貸して頂いて対処したので、書いてみます。なお、最終的な解決までには至りませんでした。
結論
/usr/share/hunspell に、ja_JP.affとja_JP.dicを配置する(中身は何でも良い)
症状
emacsを起動しても初期設定が反映されない
*Messages*に以下のメッセージが表示されている
ispell-find-hunspell-dictionaries: Can’t find Hunspell dictionary with a .aff affix file
教えてくださった方法
Ubuntuの開発者の方に、まずstraceでemacs.d/init.el読んでるかみてみたら?と教えて頂きました。
strace -f emacs > strace.log
straceはシステムコールやシグナルをトレースするプログラムです。
このログをinit.elでgrepしても、ヒットしませんでした。なので、そもそもinit.elを読んで無いようです。
どうやら、メッセージにある通り、hunspellの起動が失敗していて、init.elの読み込みまで進んでないようです。
それでhunspellでログをgrepしていると、/usr/share/hunspell/ja_JP.affと/usr/share/hunspell/ja_JP.dicを読みに行く跡がありました。
そこで、/usr/share/hunspell/en_US.affと/usr/share/hunspell/en_US.dicをそれぞれコピーして/usr/share/hunspell/ja_JP.affと/usr/share/hunspell/ja_JP.dicとして配置した所、無事init.elを読み込みました。
hunspellは日本語チェックをする事はないので、このファイルがあることは問題にならないのですが、回避策にしかならないですね・・・
hunspellはどうやらLANGの値を見ているらしく、以下のように起動するとエラーなく起動できました。
LANG=en_US.UTF-8 emacs
hunspellがLANGの値を見る所を探っていけば、根本解決までいけそうですね。
[…] 。その問題と、暫定的な解決方法は、https://blog.geeko.jp/syuta-hashimoto/3113 に書かれていました。 […]