Web エンジニアが macOS Sierra にアップグレードしてやったこと

Posted on

個人で使っている MacBook Air を OS X El Capitan から macOS Sierra にアップグレードしました。 Web 系の開発をするにあたって、いくつか作業が必要だったのでメモを残しておきます。

Command Line Tools のインストール

Xcode の Command Line Tools をインストールし直します。 OS をアップグレードすると旧バージョンは削除されるようで、毎回これにハマっています。

$ xcode-select --install

Command Line Tools は /Library/Developer/CommandLineTools にインストールされます。

Homebrew を使えるようにする

El Capitan にアップグレードした際に Homebrew でハマったので、念のため brew doctor を実行したらいくつか Warning が出ました。

$ brew doctor
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry and just ignore them. Thanks!

Warning: /usr/local is not writable.

You should change the ownership and permissions of /usr/local
back to your user account.
  sudo chown -R $(whoami) /usr/local

Warning: /usr/local is not writable.
Even if this directory was writable when you installed Homebrew, other
software may change permissions on this directory. For example, upgrading
to OS X El Capitan has been known to do this. Some versions of the
"InstantOn" component of Airfoil or running Cocktail cleanup/optimizations
are known to do this as well.

You should change the ownership and permissions of /usr/local back to
your user account.
  sudo chown -R $(whoami) /usr/local

Warning: You are using OS X 10.12.
We do not provide support for this pre-release version.
You may encounter build failures or other breakages.
Please create pull-requests instead of filing issues.

アップグレードによって /usr/local のオーナーが root に変わったようなので、自分のアカウントに戻しておきます。

$ sudo chown -R $(whoami) /usr/local

最後に出ている "Warning: You are using OS X 10.12." は対応されるのを待つしかないですね。

影響を受けなかったもの

ホームディレクトリにインストールしているものは影響を受けませんでした。

  • rbenv (Ruby)
  • ndenv (Node.js)
  • JDK (Java)

macOS Sierra から Java が同梱されなくなりましたが、自分でインストールした Oracle Java はそのまま残っていました。

QuarantineRoot を確認する

El Capitan から root 権限でも /bin, /sbin, /usr, /System に書き込めないようになりました。いわゆる rootless と呼ばれているものです(正式には System Integrity Protection という機能です)。

アップグレードすると保護されたディレクトリに存在する Apple 以外のファイルが次のディレクトリに移動させられます。

/Library/SystemMigration/History/Migration-<UUID>/QuarantineRoot

El Capitan からアップグレードした場合は影響は少ないと思いますが、Yosemite からアップグレードした場合は QuarantineRoot に重要なファイルが含まれていないか確認しておきましょう。

まとめ

El Capitan のときに比べれば、大きな変更もなくすんなりとアップグレードできました。これからアップグレードする方の参考になれば嬉しいです。