MailCatcher が気付いたら動かなくなってたので入れ直した。

最近は mailtrap を使っているので、MailCatcher は使わなくなってたのですが、 php.ini の sendmail に直接設定して使いたい案件がでてきたので久しぶりに MailCatcher を使おうとしたら動かなくなってた。

以前入れて動いてたので、普通に mailcatcher を呼んだところ、そんなコマンドないと言われてしまう。

$ mailcatcher
zsh: command not found: mailcatcher

パスが通らなくなったのかと検索してみるもでてこない。 ってかファイル数多すぎのかなかなか終わらないので途中で止めた…。

$ sudo find / -name mailcatcher
^C

ないのなら入れてやろうとインストールしてみたところエラー。

$ sudo gem install mailcatcher
Building native extensions.  This could take a while...
ERROR:  Error installing mailcatcher:
    ERROR: Failed to build gem native extension.

    current directory: /Library/Ruby/Gems/2.0.0/gems/eventmachine-1.0.9.1/ext
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby -r ./siteconf20170925-22868-1pumnwa.rb extconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/include/ruby.h

extconf failed, exit code 1

Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/eventmachine-1.0.9.1 for inspection.
Results logged to /Library/Ruby/Gems/2.0.0/extensions/universal-darwin-16/2.0.0/eventmachine-1.0.9.1/gem_make.out

とりあえず、El Capitan になった際に rootless という概念ができたという情報があるが、 rbenv 使っていれば問題ないとあったのとエラーメッセージから違うかなっとスルー。

調べてみるもこれっていうのがでてこないので、 ruby から入れ直してみようかと、一番新しいバージョンをインストール!

$ rbenv install 2.3.1
Downloading ruby-2.3.1.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.bz2
Installing ruby-2.3.1...

BUILD FAILED (OS X 10.12.6 using ruby-build 20160426)

Inspect or clean up the working tree at /var/folders/lq/c0x8lzm12rvffxb0hj8qpf1h0000gn/T/ruby-build.20170926163410.43398
Results logged to /var/folders/lq/c0x8lzm12rvffxb0hj8qpf1h0000gn/T/ruby-build.20170926163410.43398.log

Last 10 log lines:
  Referenced from: /private/var/folders/lq/c0x8lzm12rvffxb0hj8qpf1h0000gn/T/ruby-build.20170926163410.43398/ruby-2.3.1/./miniruby
  Expected in: /usr/lib/libSystem.B.dylib

dyld: Symbol not found: _utimensat
  Referenced from: /private/var/folders/lq/c0x8lzm12rvffxb0hj8qpf1h0000gn/T/ruby-build.20170926163410.43398/ruby-2.3.1/./miniruby
  Expected in: /usr/lib/libSystem.B.dylib

make: *** [.rbconfig.time] Abort trap: 6
make: *** Waiting for unfinished jobs....
encdb.h updated

はい。エラーです。

Xcode8環境下でrbenvにてrubyのコンパイルに失敗する - Qiita

Xcode の必要なツールをインストールすればよさそう。

$ xcode-select --install
xcode-select: note: install requested for command line developer tools

Xcode のツールをインストールしたので、ruby をインストールする前に、 もう一度 MailCatcher をインストールしてみます。

$ sudo gem install mailcatcher
Building native extensions.  This could take a while...
Successfully installed eventmachine-1.0.9.1
Fetching: mime-types-data-3.2016.0521.gem (100%)
Successfully installed mime-types-data-3.2016.0521
Fetching: mime-types-3.1.gem (100%)
Successfully installed mime-types-3.1
Fetching: mail-2.6.6.gem (100%)
Successfully installed mail-2.6.6
Fetching: rack-1.6.8.gem (100%)
ERROR:  While executing gem ... (Errno::EPERM)
    Operation not permitted - /usr/bin/rackup

はい。エラーです。

しかし、エラーメッセージが今までと変わりました。

このエラーは調べてた時に見ましたね。

MacOSX El Capitanでcocoapodsインストールが出来ない時の対処法 - Qiita

rootless が原因のようなので、書いてあるとおりパスを指定してインストールします。

$ sudo gem install -n /usr/local/bin mailcatcher
Successfully installed rack-1.6.8
Fetching: tilt-2.0.8.gem (100%)
Successfully installed tilt-2.0.8
Fetching: rack-protection-1.5.3.gem (100%)
Successfully installed rack-protection-1.5.3
Fetching: sinatra-1.4.8.gem (100%)
Successfully installed sinatra-1.4.8
Fetching: daemons-1.2.4.gem (100%)
Successfully installed daemons-1.2.4
Fetching: thin-1.5.1.gem (100%)
Building native extensions.  This could take a while...
Successfully installed thin-1.5.1
Fetching: skinny-0.2.4.gem (100%)
Successfully installed skinny-0.2.4
Fetching: mailcatcher-0.6.5.gem (100%)
Successfully installed mailcatcher-0.6.5
Parsing documentation for rack-1.6.8
Installing ri documentation for rack-1.6.8
Parsing documentation for tilt-2.0.8
Installing ri documentation for tilt-2.0.8
Parsing documentation for rack-protection-1.5.3
Installing ri documentation for rack-protection-1.5.3
Parsing documentation for sinatra-1.4.8
Installing ri documentation for sinatra-1.4.8
Parsing documentation for daemons-1.2.4
Installing ri documentation for daemons-1.2.4
Parsing documentation for thin-1.5.1
Installing ri documentation for thin-1.5.1
Parsing documentation for skinny-0.2.4
Installing ri documentation for skinny-0.2.4
Parsing documentation for mailcatcher-0.6.5
Installing ri documentation for mailcatcher-0.6.5
Done installing documentation for rack, tilt, rack-protection, sinatra, daemons, thin, skinny, mailcatcher after 314 seconds
8 gems installed

成功しました!

そして MailCatcher が起動しました。

$ mailcatcher
Starting MailCatcher
==> smtp://127.0.0.1:1025
==> http://127.0.0.1:1080
*** MailCatcher runs as a daemon by default. Go to the web interface to quit.

以下その他の参考サイトです。

El Capitanにしたらmailcatcherがなくなっていたので入れなおす | のぶろぐ

Gem install で Operation not permitted された時の対応(追記あり) - Qiita

っとココまで進めたのですが、色々勘違いしてまして、もともと mac では MailCatcher ちゃんと使ってなかったぽい?です。

vagrant に入れて動かしてようです。

が、なぜか vagrant も動かなくなってる....。

rbenv 自体が動いてないようです。

macvagrant もいろいろ試してそのままなので余計なものとかいっぱいあるし、もうどうなってるのかよくわからない。

そろそろメンテンスが必要ですね。