文系プログラマによるTIPSブログ

文系プログラマ脳の私が開発現場で学んだ事やプログラミングのTIPSをまとめています。

OS X El Capitanインストール後のエラー諸々の解決

い   つ   も   の


f:id:treeapps:20170829002500p:plain

※ 間違いもあるかと思いますが、随時修正してます

恒例のmac OSアップデート後のトラブル解決まとめです。随時更新していきます。

エラー集

homebrewが動かない

brew updateで以下のエラーがでる。

tree-no-iMac:study-hugo tree$ brew update
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
Stashing your changes:
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
Error: Failure while executing: git stash save --include-untracked --quiet

原因はXcode7とCommand Line Toolsがインストールされていないため。

Xcode

App StoreからXcode7をインストール。(3.9G程度あるため非常に時間がかかる)

Xcode7用Command Line Tools
  1. Xcodeを起動。
  2. メニューバー
  3. Open Developer Tools
  4. More Developer Tools...
  5. ログイン(iCloudのID/PASS)
  6. Command Line Tools OS X 10.10 for Xcode 7の+ボタンをクリック
  7. Command_Line_Tools_OS_X_10.10_for_Xcode_7.dmg をDL +インストール

インストール後、brew updateする。

tree-no-iMac:study-hugo tree$ brew update
Error: 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.
  sudo chown -R $(whoami):admin /usr/local

しかしエラーになる。末尾に「sudo chown -R $(whoami):admin /usr/local」というコマンド実行してねー、と書かれてるので、

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

これを実行する。この後に brew updateで、ようやく成功。


ちなみに「You should probably change the ownership and permissions of /usr/local back to your user account.」と言われたのは、El Captanアップグレード後に、/usr/localのユーザ:グループの設定が変わってしまった(と思われる)ため、sudoが無いと触れないから、sudoなくても実行できるように「sudo chown -R $(whoami):admin /usr/local」してねー、と言っているのかと思われます。

MySQL v5.6

homebrewの作業完了後にローカルにinstallしたmysqlでselectした時に以下のエラーが発生します。

mysql> select * from t;
ERROR 1017 (HY000): Can't find file: './test/t.frm' (errno: 13 - Permission denied

これは前述のhomebrewの作業の最後で行った

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

これが原因で、mysqlフォルダの権限が_mysql:_mysqlでなくなってしまった事に起因します。

なので、権限を元に戻してあげます。私の環境では以下を実行し、権限を元に戻し、環境設定のmysqlペインから再起動し、正常に実行できるようになりました。(my.cnfの設定等に依存するので適宜権限を元に戻して下さい)

% sudo chown -R _mysql:_mysql /var/lib/mysql
% sudo chown -R _mysql:_mysql /usr/local/mysql-5.6.26-osx10.8-x86_64/

hugo v0.14

「brew install hugo」でインストールしたhugoが起動しません。正確には、実行はできるが処理が全く進まない感じです。

前述のhomebrewの問題後にbrew uninstall hugo -> brew install hugoしたら起動できるようになった。(再インストール不要かも)

/usr/配下にあったフォルダがごっそりなくなってる

例えば私の場合はvagrant(Vagrantfileとか)・各ミドルウェアのシンボリックリンク等を /usr/直下 に置いてたのですが、El Capitanにアップしたらごっそり消えていて卒倒しました。

慌ててfindしたら以下に自動的に移動されてました。死ぬかと思いました。

tree-no-iMac:usr tree$ sudo find / -name "vagrant" -type d
/Library/SystemMigration/History/Migration-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/QuarantineRoot/usr/vagrant

全く問題無く動作したもの

  • Sublime Text 3
  • vagrant 1.7.4
  • Virtual Box v5.0(但しVagrant経由での使用のみしか動作確認してません)
  • iTerm2 v2.1.3
  • Audirvana Plus v2.2.4
  • Tweet Bot v2.0.4
  • Skitch v2.7.8
  • cooviewer v1.2b24
  • Photoshop Elements v13
  • Avira Free v3.2.0.22
  • Atom v10.0.19
  • Eclipse LUNA

※ cooviewerはフルスクリーンモードで起動しないかと思ったのですが、今日試したら起動しました。(以前試した時に何故フルスクリーンモードで起動しなかったのか不明・・)

未解決

XtraFinder

XtraFinder adds Tabs and features to Mac Finder.

SIP問題が影響していて起動しません。

残念ながら根本的な対応は諦めたようで、現在オフィシャルサイトに行くと「SIP無効にしてね!」と促されます。TotalFinderも同様のようです。

Safari + SIMBLGesture

Safari起動後、環境設定からGesturesが消えています。調査中。

会社のmacはYosemite + Safari v9なのですが、こちらは環境設定にメニューが現れるのですが、ジェスチャーの新規タブ(私の場合は↑に設定してます)のアクションでタブが開きませんでした。タブを閉じる事はできます。El Capitanではそもそも環境設定に表示されないので、pluginの配置場所が変わったか、そもそも構造が変わった可能性があります。もしくはSIMBLのSIP問題のせいで環境設定に現れない可能性もあります。いずれにせよちょっと絶望感が漂っています。(2ch等で調べてみたもSIMBL周りは厳しそうとの事です)

rootlessと/usr/localについて

rootlessは、「/usr直下」に対してプロテクションが働きますが、/usr/local だけは例外的にプロテクトは及ばないようになっているので、権限さえ正しければ今まで通りに/usr/localを使用できます。(brew updateの失敗はOSアップグレード後の/usr/local配下の権限の問題と思われる)

/usr配下にsudoでディレクトリ・ファイルを作成して失敗する例

http://f.st-hatena.com/images/fotolife/t/treeapps/20151003/20151003124219.gif?1443843827

/usr/local自体は最初から存在しますが、El Capitanアップグレード前に/usr/localを誤って削除してしまった場合、例えば「sudo mkdir /usr/local」としようとしても、rootlessが働いて/usr/localの作成ができなくなるぞ!、というのがネット上で騒がれている問題ですね。Yosemiteの時にやった/usr/localを一時的に/tmp等にフォルダごと退避する等をやってしまうと、/usr/localをアップグレード後に作成できなくなり、面倒が起こる(リカバリーモードで起動後にrootlessを一度無効にして/usr/localを作成してrootlessを有効にする手順が必要になる)、という事ですね。

このrootlessにより、私は例えばtomcatの場合は /usr/loca/apache-tomcat8.x.x みたいに実体を置いて、/usr/tomcat にシンボリックリンクを貼るのを慣例としていたのですが、これがNGになります。

気づいた点

拡張子の関連付け

初期化されてしまうようです。関連付けし直しが非常に面倒です。

Safari v9

El CapitanにしなくてもYosemiteでもv9にアップグレード可能なのですが、v8まではCommand + 数字でタブを選択しようとするとブックマークのn番目が選択されてしまっていましたが、v9からはCommand + 数字で対応するタブが選択できるようになっています。(オプションで有効無効を変更できます)
f:id:treeapps:20151005084836p:plain

あと、スワイプしてブラウザバックした後に、操作を受け付けるようになるまで時間が短縮され、割りとすぐ操作できるようになったように感じます。

Mission Control

私の環境は iMac Retina 5K 27インチ なのですが、YosemiteのMCは非常にカクついて重かったです。

El Capitanにアップグレード後、MCが無茶苦茶軽くなり、ヌルヌル動作するようになりました。次元が違う動きになってます。