Yak shaving in Yosemite


yak shaving は、ようするに「ある問題を解こうと思ったら別の問題が出てきて、それを解こうと思ったらさらに別の問題が出てきて…」ということが延々と続く状況を表しています。ちなみに、ヤクとは毛が長い、牛の一種です。

yak shaving で人生の問題の80%が説明できる問題 ─ bkブログ

全国のみんな! OSX を Yosemite にアップグレードしたかい! 人柱ヨロシクで俺は早速アップグレードしたぜ、ポチッとな! そして毎日のようにヤク刈りをしてるんだ、今日も土曜日は週末だっていうのに朝からヤクの毛満載だ、ハハッ

というわけで、Yosemite にして個人的にハマったところをメモっておきます

インストール中残り1分で止まって時間がかかる

つらぽよ

Yosemiteをインストールする前に/usr/localをどこかへ退避して時間短縮(ただしインストーラ任せの方が安全) に詳しく書いてるけど、OSX 標準のパスじゃないパスに置かれてるファイルはインストーラが一度どっかに避けて元に戻す、しかもそれをファイルシステム単位じゃなくファイル単位でやるからディスクがランダム read になって結果的に遅いとかそんなのだと思う。

homebrew を使ってると /usr/local 以下にいろいろ入るので以下略。

まあこれは /usr/local を待避しなくても待ってれば解決する。インストーラー画面の上方にメニューが出ててそこからログが見られるので、それを確認すると良い。フリーズしているわけじゃないのがわかるので精神上安心します。結果的に、アップデート作業に 2時間弱かかりました。

/usr/local/bin に PATH が通ってなくていろいろコマンドが動かない

これははまった。

zshrc で /usr/local/bin に PATH を通してるのに、zshrc を読み込んだ後も環境変数から綺麗さっぱりその PATH が消えてる

結果的には https://github.com/Homebrew/homebrew/issues/29843 このスレで話題になってる現象で、iTerm2 固有の不具合? による。iTerm2 のバージョンを最新にしたら直った。古い iTerm2 を使ってたのが原因

reattach-to-user-namespace が Yosemite で動かない

reattach-to-user-namespace: unsupported new OS, trying as if it were 10.6-10.9

こんなログが出てきて reattach-to-user-namespace が動かなかった。これも reattach-to-user-namespace が古かったのが原因。Yosemite が β の段階ですでに fix されていた。brew upgrade して解決。

先の iTerm2 の件もそうだが、現象を Google で検索してもβの頃の上方しか出てこない類は、その間に不具合修正されてる可能性が高い、ので対象のソフトウェアが自分の物が古いかもしれないと疑ってかかると吉。iTerm2 とか自動アップデートにしてるから平気だもんねーと思ってたけど、何かの理由でアップデートされてなかったってのが自分のケース。

iPhone アプリをビルドしたら iPhone シミュレータが真っ黒、動かない

ゲラゲラポーゲラゲラポー

どうやら Yosemite にすると Xcode を最新版の 6.1 にしてビルドしてあげないと、シミュレータが動かないっぽい。Xcode 6.1 にしたら、直った。

ただ、Xcode 6.1 は 10/18 13:00 JST 現時点で App Store からまだダウンロードできない。そして iOS Dev Center にいくと一見 DL できそうにみえるが、App Store に飛ばされるので 6.0 が落ちてくる。

が、Looking for an older version of Xcode? のリンクを辿ると・・・

あら、最新版があるじゃありませんか。

というわけでこれを使う。

自分は RubyMotion を使ってることもありますが、ターゲットの SDK バージョンを 8.1 に変更してビルドし直したらきちんと動きました

Ruby の Bundler が native extension のところで止まる

Yosemite にしたかどうかは不明だけど、bundle install すると

Gem files will remain installed in /Users/naoya/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/ffi-yajl-1.0.2 for inspection.

こんな感じのエラーが出て bundler がうまく動かなくなってしまった。

該当のエラーになってる gem を

$ gem install ffi-yajl

と直接入れることで、ビルドしなおされて正常に動作するようになった

Dropbox のコンテキストメニューがなくなった

コンテキストメニューから公開URLを取得したりする Dropbox の機能が使えなくなった。よくよくみると Dropbox のファイル同期されたときのファイルについている同期マークなんかもなくなってる。

  • どうやら Dropbox の安定版である 2.10 は Yosemite 向けの fix は施されていない
  • Experimental Build の 2.11 に Yosemite fix が入ってる

https://forums.dropbox.com/ で 2.11 のビルドがダウンロードできるスレッドがよく立ってるのでそこから持ってきて、2.11 に upgrade して OS を再起動したら直った。

T.B.D.

ほかにもなんか見つかったら追記していきます

Yosemite でのヤク刈りに必要なたった一つのもの

アップル様への愛