いまどきEUCか,というツッコミはなしです。
諸般の事情によりiPad Air (M2)を導入しました。これまで,リモートからメールを読むときは,macOSのiterm2からsshでサーバーに接続してemacs -nwとしてターミナル上でmewを使っていました。GUIが不要なのでどのような環境でもsshさえ繋がればメールが読めるし,ローカルのパソコンにメールを引っ張ってこないため,メールのデータをサーバー側に一元的に保存できるということがメリットだと考えていました。もちろん,LAN内ではX windowを使ってサーバー側のemacsの画面をローカル側に表示して普通にemacsを起動してメールを読んでいます。sshでトンネルを設定すればX windowの画面もリモート側に転送できますが,イマイチうまく使えていないので,結局,ターミナルを使うというのがもっとも汎用性が高くて無敵でした。
メールを読んでいるサーバーはFreeBSDで,昭和の時代から使っている環境を引き継いでいるので文字コードはEUCを基本としています。当然,emacsもEUCで日本語を読み,書き,表示するという仕様をずっと維持してきました。
macOS上でiterm2を使う場合はターミナルで表示する文字コードを日本語EUCに設定するだけなのでなんの困難もありませんでした。それと同じことがiPadでもできる,と信じて疑っていなかったのですが,手をつけてみると,これは容易ではないということがわかりました。
iOS上で使えるターミナルソフトはいくらでもあるのですが,ターミナルの文字コードを日本語EUCにできるものは,私が調べた限りではどうやらpromptというアプリに限られるようでした。prompt 2は買い切りのライセンスだったようですが,現時点では配布されていなくてprompt 3に変わっていてサブスクが基本で,買い切りはとても高価,という素敵仕様になっていました。このソフトの開発元はバージョンアップするたびに課金システムを変えて,古いユーザーへの配慮もないような話もちらほらみかけるので,そんな開発元にサブスクで税金を払い続けるようなことはやりたくないので速攻で却下しました。
iPad上で使えるsshターミナルはTermius, WebSSH, a-Shell, Shelly, Blink Shell, xTerm256などいくらでもありますが,無料の範囲で試した限りではprompt以外は日本語はすべてUTF-8だけしか対応していませんでした。prompt 3は試していませんがApp Storeのコメントをみると日本語がうまく通らないようなことが書かれているのでそれほど期待できないのかもしれません。試していないのでなんともいえませんが。
ほぼ1日中ターミナルソフトを取っ替え引っ替え試していましたが,にっちもさっちもいかなくなって,手詰まりになったのですが,検索をしていたらたまたま,iSHというプロジェクトがヒットしました。iSHはiOSデバイスでローカルに実行されるLinux環境を提供するものらしいです。AppStoreでiSHを検索するとすぐにヒットするのでさっさとインストールしてしまいます。
起動するとターミナルが起動して#が表示されるのでどうやらroot権限でシェルが動いている(iSHの環境のなかで,ですが)ようです。/etc/passwdをみるとashというあまり(私は)よく知らないシェルが設定されていました。setenvコマンドはないようなのでどうやらbash系のシェルのようです。設定ファイルも.profileです。起動してさっそくsshと叩いたらそんなコマンドはないよ,とツレない返事がかえってきました。どうやらLinuxのように必要なコマンド類はインストールしなくてはならないようです。
apk add openssh
と叩くとsshがインストールされます。たぶん,なんちゃってaptコマンドなのでしょう。
これでsshでサーバーにログインしてemacs -nwとしてターミナル上でemacsを起動してewでメールを読もうとしましたが,予想通り文字化けします。ターミナル自体が日本語表示できるのか,ということもあるのでいったんemacsを終了してターミナルのシェルにもどって,サーバー上の適当なテキストファイルを表示します。テキストファイルはほぼ例外なくEUCで保存しているので,
cat hoge.txt
とやるとバケバケです。しかし,
nkf -w hoge.txt
ならちゃんと日本語が表示されました。-wはUTF-8で出力するオプションです。要するに,UTF-8なら日本語を表示できる,ということです。macOSのiterm2のようにターミナルの文字コードを日本語EUCにすれば問題ないはずです。ところがどこをどう調べてもEUCに変更するというオプションは見つかりません。Geminiに聞いてみると,そりゃ無理だよ,とあっさり言われてしまいました。
あ,そうなんだ...。ダメじゃん。
せっかくGeminiを起動したので,iSHからsshでログインしたサーバーのメールをemacs + mewで読む方法を聞いてみました。そうすると,彼(彼女?)はemacsが文字を表示するときにUTF-8を使うようにすればよい,という御宣託でした。いや,それだとiPadから接続したときはちゃんと表示されるけど今度はiterm2から接続したときはEUCで表示できないとダメなんですけど。
それならiSHで環境変数TERMがlinuxと設定されていたらそのときだけUTF-8で表示するように条件分岐を設定すればよい,と言ってきました。いや,iSHもiterm2もTERM=xterm-256colorとなっていて区別がつきません。TERMの値を適当な文字列にするとemacs -nwで起動しようとするとそんなターミナルはデータベースにないよ,と言われて起動しません。データベースに手を入れるのはうれしくない,と思って却下しました。
次は適当な環境変数,たとえばIS_ISH=trueと設定してからサーバーにログインして.emacsでIS_ISHが設定されていたらUTF-8で表示するように条件分岐を設定すればよいと云うことでした。やってみてもサーバー側にログインしたときにIS_ISHが引き継がれていないので意味がありません。Geminiに苦情を申し入れたら,LC_IS_ISH=trueと設定しろ,と言われました。LC_*という環境変数はログイン先に自動的に引き継がれるのだそうです。知らなかった。
というわけでやってみたけど引き継がれません。サーバー側の/etc/ssh/sshd_configに
AcceptEnv LC_*
を追記します。追記したら
/etr/rc.d/sshd restart
としてsshdを再起動します(FreeBSDの場合のコマンドです)。
macOSのiterm2からサーバーにログインすると確かに環境変数のLC_から始まるものは値が引き継がれていました。しかし,iSHからは同じようにやっても引き継がれません。理由を聞くとiSH側のsshが環境変数をサーバーに引き渡す設定になってないことが原因だ,ということでした。そりゃダメだ。
iSHの/root/.ssh/configを新たに作成して,
Host *
SendEnv LC_IS_ISH
を書き込んで保存します。これでiSHからサーバーに接続すると環境変数LC_IS_ISH=trueが定義されていました。
ここまで死ぬほど長かったです。
最後に,サーバー側のemacsを設定します。~/.emacs.d/init.elの一番最後に以下を追記します。これはGeminiが提案してきた設定ファイルそのままです。
;; --- iSH 接続時専用の表示最適化設定 ---
(when (getenv "LC_IS_ISH")
;; 1. ターミナルへの出力(iSHの画面表示)を UTF-8 に
(set-terminal-coding-system 'utf-8)
;; 2. iSHからのキーボード入力を UTF-8 として受け取る
(set-keyboard-coding-system 'utf-8)
;; 3. Mewのサマリーや本文表示における文字コード処理の優先度
;; ファイルの実体(EUC-JP)は維持しつつ、表示の橋渡しを安定させます
(when (fboundp 'set-buffer-file-coding-system)
(setq-default buffer-file-coding-system 'euc-jp))
(message "iSH detected: Terminal output switched to UTF-8 for EUC-JP environment."))
これで,iSHから接続したときだけemacs -nwでたちあげたときに日本語がUTF-8で表示され,文字化けしないでメールが読めるようになりました。
超絶ハマりました。以上の手順を整理すると,以下の通りです。やり方がわかれば簡単なことなんだけどなぁ。
サーバー(FreeBSD)側の作業:
1. /etc/ssh/sshd_configの最後に
AcceptEnv LC_*
を追記。
2. /etc/rc.d/sshd restart
3. ~/.emacs.d/init.elの最後に以下を追記
;; --- iSH 接続時専用の表示最適化設定 ---
(when (getenv "LC_IS_ISH")
;; 1. ターミナルへの出力(iSHの画面表示)を UTF-8 に
(set-terminal-coding-system 'utf-8)
;; 2. iSHからのキーボード入力を UTF-8 として受け取る
(set-keyboard-coding-system 'utf-8)
;; 3. Mewのサマリーや本文表示における文字コード処理の優先度
;; ファイルの実体(EUC-JP)は維持しつつ、表示の橋渡しを安定させます
(when (fboundp 'set-buffer-file-coding-system)
(setq-default buffer-file-coding-system 'euc-jp))
(message "iSH detected: Terminal output switched to UTF-8 for EUC-JP environment."))
クライアント(iPad Air (M2))側の作業
1. iSHをインストール
2. apk add openssh
3. /root/.profileに以下を追記
export LC_IS_ISH=true
4. /root/.ssh/configに以下を追記
Host *
SendEnv LC_IS_ISH
これでssh USER@serrver.comとしてサーバーに接続してemacs -nwとしてからmewでメールを表示するとちゃんと日本語が読めるはずです。
Cantataがローカルのmpdサーバーに接続できない
TahoeにインストールしたCantataがローカルネットワークに接続できず音楽ファイルが再生できません。pingも通るし,telnet SERVER 6600で接続すればコマンドを受け付けるのでOSレベルでブロックされているようです。
一回だけ,セキュリティのポップアップが立ち上がって接続を許可するか,と聞かれたのでOKとすると接続できました。しかし,その後,再度Cantataを起動するとやはり接続できません。
本来ならシステム環境設定のプライバシとセキュリティの項目内のローカルネットワークに関係するアプリがリストアップされるべきなのですが,Cantataは表示されません。アプリケーションフォルダに保存しないで自分のローカルのapplication_localというフォルダからCantataを起動しているのが問題かもしれませんが,そういう問題だと勘弁してくれと思います。Geminiに聞いてみるアプリのリストが表示されない場合,どうしようもない,ということでした。
しかし,アプリの本体を直接起動すれば問題を回避できるようです。ターミナルをたちあげて,
cd /Volumes/LocalData/application_local/Cantata.app/Contents/MacOS/
./cantata &
とやるとCantataが起動して何事もなかったようにmpdサーバーに接続できます。
なんなんだ,と叫びたい気分です。
一回だけ,セキュリティのポップアップが立ち上がって接続を許可するか,と聞かれたのでOKとすると接続できました。しかし,その後,再度Cantataを起動するとやはり接続できません。
本来ならシステム環境設定のプライバシとセキュリティの項目内のローカルネットワークに関係するアプリがリストアップされるべきなのですが,Cantataは表示されません。アプリケーションフォルダに保存しないで自分のローカルのapplication_localというフォルダからCantataを起動しているのが問題かもしれませんが,そういう問題だと勘弁してくれと思います。Geminiに聞いてみるアプリのリストが表示されない場合,どうしようもない,ということでした。
しかし,アプリの本体を直接起動すれば問題を回避できるようです。ターミナルをたちあげて,
cd /Volumes/LocalData/application_local/Cantata.app/Contents/MacOS/
./cantata &
とやるとCantataが起動して何事もなかったようにmpdサーバーに接続できます。
なんなんだ,と叫びたい気分です。
Mac mini (2024)の設定(その4;アプリのインストール 続き)
普通に生活するためのアプリのインストールはここからが本番,と言えるかもしれません。
1. Homebrewのインストール
以前にやっているのと同じですが,一応,メモしておきます。
1.1 ターミナル(iterm2でOK)を起動
1.2 シェルをtcshに変えているならbashと叩いてシェルをbashにする。
1.3 Homebrewのトップページに書かれているスクリプトを走らせる。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
1.4 インストールがおわったら,exitしてから.cshrcに
if($OSTYPE == "darwin") then
set path = (\
$HOME/bin \
/usr/local/sbin /usr/local/bin /usr/X11R6/bin \
/usr/bin /bin /usr/sbin /sbin \
/opt/homebrew/bin \
)
endif
を追加します。
いつからかわかりませんがhomebrewによってインストールされたコマンド類のインストール先が/opt/homebrew/binに変わったようで,このディレクトリへのパスを設定しておかねばなりません。これを知らなくてハマりました。
1.5 ツールやコンパイラをインストール
brew install XXX
としてXXXのところに以下のソフト名を書いてコツコツインストールします。
nkf, a2ps, aspell, neovim, cmigemo,
wget, wput, telnet,
mpack, lhasa,
iperf3,
dos2unix, mtools,
imagemagick, graphicsmagick, exiftool, ffmpeg, gmt, evince
gcc, lapack, cmake, r, rstudio, byacc, wxmaxima, scilab
2. Fortran preprocessor
fppという名前ですが,brewでfppをインストールするとfacebook path pickerというよくわからないものがインストールされてしまいますので手動でインストールするしかありません。以前にメモした通りなのですがもう一度メモしておきます。
2.1 ソースコードの入手
FreeBSDのdistfilesからソースをもらってきます。FreeBSDが手元にあるなら,
cd /usr/ports/devel/fpp/
make fetch
とやると/usr/ports/distfiles/fdfpp.tgzとして保存されます。このソースと/usr/ports/devel/fpp/files/以下にある3つのパッチファイルを使います。
2.2 パッチの適用
適当なディレクトリでソースを展開し,
cd fdfpp/
patch -p0 < (somewhere)/patch-src-Makefile.common
patch -p0 < (somewhere)/patch-sparc-Makefile
patch -p0 < (somewhere)/patch-Makefile
としてパッチをあてます。パッチをあてる順番は気にしなくてもよいのですが,なぜかpatchコマンドが終了せずまったくパッチがあたりません。apple謹製の/usr/bin/patchがダメなのかと思ってbrew install gpatchとしてGNUI patchをインストールしてみましたが,パッチがあたらないのは変わりません。
しょうがないので,パッチファイルを見ながら手動でパッチを当てました。なんのためにコンピュータを使ってるんだぁ,という気分になります。
2.3 make
fdfppディレクトリで
make bsd44
とやるとコンパイルをはじめますが,yaccでエラーが出てとまります。このときのmakeによってfdfpp/bsd44/Makefileというファイルができているのでこのファイルを編集します。変数名を定義しているところに
YACC = byacc
という行を追記して保存します。
cd fdfpp/bsd44/
make
としてbsd44ディレクトリ内でmakeをします。今度はエラーなくコンパイルができてfppという実行ファイルができています。
2.4 実行ファイルの保存
できたfppを適当な場所に保存しておきます。homebrewのインストール先にあわせて,
cp fpp /opt/homebrew/bin/
としました。
rehashすればちゃんとfppコマンドが使えるようになります。
3. Visual Studio Code (VSCode)
私自身はプログラムを書くときはemacsを使っていますが,業務上,VSCodeを使うということがあるのでインストールしておきます。MicrosoftのサイトからApple silicon用のバイナリをダウンロードします。tgzファイルを展開したらapplication_localに移動しておきます。起動してから左のメニューの田のようなところをクリックして,検索窓にmodern fortranと入力してfortranのエクステンションをインストールしておきます。ただ,以前と違って,extentionのmarket placeに登録されていない,ということで注意マークが表示され,installボタンを押すことができません。歯車のマークを押すとインストールという項目が現れるのでそれを選択すると,今度は,ポップアップで
'Modern Fortran' is an extension from an unknown source. Are you sure you want to install?
という注意喚起があります。とにかくインストールする,というボタンを押せばインストールされます。これを使うのは自己責任でやってね,ということです。
いずれにしても,自分で使う言語が基本的にfortranだから,ということでインストールしてます。
4. emacs
Quartzにネイティグに対応したバイナリをインストールします。
Emacs for Mac OS Xのサイトからバイナリをダウンロードします。トップページのダウンロードボタンを押すだけなのですが最新版が30.2になっていました。
いまだにwnn7で日本語変換をしているので,そのためにななたまご(wnn7egg)を動かす必要があります。常にwnn7eggをアップデートしてくださっているとてもありがたい方がいらっしゃるので,いつもその方が公開されているパッチを使わせていただいています。しかし,emacs 30むけのパッチはよくわからないこともあるというようなことを書いておられるのでemacs 29で使う方が安心な気がしました。
そこで,トップページのother versionsを押して,29.4-1をダウンロードしました。dmgファイルをマウントしてEmacs.appを適当なディレクトリ(application_localなど)にコピーしておきます。
5. Gimp
GimpのオフィシャルサイトからApple silicon用のバイナリをダウンロードしてdmgファイルをマウントします。中のGIMP.appを適当なディレクトリにコピーすればインストール完了です。野良アプリなので起動するときに文句をいわれるかもしれませんが,気にせず「開く」をおして起動します。「開く」が表示されない場合はアプリのアイコンの上で右クリックしてメニューを表示し,「開く」を選ぶとポップアップに「開く」ボタンが表示されるのでこれを押して起動します。
6. Inkscape
Inkscapeはベクトル画像作成のためのドローイングツールです。あまり使わないのですが,なんとなくインストールしています。Inkscapeの公式サイトの上部のメニューからダウンロードをたどってarm64用のバイナリをダウンロードします。dmgファイルをマウントして,適当なディレクトリにコピーします。
7. QGIS
フリーとは思えない高機能なGISソフトです。特に新しい機能が必要ということはないので安定版をインストールします。公式サイトの「QGIS 3.40 LTRはmac用はありません。次のLTRは3.44なので3.44を を入手するのをお勧めします」と書いてあるのでregular version for macOSというボタンを押してダウンロードします。dmgファイルをマウントして,適当なディレクトリにコピーすればOKです。
8. VirtualBox
仮想マシンを動作させるための環境です。Oracleのサイトからダウンロードします。version 7.2でApple silliconに対応したようです。Apple silicon用のvirtualBoxのなかでintel用のOSが動くのかどうかちょっとわかりませんが,ダウンロードボタンを押してmacOS/Applesilicon hostsというリンクからダウンロードします。VirtualBox Extension Packは個人と教育用のライセンスということなので,こちらもダウンロードします。dmgファイルをマウントして,pkgファイルをダブルクリックしてインストーラを立ち上げてインストールします。拡張機能はファイルをダブルクリックすると勝手にインストールします。
9. ParaView
高機能な可視化ソフトです。ParaViewのダウンロードページで適当なバージョンを選んでダウンロードします。v6.0もでているようですが,メジャーバージョンになったばかりというのは情報も少なくて使い方を探すのも大変だろうと思ってv5.13をダウンロードしました。Versionのところでv5.13を選択し,そのすぐ下の右側のタブで「macOS Silicon」を選んで5.13.3のarm64.dmgをダウンロードしました。OSX11.0とOSX10.15の二種類がありますが,11.0がarm64用です。dmgをマウントして,適当なディレクトリにコピーすればOKです。
10. Xcode
App. Storeで検索して出てくるXcodeは最新のOS用ですが,Mac mini M4にはTahoeをインストールしたのでそのままインストールしてしまいます。ダウンロードがおわったら,App. Storeのアイコンが「開く」にかわるのでこれをクリックするとまた何かインストールするとか言ってきますが,先へすすめるととりあえず完了するようです。
11. gnuplot
これまでにインストールした何かのアプリケーションとの依存性によって既にインストールされていました。いきなりインストールする場合は,
brew install gnuplot
とやればOKです。
12. vlc
けっこう有名なメディアプレイヤーのVLC media playerをダウンロードしてインストールします。ダウンロードページの「ダウンロードVLC」の横の矢印を押してプルダウンメニューを表示してApple Silicon版を選択します。dmgファイルをマウントしてVLC.appを適当なディレクトリにコピーすればOKです。
13. ipe
以前に書いた通り,数式入りのフローチャートを描くためにipeを使っていました。そのため,これをインストールします。ipeの公式サイトでMac OS X binary packageという黒っぽいバーをクリックして隠れている部分を表示し,arm版のバイナリ(mac-arm.dmg)をダウンロードします。ダウンロードしたら,dmgファイルをマウントしてipe.appを適当なディレクトリにコピーします。
14. Raspberry Pi Imager
起動可能なUSBメディアを作ったりするときに便利なのでいつも使っています。ここからmacOS用をダウンロードして,dmgファイルをマウントしてimagerを適当なディレクトリにコピーしておきます。
15. App. Storeからインストール
・QRコードリーダー:App. Storeで検索して適当なものをインストールすればよいので,QR Journalをインストールしました。App. Storeで雲のマークをクリックすると勝手にApplicationフォルダにインストールされます。
・アーカイバー:The Unarchiverを検索して雲のマークをクリックして直接インストールしました。
・Exifエディタ:Photos Exif Editorを同様にインストールします。以前は有料だった気もするのですが,何か勘違いしているだけかも。
・マークシート作成ソフト:マークシートを作ってスキャナで読み取ってデータを読み取るソフトである「マークシートDIY」をインストールします。
・音楽プレイヤー:Pine PlayerとVOXをインストールします。
16. Canon GPS Log File Utility for macOS
CanonのEOS MにくっつけているGP-E2というGPSロガーのデータを取り込んでKMZファイル形式に変換するアプリです。GP-E2でログを取った場合,データを直接取り込めないため,このアプリがどうしても必要になります。
アプリがどこにあるのか,非常にわかりにくいのですが,ここからダウンロードできます。ダウンロードすると,gluim-1-0-3-10.dmg.gzというファイルができるので,これをダブルクリックして展開するとdmgファイルになります。このdmgファイルをマウントすると,GLUI103M.appというアプリが現れますが,これがインストーラなので,このアプリをダブルクリックしてインストーラを起動します。インストーラの指示に従って進めるとインストールが完了します。Applicationの下にCanon Utilitiesというディレクトリができて,そのなかにGPSLogFileUtilityというディレクトリがあり,そのなかのGPSLogFileUtility.appが目指すアプリです。
なんだかちょっと古いテイストのインストーラですが,現時点の最新のmacOSでも動くというのはありがたいことです。
17. XP Pen Deco 01V2
XP Penのタブレットのドライバです。仕事でいつも使っているのでドライバをインストールし忘れたりするとたいへんです。
XP Penのダウンロードページで左のバナーの「ダウンロード」を展開して,製品カテゴリとして「Decoシリーズ」を開いてDeco 01V2を選びます。Mac 10.13 or newerの欄にある新しそうなファイルをダウンロードします。zipファイルを展開するとdmgファイルがでてくるのでこれをマウントしてインストーラを起動してインストールします。「アプリケーション」のなかに「XPPen」というフォルダができてその下にアプリとアンインストーラがインストールされています。アプリを起動してタブレットを接続するとアクセシビリティへの接続の許可を求められるので許可をするとタブレットが使えるようになります。
18. darktable
写真のraw現象ソフトです。macOS用のバイナリはもはやarm64用しかないようです。ダウンロードページからmacOS用のバイナリをダウンロードしてdmgファイルをマウントしてアプリを適当なディレクトリにコピーします。起動すると,安全を検証できなかったので開いていません,というポップアップが立ち上がって起動できません。ポップアップは「完了」ボタンをおして終了し,システム設定の「プライバシーとセキュリティ」の下の方の「セキュリティ」に「"darktable.app"がブロックされました」と表示されているのでその横の「このまま開く」ボタンを押します。それでもあれこれ言ってきますが,あくまでも開くという意思表示をすれば起動できます。
19. Gmsh
有限要素法などのためのメッシュ切りのソフトです。ここからmacOS (ARM)用のdmgファイルをダウンロードしてマウントするといろいろとファイルが雑然と並んでいます。application_localの下にGmshというディレクトリを作って,dmgファイルのトップディレクトリ内のファイルを全て(ただし,Applicationsへのシンボリックリンクを除く) LocalDATA/application_local/Gmsh/以下にコピーします。
20. Audacity
waveファイルの編集ソフトです。公式サイトのトップにあるダウンロードボタンをおすとインストーラがダウンロードされますが,ここでダウンロードsれたpkgファイルをダブルクリックしてインストールするとMuse Hub.appというよくわからないものがインストールされます。特に使いたいものではないのでうっかりインストールしたら削除してしまいます。余計なものをインストールしないために,上部のバナーからDownloads > macOS > ARM 64 dmgとたどって,dmgファイルをダウンロードします。dmgファイルをマウントしたらアプリを適当なフォルダ(application_localなど)にコピーします。
1. Homebrewのインストール
以前にやっているのと同じですが,一応,メモしておきます。
1.1 ターミナル(iterm2でOK)を起動
1.2 シェルをtcshに変えているならbashと叩いてシェルをbashにする。
1.3 Homebrewのトップページに書かれているスクリプトを走らせる。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
1.4 インストールがおわったら,exitしてから.cshrcに
if($OSTYPE == "darwin") then
set path = (\
$HOME/bin \
/usr/local/sbin /usr/local/bin /usr/X11R6/bin \
/usr/bin /bin /usr/sbin /sbin \
/opt/homebrew/bin \
)
endif
を追加します。
いつからかわかりませんがhomebrewによってインストールされたコマンド類のインストール先が/opt/homebrew/binに変わったようで,このディレクトリへのパスを設定しておかねばなりません。これを知らなくてハマりました。
1.5 ツールやコンパイラをインストール
brew install XXX
としてXXXのところに以下のソフト名を書いてコツコツインストールします。
nkf, a2ps, aspell, neovim, cmigemo,
wget, wput, telnet,
mpack, lhasa,
iperf3,
dos2unix, mtools,
imagemagick, graphicsmagick, exiftool, ffmpeg, gmt, evince
gcc, lapack, cmake, r, rstudio, byacc, wxmaxima, scilab
2. Fortran preprocessor
fppという名前ですが,brewでfppをインストールするとfacebook path pickerというよくわからないものがインストールされてしまいますので手動でインストールするしかありません。以前にメモした通りなのですがもう一度メモしておきます。
2.1 ソースコードの入手
FreeBSDのdistfilesからソースをもらってきます。FreeBSDが手元にあるなら,
cd /usr/ports/devel/fpp/
make fetch
とやると/usr/ports/distfiles/fdfpp.tgzとして保存されます。このソースと/usr/ports/devel/fpp/files/以下にある3つのパッチファイルを使います。
2.2 パッチの適用
適当なディレクトリでソースを展開し,
cd fdfpp/
patch -p0 < (somewhere)/patch-src-Makefile.common
patch -p0 < (somewhere)/patch-sparc-Makefile
patch -p0 < (somewhere)/patch-Makefile
としてパッチをあてます。パッチをあてる順番は気にしなくてもよいのですが,なぜかpatchコマンドが終了せずまったくパッチがあたりません。apple謹製の/usr/bin/patchがダメなのかと思ってbrew install gpatchとしてGNUI patchをインストールしてみましたが,パッチがあたらないのは変わりません。
しょうがないので,パッチファイルを見ながら手動でパッチを当てました。なんのためにコンピュータを使ってるんだぁ,という気分になります。
2.3 make
fdfppディレクトリで
make bsd44
とやるとコンパイルをはじめますが,yaccでエラーが出てとまります。このときのmakeによってfdfpp/bsd44/Makefileというファイルができているのでこのファイルを編集します。変数名を定義しているところに
YACC = byacc
という行を追記して保存します。
cd fdfpp/bsd44/
make
としてbsd44ディレクトリ内でmakeをします。今度はエラーなくコンパイルができてfppという実行ファイルができています。
2.4 実行ファイルの保存
できたfppを適当な場所に保存しておきます。homebrewのインストール先にあわせて,
cp fpp /opt/homebrew/bin/
としました。
rehashすればちゃんとfppコマンドが使えるようになります。
3. Visual Studio Code (VSCode)
私自身はプログラムを書くときはemacsを使っていますが,業務上,VSCodeを使うということがあるのでインストールしておきます。MicrosoftのサイトからApple silicon用のバイナリをダウンロードします。tgzファイルを展開したらapplication_localに移動しておきます。起動してから左のメニューの田のようなところをクリックして,検索窓にmodern fortranと入力してfortranのエクステンションをインストールしておきます。ただ,以前と違って,extentionのmarket placeに登録されていない,ということで注意マークが表示され,installボタンを押すことができません。歯車のマークを押すとインストールという項目が現れるのでそれを選択すると,今度は,ポップアップで
'Modern Fortran' is an extension from an unknown source. Are you sure you want to install?
という注意喚起があります。とにかくインストールする,というボタンを押せばインストールされます。これを使うのは自己責任でやってね,ということです。
いずれにしても,自分で使う言語が基本的にfortranだから,ということでインストールしてます。
4. emacs
Quartzにネイティグに対応したバイナリをインストールします。
Emacs for Mac OS Xのサイトからバイナリをダウンロードします。トップページのダウンロードボタンを押すだけなのですが最新版が30.2になっていました。
いまだにwnn7で日本語変換をしているので,そのためにななたまご(wnn7egg)を動かす必要があります。常にwnn7eggをアップデートしてくださっているとてもありがたい方がいらっしゃるので,いつもその方が公開されているパッチを使わせていただいています。しかし,emacs 30むけのパッチはよくわからないこともあるというようなことを書いておられるのでemacs 29で使う方が安心な気がしました。
そこで,トップページのother versionsを押して,29.4-1をダウンロードしました。dmgファイルをマウントしてEmacs.appを適当なディレクトリ(application_localなど)にコピーしておきます。
5. Gimp
GimpのオフィシャルサイトからApple silicon用のバイナリをダウンロードしてdmgファイルをマウントします。中のGIMP.appを適当なディレクトリにコピーすればインストール完了です。野良アプリなので起動するときに文句をいわれるかもしれませんが,気にせず「開く」をおして起動します。「開く」が表示されない場合はアプリのアイコンの上で右クリックしてメニューを表示し,「開く」を選ぶとポップアップに「開く」ボタンが表示されるのでこれを押して起動します。
6. Inkscape
Inkscapeはベクトル画像作成のためのドローイングツールです。あまり使わないのですが,なんとなくインストールしています。Inkscapeの公式サイトの上部のメニューからダウンロードをたどってarm64用のバイナリをダウンロードします。dmgファイルをマウントして,適当なディレクトリにコピーします。
7. QGIS
フリーとは思えない高機能なGISソフトです。特に新しい機能が必要ということはないので安定版をインストールします。公式サイトの「QGIS 3.40 LTRはmac用はありません。次のLTRは3.44なので3.44を を入手するのをお勧めします」と書いてあるのでregular version for macOSというボタンを押してダウンロードします。dmgファイルをマウントして,適当なディレクトリにコピーすればOKです。
8. VirtualBox
仮想マシンを動作させるための環境です。Oracleのサイトからダウンロードします。version 7.2でApple silliconに対応したようです。Apple silicon用のvirtualBoxのなかでintel用のOSが動くのかどうかちょっとわかりませんが,ダウンロードボタンを押してmacOS/Applesilicon hostsというリンクからダウンロードします。VirtualBox Extension Packは個人と教育用のライセンスということなので,こちらもダウンロードします。dmgファイルをマウントして,pkgファイルをダブルクリックしてインストーラを立ち上げてインストールします。拡張機能はファイルをダブルクリックすると勝手にインストールします。
9. ParaView
高機能な可視化ソフトです。ParaViewのダウンロードページで適当なバージョンを選んでダウンロードします。v6.0もでているようですが,メジャーバージョンになったばかりというのは情報も少なくて使い方を探すのも大変だろうと思ってv5.13をダウンロードしました。Versionのところでv5.13を選択し,そのすぐ下の右側のタブで「macOS Silicon」を選んで5.13.3のarm64.dmgをダウンロードしました。OSX11.0とOSX10.15の二種類がありますが,11.0がarm64用です。dmgをマウントして,適当なディレクトリにコピーすればOKです。
10. Xcode
App. Storeで検索して出てくるXcodeは最新のOS用ですが,Mac mini M4にはTahoeをインストールしたのでそのままインストールしてしまいます。ダウンロードがおわったら,App. Storeのアイコンが「開く」にかわるのでこれをクリックするとまた何かインストールするとか言ってきますが,先へすすめるととりあえず完了するようです。
11. gnuplot
これまでにインストールした何かのアプリケーションとの依存性によって既にインストールされていました。いきなりインストールする場合は,
brew install gnuplot
とやればOKです。
12. vlc
けっこう有名なメディアプレイヤーのVLC media playerをダウンロードしてインストールします。ダウンロードページの「ダウンロードVLC」の横の矢印を押してプルダウンメニューを表示してApple Silicon版を選択します。dmgファイルをマウントしてVLC.appを適当なディレクトリにコピーすればOKです。
13. ipe
以前に書いた通り,数式入りのフローチャートを描くためにipeを使っていました。そのため,これをインストールします。ipeの公式サイトでMac OS X binary packageという黒っぽいバーをクリックして隠れている部分を表示し,arm版のバイナリ(mac-arm.dmg)をダウンロードします。ダウンロードしたら,dmgファイルをマウントしてipe.appを適当なディレクトリにコピーします。
14. Raspberry Pi Imager
起動可能なUSBメディアを作ったりするときに便利なのでいつも使っています。ここからmacOS用をダウンロードして,dmgファイルをマウントしてimagerを適当なディレクトリにコピーしておきます。
15. App. Storeからインストール
・QRコードリーダー:App. Storeで検索して適当なものをインストールすればよいので,QR Journalをインストールしました。App. Storeで雲のマークをクリックすると勝手にApplicationフォルダにインストールされます。
・アーカイバー:The Unarchiverを検索して雲のマークをクリックして直接インストールしました。
・Exifエディタ:Photos Exif Editorを同様にインストールします。以前は有料だった気もするのですが,何か勘違いしているだけかも。
・マークシート作成ソフト:マークシートを作ってスキャナで読み取ってデータを読み取るソフトである「マークシートDIY」をインストールします。
・音楽プレイヤー:Pine PlayerとVOXをインストールします。
16. Canon GPS Log File Utility for macOS
CanonのEOS MにくっつけているGP-E2というGPSロガーのデータを取り込んでKMZファイル形式に変換するアプリです。GP-E2でログを取った場合,データを直接取り込めないため,このアプリがどうしても必要になります。
アプリがどこにあるのか,非常にわかりにくいのですが,ここからダウンロードできます。ダウンロードすると,gluim-1-0-3-10.dmg.gzというファイルができるので,これをダブルクリックして展開するとdmgファイルになります。このdmgファイルをマウントすると,GLUI103M.appというアプリが現れますが,これがインストーラなので,このアプリをダブルクリックしてインストーラを起動します。インストーラの指示に従って進めるとインストールが完了します。Applicationの下にCanon Utilitiesというディレクトリができて,そのなかにGPSLogFileUtilityというディレクトリがあり,そのなかのGPSLogFileUtility.appが目指すアプリです。
なんだかちょっと古いテイストのインストーラですが,現時点の最新のmacOSでも動くというのはありがたいことです。
17. XP Pen Deco 01V2
XP Penのタブレットのドライバです。仕事でいつも使っているのでドライバをインストールし忘れたりするとたいへんです。
XP Penのダウンロードページで左のバナーの「ダウンロード」を展開して,製品カテゴリとして「Decoシリーズ」を開いてDeco 01V2を選びます。Mac 10.13 or newerの欄にある新しそうなファイルをダウンロードします。zipファイルを展開するとdmgファイルがでてくるのでこれをマウントしてインストーラを起動してインストールします。「アプリケーション」のなかに「XPPen」というフォルダができてその下にアプリとアンインストーラがインストールされています。アプリを起動してタブレットを接続するとアクセシビリティへの接続の許可を求められるので許可をするとタブレットが使えるようになります。
18. darktable
写真のraw現象ソフトです。macOS用のバイナリはもはやarm64用しかないようです。ダウンロードページからmacOS用のバイナリをダウンロードしてdmgファイルをマウントしてアプリを適当なディレクトリにコピーします。起動すると,安全を検証できなかったので開いていません,というポップアップが立ち上がって起動できません。ポップアップは「完了」ボタンをおして終了し,システム設定の「プライバシーとセキュリティ」の下の方の「セキュリティ」に「"darktable.app"がブロックされました」と表示されているのでその横の「このまま開く」ボタンを押します。それでもあれこれ言ってきますが,あくまでも開くという意思表示をすれば起動できます。
19. Gmsh
有限要素法などのためのメッシュ切りのソフトです。ここからmacOS (ARM)用のdmgファイルをダウンロードしてマウントするといろいろとファイルが雑然と並んでいます。application_localの下にGmshというディレクトリを作って,dmgファイルのトップディレクトリ内のファイルを全て(ただし,Applicationsへのシンボリックリンクを除く) LocalDATA/application_local/Gmsh/以下にコピーします。
20. Audacity
waveファイルの編集ソフトです。公式サイトのトップにあるダウンロードボタンをおすとインストーラがダウンロードされますが,ここでダウンロードsれたpkgファイルをダブルクリックしてインストールするとMuse Hub.appというよくわからないものがインストールされます。特に使いたいものではないのでうっかりインストールしたら削除してしまいます。余計なものをインストールしないために,上部のバナーからDownloads > macOS > ARM 64 dmgとたどって,dmgファイルをダウンロードします。dmgファイルをマウントしたらアプリを適当なフォルダ(application_localなど)にコピーします。