Mavericksへのアップデートではまった点

Mavericks

遅ればせながら、開発で使用している MacBook Pro を Mountain Lion から Mavericks にアップデートしました。

アップデートした日は、たまたま海の日でした。Mavericksにぴったりです。
(「Mavericks」というのは、北カリフォルニアのサーフィンの名所らしいです。)

それにしても、Mac OS のアップデートは結構大変ですね。
結局、ほぼ丸1日かかってしまいました。
Windowsのスムーズさが懐かしくなります。

次の Mac OS X Yosemite の時も役立ちそうなので、はまった点をまとめておきます。

なお、ほとんどの内容は開発者向けです。

「残り1分」問題

Mavericksへのアップデートを実行して「残り1分」の表示が出たのですが、その状態から1時間ほど経って終わりませんでした。

ググってみると、Apple製品ではよくあることのようです。

その後、さらに1時間ほどしたところで無事に終わりました。(合計で約2時間)

なお、電源オフ、オンしたという話もありますが、辛抱強く待った方が良いと思います。

gitが入る

Mountain Lion では、Homebrewからgitを入れたのですが、Mavericksではデフォルトで入っていました。

$ which git
/usr/bin/git

$ git --version
git version 1.8.5.2 (Apple Git-48)

Homebrewなどで入れている場合はパスの指定で注意が必要です。

Homebrewで入れたモジュールが使えない

どうやら /usr/local/bin/usr/local/optシンボリックリンクが消されてしまったようです。

以下のコマンドで復活しました。

$ brew list | xargs brew unlink
$ brew list | xargs brew link

なお、

Warning: readline is keg-only and must be linked with --force

といったワーニングが出る場合がありますが、その場合は以下のように --force オプション付きで個別にリンクする必要があります:

$ brew link readline —force

参考: Bureimono stdio.h: OS X Mavericks にアップデートしたら brew でいれた諸々へパスがおかしくなった

自動起動設定が消えている

~/Library/LaunchAgents に入れた自動起動設定が消えてしまうようです。

僕の環境ではMongoDBの設定が消えていました。

再設定する必要があります。

NodeJS関連

NodeJSはnaveで入れているのですが、naveのシンボリックリンクも消えていたので、付け直しました:

$ ln -s /usr/local/opt/nave/nave.sh /usr/local/bin/nave

でも、まだnpmが使えません。

naveの環境が壊れている感じがするので、再設定することにしました:

$ nave usemain 0.10.8

これで、npmコマンドも使えるようになりました。

Cordova

cordovaコマンドも使えなくなっていました。

npmで入れていたので、再インストールすることにします:

$ npm install -g cordova@3.4.1-0.1.0

これで使えるようになりました。

Ant

Apache Ant は、Mountain Lion にはデフォルトで入っていたようですが、Mavericksでは使えなくなりました。

そこで、Homebrewでインストールします:

$ brew install ant

php.iniが消えた

WordPressのサイトを起動してアクセスしようとしたところ、ブラウザで「データベース接続確立エラー」が出ました。

調べてみると、/etc/php.iniファイルがなくなっていました。

仕方がないので、Time Machine から取り出して戻したところ、正常にアクセスできました。

やはり、バージョンアップ前のバックアップは必須ですね。

追記

後で気づいたのですが、php.iniファイルはphp.ini-5.2-previousという名前に変更されて残っていました。失礼しました。

あと、PHPのバージョンが上がっているので、php.ini.defaultとの差分を取って内容を見直した方が良いでしょう。

Wi-Fiにつながっているのにビックリマークが付く

Mavericksにアップデートした後、Wi-Fiにつながっているのに、Wi-Fiアイコンがグレー表示になり、ビックリマークが表示されるようになりました。

Macを再起動しても直りません。

ググってみると、いくつか解決策が見つかったのですが、以下の方法が簡単そうだったのでやってみました:

  1. 以下の2つのファイルをバックアップ(またはリネーム)。

    /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist /Library/Preferences/SystemConfiguration/preferences.plist

  2. Macをリブート

これで直りました。

なお、この方法だとネットワーク設定がリセットさせるので注意してください。

参考: Wifi Greyed out with exclamation mark, but wifi... | Apple Support Communities

ちなみに、Wi-Fi関連については、7月1日にリリースされた Mavericks v10.9.4 で、Wi-Fi接続に関する問題が修正されたようです。

この問題に関してはネットで騒がれていて、Windowsに鞍替えした人も出たようなので、今頃アップデートするぐらいでちょうど良かったのかもしれません。

参考: OS X Mavericks v10.9.4 アップデートについて

まとめ

今回、初めて Mac OS のバージョンアップを行ったわけですが、そこで学んだことをまとめておきます。

  • Mac OS のバージョンアップでは、シンボリックリンクが勝手に削除されることがある。
  • Mac OS の新バージョンでは、通常の使用に支障をきたすほどの致命的なバグが残っている場合がある。

これらを踏まえて、以下のことを推奨します。

  • バージョンアップ前のバックアップ取得は必須。バックアップなしで行うのは自殺行為に近い。設定ファイルをコピーしておくと復旧作業がはかどる。
  • リリース後、しばらく様子を見てからバージョンアップするべき。特に、致命的なバグがないか、事前にしっかり調べた方が良い。

まあ、他のOSでも似たようなことが言えるのですが、Mac OS の場合はさらに注意した方が良いと思います。


さて、時代はもう次のバージョン Yosemite に移りつつありますね。

Mavericks では、正直 Mountain Lion との違いをあまり感じませんが、Yosemite では大幅な変更が入りそうですね。

その分、不具合も多くなりそうなので、バージョンアップはまた1年後になるかもしれません。


追記:コンピュータ名の設定が消える

後で気づいたのですが、コンピュータ名の設定が消えていました。

$ hostname
localhost

再設定する必要があります。

追記:KeyRemap4MacBook でEjectキーの設定が効かなくなった

KeyRemap4MacBookというアプリでEjectキーをForward Deleteに変更していたのですが、それが効かなくなりました。

調べてみると、KeyRemap4MacBookは「Karabiner」という名前に変わっていました。

そしてEjectキーを変更するのに「NoEjectDelay」というアプリを入れていたのですが、このアプリはOSがバージョンアップすると、それに対応したバージョンをインストールする必要があるようです。

NoEjectDelayをアップデートして解決しました。