Home About
macOS , Mackbook , Review , Emacs

MacBook Air M1 に bash と emacs のセットアップ備忘録

そろそろ シリコンマックに移行しないと……と思い立ち先月 MacBook Air M1 を購入した。 それが今年のWWDCの前だったので、それまで待って発表内容を見てから購入すべきか悩んだ。 しかし、刷新された MacBook Air 2022 が出る、という噂があったので、 既存の MacBook Air が廃盤になって購入できなくなると困るという考えがあった。 12inch MacBook のときがそうだったように、入手しようか悩んでいるうちに廃盤になって購入できなくなるのは避けたい。 それに、仮にその新しい MacBook Air 2022 が素晴らしいものだとしても、 ここ最近の円安により相当値段が高くなることが予想されたので、 十分実用的だと感じている MacBook Air M1 が10万円ちょっとで買えるならば、 どのみち、新しい MacBook Air 2022 を買うことはないだろう。 それならもう開催前にオーダーしてしまおう。 最悪のケースでも 2週間以内なら返品できるわけだから、などと悩みつつ購入。

結局、既存の 13インチ MacBook Air M1 は廃盤にはならなかったのですが、この機種はWWDC後に値上げされたので 買っておいて正解だったとちょっとほっとしている。

メモリは 16G に増やすか悩んだのですが、8G にしました。 当面このマシンは実験用になると思うし、自分がメモリを16G 必要な用途といえば、InDesign とか仮想マシンですが、 そのどちらも当面 既存の Macbook Air Intel 2020 上で使うだけなので、このマシンは 8G で十分だと。

それから本当の話なのかはわかりませんが、8Gの方がバッテリー持続時間が長くなるという話をネットでみかけたので。 メモリがたくさんあると起動したままのアプリケーションが増えがちになるので、その結果バッテリーの持ちが悪くなるとか、 そんな程度の話かもしれません。

セットアップ備忘録

本題のセットアップ備忘録です。 インストールしたもので主なものは bash と emacs です。 例によって emacs 上では wnn で日本語入力したいので、freewnn jserver を multipass 上で動かした Ubuntu 22.04 で 作動させています。 Home Brew は入れたくなかったので、bash と emacs はソースから入れています。

bash

https://ed.com/bash-from-source/ にしたがってインストールしました。 それだけです。 とくに難しいことは何もありません。

emacs 27.2

現在の最新の emacs ソースは version が 28.1 なのですが、これを使うと tamago-tsunagi-5.0.7.1 を動かすことができません。 いろいろ試したのですが、現時点では単純に emacs 27.2 を使うことで解決しました。

参照: macOS Catalina に emacs をソースからインストール

emacs はソースを展開して、以下のオプションで configure しました。

$ ./configure --with-gnutls=no --without-pop --prefix=/usr/local/share/emacs --without-x

こちらに補足事項を書きました。 emacs のセットアップ(補足)備忘録 macOS Monterey

一応 --prefix を指定していますが、make install しないので、たぶん指定しなくても結果は変わらないと思います。(試してはいない。)

configure が完了したら make します。 すると ./nextstep/Emacs.app ができるので、これをどこかに配置します。 このマシンではいつも通り ~/.local/Emacs.app に配置しました。

実際に emacs を起動しようとしたときに出るあの問題 "Emacs" is damaged and can't be opend. You should move it to the Trash. は、xattr コマンドで回避します。

Emacs is damaged and can't be opend. You should move it to the Trash.

$ xattr -cr ~/.local/Emacs.app

あとは、~/.emacs.d/init.el の用意とターミナルで emacs を起動するために alias 設定しました。

~/.emacs.d/init.el

(menu-bar-mode 0)

(set-default-coding-systems 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)

(setq enable-double-n-syntax t)

(add-to-list 'load-path "/usr/local/share/emacs/site-lisp/egg")
(load-file "/usr/local/share/emacs/site-lisp/egg/leim-list.el")
(setq default-input-method "japanese-egg-wnn")
(setq wnn-jserver "192.168.64.2")

(setq make-backup-files nil)

まだインストールしていませんが、tamago-tsunagi の設定が入っています。あとでインストールします。 192.168.64.2 で動かす wnn-jserver もこれからインストールします。(後述)

このIPアドレスは multipass をインストールした後で multipass ls するとわかります。

$ multipass ls
Name                    State             IPv4             Image
primary                 Running           192.168.64.2     Ubuntu 22.04 LTS

~/.bashrc

alias emacs="$HOME/.local/Emacs.app/Contents/MacOS/Emacs -nw"

ターミナルで emacs とタイプして起動するには、 PATHを通してもよいのですが、そうなると 毎回 emasc -nw とオプションをつけないと GUI 版 emacs が起動してしまいます。 それは(自分にとっては)不都合なので alias で常に -nw がつくようにしておきます。

なお、configure で --without-x 指定をしているんですけどね。 まったく有効ではないらしい。(オプション指定に間違いがあるのかも)

tamago-tsunagi-5.0.7.1

このエントリー「Wnn7egg から tamago-tsunagi に変更, Emacs 26.3 日本語入力」とほぼ同じです。 今回は emacs のバージョンが 26.3 ではなく 27.2 ですが、ほぼ同じ手順でインストールできました。

インストール中に以下の警告が出た:

checking jisx0213... Warning: arch-dependent data dir '/path/emacs-27.2/nextstep/Emacs.app/Contents/MacOS/libexec/': No such file or directory
Warning: Lisp directory '/path/emacs-27.2/nextstep/Emacs.app/Contents/Resources/lisp': No such file or directory

jisx0213は放置。 lisp ディレクトリがない問題については、 存在することを期待されているディレクトリに emacs-27.2 の ソースを展開したディレクトリに存在している lisp ディレクトリをまるごとコピーしました。 (それが想定されている lisp なのかはわかりません。)

multipass と freewnn-jserver

tamago-tsunagi のサーバ、つまり freewnn-jserver を用意しないと日本語入力できません。 freewnn-jserver は multipass の Ubuntu 22.04 で動かすことにします。

multipass をインストール後、以下のコマンドで Ubuntu 22.04 をインストール&起動して、アクセスします。

$ multipass launch --name primary 22.04
$ multipass shell 

あとは、apt で入れるだけです。

$ sudo apt update
$ sudo apt install freewnn-jserver

これで、macos のターミナルで emacs を起動して 日本語入力できるようになりました。

しかし、Wnn8 と比べると FreeWnn の日本語変換はあまりよくない。 たとえば「アプリ」が「あぷり」と入力して「アプリ」に変換できない。 「あぷ理」になってしまうのであった。 別に文句があるわけではないが、Wnn8 がやはり使いたいところだ。 試してはいないが ARM版の Linux に Wnn8 をインストールはきっと無理だろうな。

ただ、WWDCで Apple announces sharing of how to run x86-64 Linux binaries with Rosetta 2 のアナウンスがあったようだから、いつの日か multipass などで x64 の Ubuntu が動くようになるかも。 そうなれば Wnn8 を使える日がくるかもしれない。