前提・実現したいこと
「現場で使える ruby on rails 5速習実践ガイド」 P302 Chapter7
メール送信機能の動作確認にて、mailcactherのgemを利用する項目があるのですが、インストールしようとすると失敗します。
また、インストールせずにコマンドでmailcatcherを起動すると、途中までは起動しているようですが、検証内容のメールの受信はできず、http://127.0.0.1:1080/を再表示しようとすると、エラーガー発生し強制終了します。
rbenvやgemのバージョンは最新のものにアップデートし、パーミッションの確認なども行ましたが、変わりません。
なんとなくPATHの通し方?に原因があるかと思ったのですが、調べれば調べるほどわからなくなってしまっている状況です。
エラーコードを見ても解決法が見えません。どうかご教授のほど宜しくお願い致します。
インストール失敗時のエラーメッセージ
MacBookPro:taskleaf yunosuke$ gem install mailcatcher Building native extensions. This could take a while... ERROR: Error installing mailcatcher: ERROR: Failed to build gem native extension. current directory: /Users/yunosuke/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/thin-1.5.1/ext/thin_parser /Users/yunosuke/.rbenv/versions/2.6.6/bin/ruby -I /Users/yunosuke/.rbenv/versions/2.6.6/lib/ruby/2.6.0 -r ./siteconf20210126-21334-1y9u1wk.rb extconf.rb checking for main() in -lc... yes creating Makefile current directory: /Users/yunosuke/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/thin-1.5.1/ext/thin_parser make "DESTDIR=" clean current directory: /Users/yunosuke/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/thin-1.5.1/ext/thin_parser make "DESTDIR=" compiling parser.c parser.rl:112:17: warning: comparison of integers of different signs: 'long' and 'unsigned long' [-Wsign-compare] assert(pe - p == len - off && "pointers aren't same distance"); ~~~~~~ ^ ~~~~~~~~~ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/assert.h:93:25: note: expanded from macro 'assert' (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0) ^ parser.rl:142:7: error: implicit declaration of function 'thin_http_parser_has_error' is invalid in C99 [-Werror,-Wimplicit-function-declaration] if (thin_http_parser_has_error(parser) ) { ^ parser.rl:142:7: note: did you mean 'http_parser_has_error'? ./parser.h:44:5: note: 'http_parser_has_error' declared here int http_parser_has_error(http_parser *parser); ^ parser.rl:144:14: error: implicit declaration of function 'thin_http_parser_is_finished' is invalid in C99 [-Werror,-Wimplicit-function-declaration] } else if (thin_http_parser_is_finished(parser) ) { ^ 1 warning and 2 errors generated. make: *** [parser.o] Error 1 make failed, exit code 2 Gem files will remain installed in /Users/yunosuke/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/thin-1.5.1 for inspection. Results logged to /Users/yunosuke/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/extensions/x86_64-darwin-19/2.6.0/thin-1.5.1/gem_make.out
mailcatcher起動からエラー発生までのメッセージ
MacBookPro:taskleaf yunosuke$ mailcatcher Starting MailCatcher ==> smtp://127.0.0.1:1025 ==> http://127.0.0.1:1080 Traceback (most recent call last): 6: from /Users/yunosuke/.rbenv/versions/2.6.6/bin/mailcatcher:23:in `<main>' 5: from /Users/yunosuke/.rbenv/versions/2.6.6/bin/mailcatcher:23:in `load' 4: from /Users/yunosuke/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/mailcatcher-0.2.4/bin/mailcatcher:44:in `<top (required)>' 3: from /Users/yunosuke/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/mailcatcher-0.2.4/lib/mail_catcher.rb:21:in `run' 2: from /Users/yunosuke/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run' 1: from /Users/yunosuke/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine' /Users/yunosuke/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1490:in `event_callback': undefined method `close' for 14:Integer (NoMethodError) Did you mean? clone
試したこと
rbenvのパーミッションの確認
gemのアップデート
rbenvのアップデート
補足情報(FW/ツールのバージョンなど)
MacOS BigSur 11.1
Ruby gem -v 3.0.3
rbenv 2.6.6 (set by /Users/yunosuke/taskleaf/.ruby-version)
あなたの回答
tips
プレビュー