MacPortsからHomebrewに乗換え
adComputerDevelopmentemacsMacmigemoTwitterwanderlust手順
Software Design 2011年12月号の特集「エンジニアの能力を引き出すMac活用術」のなかで、クックパッドでは、以前パッケージ管理にMacPortsを使っていたが、今はHomebrewでやっているとの記述を見つけたので、何人目の記事かはわからないが記録を残しておくことにした。
mac ports やめました! ー homebrew で快適 OSX 生活! - TokuLog 改メ tokuhirom’s blog http://d.hatena.ne.jp/tokuhirom/20100625/1277435268
私にとってのポイントは、Emacs環境を維持することになるので、Emacsで導入しているlispのうち、MacPorts由来のプロダクトに動作に影響が出るものをインストールできることをひとまずの目標とした。
影響が出そうなもの
Emacs本体
Cocoa Emacs に migemo をインストールで整理したとおり、.emacs.d/lisp配下にlispはインストールしてあり、また.emacs.d/init.elでパスを通す設定をしているの、EmacsをMacPorts由来のものに入れ替えさえすれば、lispは動作するはず。
Migemo
Cocoa Emacs に migemo をインストールでインストールしたとおり、migemoをインストールしていたが、Formulaが見あたらないので、「cmigemo」をインストールすることにした。それに伴い、.emacs.d/init.elの記述を一部変更した。
auto-install.el
動作には、「wget」が必要なのでhomebrew環境でインストールする。
Wanderlust
HTMLメールを表示する際に、「w3m」を使っている。 ログイン時のstarttlsのために「gnutls」を使っている。 それぞれhomebrew環境でインストールする。
twittering-mode
twittering-mode更新でOAuth認証で整理したとおり、OAuth認証をするのに「GnuPG」を使っている。 タイムライン取得に「curl」を使っている。 それぞれ、homebrew環境でインストールする。
MacPortsアンインストール
以上を整理した上で、MacPortsをアンインストールする。 手順はMacPorts Guideのアンインストール手順のとおりに実施した。 おしまい。 インストールパスをいじっていないので特に問題なく終了。
Homebrewをインストール
Installation - Homebrew - GitHubを参考にターミナルから以下のコマンドを実行する。 Xcodeが必要になるので、新規に構築する場合には忘れずに…(未来の自分に向けて)
$ ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"
途中で何度か「Press enter to continue」で止まるが、その度にEnterキーを押す。
==> Installation successful!
が表示されれば終了。
その後は、上記で整理したパッケージを順次インストールしていく。 もともとMacにインストールされているものはそのまま使うというコンセプトなので、環境構築までの時間が短くてすむのがメリットなんだねというのを体感できます。
w3mで苦戦
w3mのインストールで苦戦しましたが、Lion+homebrew で w3m が動かなかったのがなんとかなったヒャッハー: 麦汁三昧を教えていただいて、こちらの情報を参考に手順を実施しました。
w3mが依存しているbdw-gcのバージョンを7.2alpha6にすればよいとのことで、bdw-gcのFormulaを調べてみると
require 'formula'
class BdwGc < Formula
homepage 'http://www.hpl.hp.com/personal/Hans_Boehm/gc/'
if ARGV.build_devel?
url 'http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-7.2alpha6.tar.gz'
md5 '319d0b18cc4eb735c8038ece9df055e4'
version '7.2alpha6'
else
url 'http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-7.1.tar.gz'
md5 '2ff9924c7249ef7f736ecfe6f08f3f9b'
end
# patch to fix inline asm errors with LLVM, present in upstream SVN
# some directory restructuring between 7.1 and 7.2a6 force us to have two
# versions of the same patch
def patches
if ARGV.build_devel?
DATA
else
{ :p0 => "https://trac.macports.org/export/86621/trunk/dports/devel/boehmgc/files/asm.patch" }
end
end
def install
# ucontext has been deprecated in 10.6
# use this flag to force the header to compile
ENV.append 'CPPFLAGS', "-D_XOPEN_SOURCE" if MacOS.snow_leopard?
system "./configure", "--disable-debug",
"--disable-dependency-tracking",
"--prefix=#{prefix}"
"--enable-cplusplus"
system "make"
system "make check"
system "make install"
end
end
(…略)
となっており、「if ARGV.build_devel?」の記述から
$ brew install --devel bdw-gc
とすれば、狙ったバージョンがインストールできることがわかりました。
w3mも上記の記事の記載通りにインストールしてうまくいきました。
.emacsの修正
migemo→cmigemo
migemoをcmigemoに変更したので、コマンドとコマンドオプション部分の記述を変更している。変更前
(setq migemo-command "migemo")
(setq migemo-options '("-t" "emacs"))
変更後
(setq migemo-command "cmigemo")
(setq migemo-options '("-q" "--emacs"))
emacs-w3m
MacPortsでは/opt/local/bin配下にコマンドが配置されるが、Homebrewは/usr/local/bin配下に配置される。 よって、コマンドの在処の記述を変更。
変更前
(setq w3m-command "/opt/local/bin/w3m")
変更後
(setq w3m-command "/usr/local/bin/w3m")
Emacsテクニックバイブル : 作業効率をカイゼンする200の技Amazonで確認する →
Emacs LISPテクニックバイブルAmazonで確認する →
