28 Homebrew とこんにちは

現在、Mac でフリーソフトのパッケージ管理というと、 既に使っている MacPorts 以外に、 Homebrew (日本語アクセス) が有名で、 両者が双璧らしい …というか、どちらかというと Homebrew の方が通りが良いらしい。

以前 Homebrew を試してみようとしたこともあったのだけれど、 MacPorts と干渉する可能性があるということと、 /usr/local に Homebrew の管理するもの以外を置くことを 避けさせるような雰囲気があって、 「変なの。それは自分の流儀に合わない。」 と考えて、結局は採用しなかった。

しかし、最近の学生の中には、Homebrew を使っている人がいて、 どうやら避けて通れそうもないので (うちの学生が使っているのは MacPorts である、という前提が崩れたということだ)、 知るために少し時間と労力を割くことに決めた。

UNIX の伝統はほとんど知らない (パスを通すとか、ユーザー管理とか) 人、 Mac を単一ユーザーのためのパソコンとして使う人が対象、 ということらしい。

…正直、おつきあいを避けたくなってきたのだけど、 ここは頭を切り替えて、 1台の Macを用意して、 MacPorts をアンインストールして、 /usr/local の下にあるファイルを全部削除して (いざとなれば自分でどこかに代替ディレクトリィを作れるだろう)、 普通にインストールした。

こうやってインストール
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Ruby のスクリプトを URL で指定して、それを実行するわけか。

brew doctor
でチェックする。

これまで MacPorts で入れたものを Homebrew で入れてみる。
brew install wget
brew install nkf
brew install lha
brew install lv
brew install gv
brew install netpbm
brew install ImageMagick --with-x11
brew install gnuplot
これらはスイスイとインストール出来た。 a2ps-j, jpeg2ps はなかった。 ははは (確かにマイナーなソフトかも)。

Emacs はむしろ簡単なんだっけ?
brew tap railwaycat/emacsmacport
brew install emacs-mac
brew linkapps
(「Macに最新バージョンのEmacsをインストール」 に載っていた。) -- ちゃんと動いた (簡単だ)。驚いたのは、brew doctor とすると、 PATH で、 /usr/bin/usr/local/bin よりも前になっていて、 インストールした emacs が起動しない、と教えてくれたこと。 すごいね。
rsync -av /Applications/Emacs25.1.app/Contents/Resources/site-lisp/なんとか \
 /usr/local/share/emacs/site-lisp
として /usr/local/ の下に何か書き足しても、 特に叱られなかった。

/usr/local の下に Homebrew 関係でないものは何も置けない、 というわけではないみたい。


ffmpeg とか xpdf はどうしようか (他のものと関係するので少し調査してから)。

gcc とか gfortran はどうしようかな。 普通に brew install 何某 で良いようだけど、 インストールされるバージョンは? -- 今だと version 6 みたい (MacPorts だとバージョンを指定しないといけない, gcc49, gcc5, gcc6, gcc7 とか)。

Eigen はどこにおこうかな。 brew install eigen で良い、という説がある。 何をするんだろう?(やってみたら、/usr/local/include/eigen3 の下 に Eigen とか置いてある。 うーん、、、ちょっとずつ趣味がずれているなあ。)

GLSC はどこに置こうかな。 これはさすがに Homebrew でインストールされないのか。 されるようにしてしまう、というのもあるかな。 それとも、上山先生流でホームディレクトリィの下?


Octave をやってみよう。 brew install octave としたら、それじゃダメだと言われた。
brew install homebrew/science/octave
gmp, mpfr, gcc6, … 色々インストールしだした。ほほ〜。 色々気になるメッセージを吐く。ログを保存しておくべきかも。 出来たものはちゃんと動く模様。


emacs, octave という自分にとっての厄介系がすんなり行ったのは好印象だ。 ついでに gcc, gfortran 入ってしまった。


しばらくは MacPorts Mac と Homebrew Mac、両方使って比べてみよう。


(2017/3/17) 自分でインストールしたものを Homebrew に認めさせるにはどうすれば良いか、 大体理解できた。/usr/local の下に置くものを /usr/local/Cellar/ソフトの名前/バージョン番号 の下に置き、
 brew link ソフトの名前
を実行して、Homebrew にリンクをはらせる。

例えば glsc-3.5.a の場合は、 普通は /usr/local/bin/g_out, /usr/local/includ/glsc.h, /usr/local/includ/glsc_fnt.h, /usr/local/lib/libglscd.a, /usr/local/lib/libglscs.a をインストールする。

  1. /usr/local/Cellar/glsc/3.5.a というディレクトリィを作る。 その下に bin, include, lib という ディレクトリィを作り、ファイルを移す。
    mkdir -p /usr/local/Cellar/glsc/3.5.a/{bin,include,lib}
    for i in bin/g_out include/glsc.h include/glsc_ftn.h lib/libglscd.a \
      lib/libglscs.a
    do
      mv /usr/local/$i /usr/local/Cellar/glsc/3.5.a/$i
    done
    
  2. リンクをはる。
    brew link glsc
    

(2016/3/17) ghostscript で日本語の表示が出来なかった。 「Ryumin-Light を使う部分が化ける」という良くあるやつだ。 今時 Ryumin-Light を使おうとするソフトを使う方が悪いのかもしれない。 面倒だったので、 自分で /usr/local/share/ghostscript/9.20/Resource/{Font,CIDFont} をいじった。それについては brew doctor は文句を言わなかった (/usr/local/share/ghostscript 自体がシンボリックリンクであるせいかな?)。

Ghostscript どころか PostScript も、 そろそろ「デフォールトで他人には教えない」ものになるのかな。 (何でも PostScript で出力する癖が抜けないけれど、 その辺も見直す必要があるのかもしれない。)

桂田 祐史
2018-03-01