handlename's blog

コード片など

homebrew ディレクトリを home ディレクトリ以下に移動したメモ

追記

こんなエントリを書いておいてなんですが、 結局 /usr/local 以下にインストールし直しました。

libディレクトリの位置が変わったりして、 正常にインストール出来ないパッケージがあるようなので。

brew doctor したときも、デフォルトの位置から移動していると次のような警告が出ます。

Warning: Your Homebrew is not installed to /usr/local You can install Homebrew anywhere you want, but some brews may only build correctly if you install in /usr/local. Sorry!

追記終わり

remote リポジトリを追加したり、自分で書いた Formula を commit したりしてたら brew update するたびにコンフリクトするようになってしまったので、入れなおすことにした。

ついでにホームディレクトリ以下に設置するにする。

/usr/local 以下の homebrew を削除

削除する前にインストール済みのパッケージをメモしておく。

$ brew list > ~/backup/homebrew/installed.tet

古い homebrew & インストール済みパッケージ を消す。 こちらのエントリの「Homebrewのアンインストール」を参考に。

rm する部分は念のためバックアップディレクトリに移動するだけにしておいた。

$ mkdir -p ~/backup/homebrew/usr/local
$ cd /usr/local
$ mv Cellar ~/backup/homebrew/usr/local
$ brew prune
$ rm `git ls-files`
$ mv Library/{Homebrew,Aliases,Formula,Contributions} ~/backup/homebrew/usr/local
$ rm -rf .git

パスが変わるので、インストール済みパッケージの再利用はしない。

~/.brew 以下に homebrew をセットアップ

こちらのエントリを参考に。

$ mkdir ~/.brew
$ curl -Lsf http://github.com/mxcl/homebrew/tarball/master | tar xz --strip 1 -C ~/.brew
$ export PATH=~/.brew/bin:$PATH
$ brew update

あとは必要なパッケージを brew install するだけ。

注意点

さきに古い homebrew (とそれでインストールしたパッケージ) を削除しておかないと、 brew install するときにライブラリその他を /usr/local/lib などに読みに行ってしまう。

当然古いパッケージを消した時に動かなくなってしまうので、 古いものは先に消さないといけない。