My開発メモ

HomeBrewをupgradeしたらDDSKKが動かなくなった(macOS/Monterey)

状況

きっかけ

HomeBrewを最新にするために以下の作業をした。

% brew update
% brew upgrade

そうすると、インストール済みのフォーミュラ(パッケージのことかな)が 最新になる。
今回は、Emacs28 のソースコードがインストールされ、コンパイルされた。
そのあと、Emacsを起動すると、以下のようなエラーが出た。

Warning (initialization): An error occured while loading
‘/Users/(username)/.emacs.d/init.el’:

File is missing: Cannot open load file, No suthch file or directory,
skk-autoloads

To ensure normal operation, you should investigate and remove the
cause of the error in your initialization file.
Start Emacs with the ‘–debug-init’ option to view a complete error
backtrace.

init.elの記述

init.el の DDSKK の部分は、以下の記述となっている。

;;;-----------------------------------------------------
;;; DDSKK
;;;
(setq load-path (cons "/opt/homebrew/Cellar/emacs-mac/emacs-28.1-mac-9.0/share/emacs/site-lisp/skk" load-path))
(setq Info-default-directory-list
(cons "/opt/homebrew/Cellar/emacs-mac/emacs-28.1-mac-9.0/share/info" Info-default-directory-list))

(require 'skk-autoloads)

;(setq default-input-method "japanese-skk")
(global-set-key "\C-x\C-j" 'skk-mode)
(global-set-key "\C-xj" 'skk-auto-fill-mode)
(global-set-key "\C-xt" 'skk-tutorial)

やった事

ネットで調べみると、skk-autoloads.elは、コンパイル時に自動的に生成 されるものであるらしい。
ということは、DDSKKをもう一度コンパイルすればいいかも。
ということで、DDSKKをコンパイルしなおすことにした。

DDSKKの再コンパイル

DDSKKをインストールした時の DDSKKのディレクトリがあったので、 Emacsの diredモード(C-x d) で DDSKKディレクトリの中の Skk-MK というファイルの上にカーソルをのせて、

L とキー入力する。すると、インストールが始まる。

いくつか尋ねられる。

/opt/homebrew/Cellar/emacs-mac/emacs-28.2-mac-9.1/share/emacs/site-lisp/ に skk ディレクトリを作成してもいい?

/opt/homebrew/Cellar/emacs-mac/emacs-28.2-mac-9.1/share/ に info ディレクトリを作成してもいい?

みんな yes と答えたが、この時点で なるほど、そういうことか と 感じた。

で、DDSKKのインストールが終わると、以下のようなメッセージが出力された。

load-path の設定
----------------
次のとおり 変数 load-path を設定してください。既にパスが通っているならば
不要です。
  (setq load-path (cons "/opt/homebrew/Cellar/emacs-mac/emacs-28.2-mac-9.1/share/emacs/site-lisp/skk" load-path))

info ディレクトリの設定
-----------------------
次のとおり 変数 Info-default-directory-list を設定してください。既にパス
が通っているならば不要です。
  (setq Info-default-directory-list
        (cons "/opt/homebrew/Cellar/emacs-mac/emacs-28.2-mac-9.1/share/info" Info-default-directory-list))

load-path の修正

要するに、DDSKKをコンパイルしたので、それを /opt/homebrew/…/emacs-28.2-mac-9.1/…/skk に入れたよ。
load-path に加えておいてね。
ということだった。
brew upgrade で Emacsが最新版になったので、その site-lisp の置き場所の 名前が変ったのだった。
ということで、load-path を修正して、ちゃんと DDSKK は使えるようになった。

疑問点

ということは、Emacsが最新版になって、コンパイルしなおす度に、 DDSKK を再コンパイルしなくてはならないってこと?

というよりか、コンパイル済みの ddSKKファイルを /opt/homebrew/…/emacs-28.2-mac-9.1/…/skk に入れるんじゃなくて、 ~/.emacs.d/skk/ とかのディレクトリに入れればいいのでは?

今度やってみよう。

参考

windows10のemacsにDDSKKをインストールする(Macもこれで)

カテゴリー: MacOS, memo

タグ: DDSKK, HomeBrew, MacOS, Monterey

カウント: 218