homebrewでphantomjsを入れるときにハマった

pythonでwebスクレイピングを試すためにphantomjsというライブラリを入れようとしました。
が、いろいろとエラーが出てハマったので備忘録的に書き残します。
結果、エラーは解決できて無事phantomjsを入れることができました。
これでwebスクレイピングに手を出せる……

homebrew で phantomjsが入れられない

$ brew install phantomjs
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.
==> Cloning https://github.com/ariya/phantomjs.git
Updating /Users/jalemy/Library/Caches/Homebrew/phantomjs--git
==> Checking out tag 2.1.1
==> ./build.py --confirm --jobs 4

上記のログが出るところまでは進むのですが、ここから先に進まず30分くらい放置しても終わらないという状況でした。

解決方法を探す

とりあえず似たような状態の人がいないかググってみると

  • バイナリから直接入れる
  • npm経由で入れる

という手順で回避している人がいました。
できればbrewで完結させたいなと思っていると

  • brew updateをすればphantomjs入れられるようになる

とのこと。

brew updateでエラー

早速 brew update をしますが、以下のエラーが

$ brew update
Error: /usr/local must be writable!

どうやらMac OSをupdateした結果、権限周りに変更が出てできない様子?

stackoverflow.com

こちらを参考に

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

とコマンドを走らせた結果、無事 brew update が行えました。

phantomjsのインストール

そして最後に

$ brew install phantomjs
==> Installing dependencies for phantomjs: openssl
==> Installing phantomjs dependency: openssl
==> Downloading https://homebrew.bintray.com/bottles/openssl-1.0.2j.sierra.bottl
######################################################################## 100.0%
==> Pouring openssl-1.0.2j.sierra.bottle.tar.gz
==> Using the sandbox
==> Caveats
A CA file has been bootstrapped using certificates from the SystemRoots
keychain. To add additional certificates (e.g. the certificates added in
the System keychain), place .pem files in
  /usr/local/etc/openssl/certs

and run
  /usr/local/opt/openssl/bin/c_rehash

This formula is keg-only, which means it was not symlinked into /usr/local.

Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries

Generally there are no consequences of this for you. If you build your
own software and it requires this formula, you'll need to add to your
build variables:

    LDFLAGS:  -L/usr/local/opt/openssl/lib
    CPPFLAGS: -I/usr/local/opt/openssl/include
    PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig

==> Summary
🍺  /usr/local/Cellar/openssl/1.0.2j: 1,695 files, 12M
==> Installing phantomjs
==> Downloading https://homebrew.bintray.com/bottles/phantomjs-2.1.1.sierra.bott
######################################################################## 100.0%
==> Pouring phantomjs-2.1.1.sierra.bottle.1.tar.gz
🍺  /usr/local/Cellar/phantomjs/2.1.1: 49 files, 50.5M

無事 phantomjs を入れることができました。