MacBook Air 2014 に OS X El Capitan をクリーン インストールした結果

以下の手順は、もう一台PCがある状態で行なう必要があると思う。 出来れば、そのもう一台はMacの方が安心。

無事にクリーンインストール出来たとしても、とても長い時間がかかるので、 やっぱりもう一台PCが無いと大変かも。

OSX El Capitan クリーンインストールの問題

10月1日に一般公開された OS X El Capitan。

クリーンインストールすると、Homebrew をインストールできない (/usr/local を作れない) という、重大な問題があった。 普段 Homebrew のみで作業していると言っても良い位なので、これは深刻。

公開から数日たって、それなりの手間をかければクリーンインストールでも /usr/local を作って、Homebrewをインストールできることが確認できたので、 ここはクリーンインストールし直してみようと思う。

MacBookAir は、 Snow Leopard/Merberick/Yosemite と上書きインストールして来てるし、 El Capitanの上書きインストールで 5GB の空きが増えたとは言え、 SSDの半分以上を BootCamp にあててしまっていて容量が不安だったので。

インストールメディアの作成

Air の(間違えた)インストールが終わる気配がないので、 母艦の方にダウンロードしてあるイメージからインストールメディアを作成する。

USBメモリをフォーマットして、下のコマンドを実行する。

sudo /Applications/Install\ OS\ X\ El\ Capitan.app/Contents/Resources/createinstallmedia --volume /Volumes/UNTITLED/ --applicationpath /Applications/Install\ OS\ X\ El\ Capitan.app --nointeraction

USB2.0の安いUSBメモリだと、30分ほどかかった。

やっと完成したUSBメモリを刺して、optionキーを押しながら再起動する。

USBメモリを指定してインストールを開始したら、 BootCampじゃない方のパーテーションを指定して、 さらにインストールを進める。

一番の課題 Homebrew とクリーンインストールの解決策

El Capitanは、システムディレクトリの扱いが厳しくなっている。 SIP/rootless と言うらしい。 これが、 Homebrew のインストール先 /usr/local にも影響する。

通常のLinuxでは /usr/local というのは半分ユーザに開放されている様な物だけど、 /usr が SIP/rootless の管理範囲内なので、 /usr/local を作れないために、 Homebrewのインストールが出来なくなってしまう。

予め /usr/local がある場合には、El Capitanのインストーラが良きに図らってくれる。 ただ、その場合でも、 /usr/local の量が多いとインストールに時間がかかるらしい。

ちなみに、母艦ののMacBookProの /usr/local の使用量は、1.7GBもあった。 ほぼ同じ環境を作っているAirの方も大差ないはず。

クリーンインストールの場合、 /usr/local を作る方法が無いので困ったことになる。

対策方法は、 homebrew のGitHubに紹介されている。

El Capitan & Homebrew からの引用

This is how to fix Homebrew on El Capitan if you see permission issues:

If /usr/local exists already:

sudo chown $(whoami):admin /usr/local && sudo chown -R $(whoami):admin /usr/local If /usr/local does not exist:

Reboot into Recovery mode (Hold Cmd+R on boot) & access the Terminal. In that terminal run: csrutil disable Reboot back into OS X Open your Terminal application and execute: sudo mkdir /usr/local && sudo chflags norestricted /usr/local && sudo chown $(whoami):admin /usr/local && sudo chown -R $(whoami):admin /usr/local Reboot back into Recovery Mode & access the Terminal again. In that terminal execute: csrutil enable Reboot back into OS X & you’ll be able to write to /usr/local & install Homebrew.

リカバリーモードでなら (そして長ったらしいおまじないを使うと) /usr/local を作成できるとのこと。

都合4回リブートする必要があるけど、最初の一回だけなので我慢しよう。

XCodeとCommand Line Toolsのインストール

Homebrewに必要なので、XCodeとCommand Line Toolsをインストールし、 一回起動してライセンスを許諾しておく。

Dropbox のインストール

Homebrewのインストール前に、諸々の設定ファイルを収めてある Dropboxをインストールしてサインインし同期を始める。

Homebrew/Homebrew-caskのインストールとgccの再ビルド

まず、というかやっと、 Homebrew とCaskをインストール。

Airは 2coreなんだけど、画像処理もちょいちょいさせるので、 gccでOpenMPを使えるようにしておく。

ruby -e ""$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)""
brew install caskroom/cask/brew-cask
brew reinstall gcc --without-multilib

OpenMPは使えるようになる代りにmultilibが使えなくなる。 今更32bitバイナリが必要にはならないだろうけど。

emacs csv HEAD のインストール

DropBoxの同期作業が終るのを待ちつつ、 Homebrew とemacsをインストール。 emacsが無いと、この後の作業の捗り方が全然違うので。

ビルドが終わるまでには、Dropbox にある.emacs.d などの同期も完了しているはず。

emacs は、 Windowsも含めて 25.0.50を使っているので、 Homebrewでは

brew install emacs --HEAD --use-git-head --with-cocoa --with-gnutls --with-rsvg --with-imagemagick
brew install emacs --HEAD --use-git-head --with-cocoa

brew update
brew unlink emacs
brew uninstall emacs
brew install emacs --HEAD --use-git-head --cocoa --with-gnutls --with-rsvg --with-imagemagick
brew linkapps

バージョンは殆ど変化なし。 今回: 前回:GNU Emacs 25.0.50.1 (x86_64-apple-darwin14.3.0, NS appkit-1347.57 Version 10.10.3 (Build 14D136)) of 2015-05-05 on MacBookPro.local

cd /Applications
ln -s /usr/local/opt/emacs/Emacs.app .

Spark でショートカットキーを設定するため、 下記の通り Emacs.appをApplicationに登録しておく。 地味だけど、これで作業効率が劇的に改善する。

ホスト名の確認

emacsの設定をホスト名で切り替えているのだけれど、 OSを変えると微妙にホスト名が変わってしまう場合がある。

名前を確認して .emacs に反映しておく。

CtrlとCapsLockの入れ替え

これやっとかないと、emacsの効率半減なので。

キーボードショートカットアプリ Spark のインストール

巷では BetterTouchTool が人気だけど、極シンプルな Sparc の方が好み。

Chrome/ターミナル/Emacsを、以前と同じキーボードショートカットキーに登録すれば、まずは十分。

キーリピートを最速に変更

MacBookの標準のキーリピートでは emacs が使い難いので、 システム環境設定→キーボードで、キーのリピートを一番速い設定、 リピート入力認識までの時間を一番短かい設定に変更しておく。

Homebrew で Chromeをインストール

emacsの次にChromeが無いと、あれこれ不便なので、先にイントールしておく。

brew cask update
brew cask install google-chrome

Opera12をインストール

未だにRSSリーダとして使っている opera12.16 をいれておく。

pythonで諸々の追加インストール

Yosemiteのpythonはちょっと古かったけど、El Capitan のはどうかな? 管理が面倒なので、やっぱり Homebrew のPython で一本化しておこう。

brew install python
pip install pandas matplotlib scipy numpy

バージョンは、いい加減 python3に揃えた方が良いかもなぁと思いつつ、 AirのHomebrewはpython2だけにしておこう。

ImageMagickの再ビルド

brew reinstall imagemagick --with-x11

Homebrew で Firefox/Opera/Blender をインストール

brew cask update
brew cask install blender gimp firefox --force

# brew cask install opera
# brew cask install java jenkins xquartz googleappengine --force

Sphinx(ドキュメントの方)をインストール

うっかり Homebrew の別のSphinxをインストールしそうになるけれど、 ドキュメント作成の Sphinx は pipでインストールする。

pip install Sphinx
pip install blockdiag sphinxcontrib-blockdiag 
pip install seqdiag sphinxcontrib-seqdiag 
pip install actdiag sphinxcontrib-actdiag 
pip install nwdiag sphinxcontrib-nwdiag 
pip install tk.phpautodoc

OpenCV3をインストール

# brew install opencv --with-eigen --with-jasper --with-libtiff --with-qt --with-tbb --with-ffmpeg --with-opencl
# brew reinstall opencv --with-ffmpeg --with-jasper --with-qt --with-tbb --HEAD
brew uninstall opencv
brew install opencv3 --with-ffmpeg --with-jasper --with-python3 --with-qt --with-qt5 --with-tbb --without-tests --HEAD

echo /usr/local/opt/opencv3/lib/python2.7/site-packages >> /usr/local/lib/python2.7/site-packages/opencv3.pth

前回 OpenCVをインストールした時、ちょっとあったので バージョンを確認しておく。

$ python
Python 2.7.10 (default, Jun  2 2015, 00:10:05) 
[GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)] on darwin
Type ""help"", ""copyright"", ""credits"" or ""license"" for more information.
>>> import cv2
>>> cv2.__version__
'3.0.0-dev'
>>> exit(0)

Jenkins をインストール… は今回はなし

毎日酷使しているせいか、気持ちバッテリの持ちが短かくなってきたので、 今回からはJenkinsは入れないことにした。

最近はテストランナーでテストするので、Jenkinsの出番も減ってきていたし。

とりえあず完了

El Capitanにしたからと言って、特に変わった事はないかな。

Wifiの再接続が購入時より遅くなった印象は変わらず。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です