Mac OS X El Capitan にしたらSassとCompassがなくなっていた

MacのOSをEl Capitan(10.11)にアップデートすると、sassをコンパイルできなくなっていました。
原因と、再インストールした手順をメモ。

まさかインストールしたつもりだけで入れ忘れていたかと、ターミナルからコマンドで調べてみると
SassもCompassもなくなっていました。
いやいやおかしい、確かにインストールはしたはず。

<br />
$ sass -v<br />
-bash: sass: command not found<br />
$compass -v<br />
-bash: compass: command not found<br />

それならと、インストールし直そうとするとパーミッションのエラーでとまってしまいました。

<br />
$ sudo gem install sass<br />
Password:<br />
Fetching: sass-3.4.21.gem (100%)<br />
ERROR:  While executing gem ... (Errno::EPERM)<br />
    Operation not permitted - /usr/bin/sass<br />

確認してみたら、/usr/bin のディレクトリは共有とアクセス権を確認するとログイン中の自分のアカウントがない。(読み書きの権限が与えられてない)

/usr/bin/の共有とアクセス権

ディレクトリを変更してインストールする

調べてみると、同じよう困っておられる方がいて、解決方法を紹介くださっていました。

このように、インストール先に別のディレクトリを指定すればOK

<br />
$ sudo gem install -n /usr/local/bin sass<br />
$ sudo gem install -n /usr/local/bin compass<br />

ちなみに /usr/local/bin は、npmとかgulpなんかがインストールされている場所でした。
確かにここなら、インストールデータが変にバラけて管理が面倒ということもなさそう。

さっそく /usr/local/bin へのインストールを試してみると、うまくいきました。

<br />
$ sudo gem install -n /usr/local/bin sass<br />
Password:<br />
Successfully installed sass-3.4.21<br />
Parsing documentation for sass-3.4.21<br />
Installing ri documentation for sass-3.4.21<br />
1 gem installed<br />
$ sass -v<br />
Sass 3.4.21 (Selective Steve)<br />

Compassのほうもばっちり

<br />
$ sudo gem install -n /usr/local/bin compass<br />
    Compass is charityware. If you love it, please donate on our behalf at http://umdf.org/compass Thanks!<br />
Successfully installed compass-1.0.3<br />
Parsing documentation for compass-1.0.3<br />
1 gem installed<br />
$ compass -v<br />
Compass 1.0.3 (Polaris)<br />
Copyright (c) 2008-2016 Chris Eppstein<br />
Released under the MIT License.<br />
Compass is charityware.<br />
Please make a tax deductable donation for a worthy cause: http://umdf.org/compass<br />

参考;
OS X 10.11 (El Capitan) でSASSがインストールできない場合の対処法 – Qiita
OS X El Capitanでsassとcompassが消えた時にやった対処法

SIPの影響だった

後日談ですが、この症状はMacのセキュリティ強化のため導入されたSIPの影響でした。

MacのセキュリティSIPを解除する

SIPは、/usrディレクトリへのアクセスは遮断しますが/usr/localはOKなのでいけたんですね〜

関連記事