Homebrew のエラー

いつものように Homebrew をアップデートしようとすると以下のようなエラーが吐き出されました。

Warning: The /usr/local directory is not writable.
Even if this directory was writable when you installed Homebrew, other
software may change permissions on this directory. Some versions of the
"InstantOn" component of Airfoil are known to do this.

You should probably change the ownership and permissions of /usr/local
back to your user account.

Warning: Your Homebrew is outdated.
You haven't updated for at least 24 hours, this is a long time in brewland!
To update Homebrew, run `brew update`.

なので調べてみると

$ ls -lad /usr/local
drwxr-xr-x  17 root  wheel  578  2  3 06:02 /usr/local

とのこと。では、所有者をユーザーに替えてみる

$ sudo chown -R `whoami` /usr/local
$ ls -lad /usr/local
drwxr-xr-x  18 userName  wheel  612  3  1 02:55 /usr/local

すると、今度は違うエラーが吐き出される

Warning: You have uncommitted modifications to Homebrew
If this a surprise to you, then you should stash these modifications.
Stashing returns Homebrew to a pristine state but can be undone
should you later need to do so for some reason.
    cd /usr/local/Library && git stash && git clean -d -f

Warning: Your Homebrew is outdated.
You haven't updated for at least 24 hours, this is a long time in brewland!
To update Homebrew, run `brew update`.

エラー内容の指示に従って

$ cd /usr/local/Library && git stash && git clean -d -f
$ brew update

を実行してすべて解決!

先日の OS X Mavericks 10.9.2 アップデートで書き変わっちゃったのかな。

brew link エラー

Xcode 5.0.1 からコマンドラインツールのインストールが変更になったのかな? これまでだったら「環境設定」からインストールできていたのに出来なくなっていました。と、云うことでコマンドラインからインストール。

$ xcode-select --install

コマンドラインツールのインストール

このコマンドを実行すると「コマンドを実行するには、コマンドライン・デベロッパ・ツールが必要です。ツールを今すぐインストールしますか?」と聞いてくるので「インストール」ボタンを押してインストールを完了。

Xcode がアップデートされると毎回表示されるエラーメッセージ。

Warning: You have unlinked kegs in your Cellar Leaving kegs unlinked can lead to build-trouble and cause brews that depend on those kegs to fail to run properly once built. Run brew link on these:

git

リンクが切れてるよ! ってことなので $ brew link git を実行すると

Error: Could not symlink file: /usr/local/Cellar/git/1.8.4.3/bin/git-upload-pack Target /usr/local/bin/git-upload-pack already exists. You may need to delete it. To force the link and overwrite all other conflicting files, do: brew link --overwrite formula_name

To list all files that would be deleted: brew link --overwrite --dry-run formula_name

こんなエラーが出たので

$ brew link --overwrite git

とやって強制的に書き換えました。あとは $ brew doctor とやって先生に診てもらって異常がなければ大丈夫。

MacPortsをクリーニング

MacPortsで入れているソフトウェアをアップグレードしていくと、その残骸であるテンポラリファイルや古いバージョンで塵が積もるようにディスクスペースを圧迫してきます。たまにクリーニングしてあげることですっきりさせてあげましょう。

まずはディスクスペースをどれくらい使っているかの確認

du -sh /opt

次にテンポラリファイルの整理

sudo port clean –all installed

そして古いバージョンの整理

sudo port -f uninstall inactive

あまりソフトウェアを入れていない私の環境でも591M => 347Mに節約できることが出来ました。アップグレードの度にクリーニングを行っているのでこれくらいで収まっていると思います。

command拡張子が便利

シェルスクリプトについて調べていたら偶然にcommnad拡張子が使えることを知りました。shの代わりにcommandと付けておくとスクリプトファイルをダブルクリックするだけでシェルスクリプトが実行されるのです。sudo認証が必要な時は、ターミナル.appが自動的に起動してパスワードを要求して入力が終わるとウインドウが閉じます。

shellscript.command

試しに先日エントリーした「Snow LeopardでVolume Logicを使う」の一連のファイル操作をシェルスクリプトで書いてみました。