###はじめまして
足の親指にできたささくれのせいで、スリッパを着脱するたびとても痛いです。
どうも、かのらです。
今回はeventmachineを使いたかったのに訳もわからずにPATHを設定しまくって失敗した話です。
##目次
- 環境
- Slackbotをつくりたい!
- そういえば...
- 結局
- 学んだこと
##環境
- MacOS Catalina 10.15.1
- Ruby 2.6.3
- Bundler 2.0.2
- rbenv 1.1.2
##Slackbotをつくりたい!
授業の最終課題ために作りたく
【第一回】超簡単!RubyでSlack Botを作る方法
を参考にしながら環境を設定していました。
しかし、あるところから
libc++abi.dylib: terminating with uncaught exception of type std::runtime_error: Encryption not available on this event-machine
Abort trap: 6
のエラーが出てしまい動かなくなりました。
eventmachineが動いていないことがわかったのでそこを調べると、
macOSでTwitterStreamを使うために必要なこと
eventmachineを再インストールすればいいと思い
sudo gem uninstall eventmachine
を行いましたが
eventmachine is not install
と出てしまいinstallがされていないと表示され
だったらインストールすればいいじゃんと思い、
sudo gem install eventmachine
を実行しgemを表示させたところ、
gem list
*** LOCAL GEMS ***
bigdecimal (default: 1.4.1)
bundler (2.0.2, default: 1.17.3)
cmath (default: 1.0.0)
csv (default: 3.0.9)
date (default: 2.0.0)
dbm (default: 1.0.0)
e2mmap (default: 0.1.0)
etc (default: 1.0.1)
fcntl (default: 1.0.0)
....
うん、入ってない!
openssl関連のエラーが遠因ということはわかったのですが、同じエラーが起きている人がほとんど見つからず、センター英語二桁の英語力で海外のサイトを読みながら解決しそうなコマンドをターミナルに"とにかく叩き"ました。
exportやらbrewやらbundleやら...
ですが何も変わりませんでした。
作戦を変え、先輩に聞いたり先生に解決策を一緒に考えてもらったりしましたが、何も解決しませんでした。
ついには、パソコンちゃんに話しかけ宥めたり、励ましたり、撫でたりしました....
##そういえば...
ふと思ったのです、PATHってなんだろうと。
opensslとeventmachineをつなげるために、やたらPATHという文字を打ち込んでいるけどPATHってなんだろうと今更ながら考え、PATHについて調べ始めました。(遅い)
PATHってコマンドを実行しやすくする魔法の呪文なんですね。
(短縮URLみたいな感じかな。)
調べてみて私は驚愕しました。何度もPATHを通していたものですから....
とにかく今自分は何を設定しているのか確認のため
echo $PATH
を行いました。
結果、
こんなグロ画像に.....
(※みやすくするため改行を入れています)
PATHがこんなに設定されているなんておばちゃんびっくり。
加えて、この画像からでもわかると思うのですが、opensslがいろんなところに入っています....
そりゃ先輩も先生に聞いてもお手上げ状態になっちゃうね!!!!
申し訳ない!!!!!!!!
##結局
rubyの環境をもう一度設定し直すことにしました。
.bash_profileを書き換えて、いろんなところに飛んでいたopensslファイルを削除しても大丈夫なところは削除し一度設定をしなおしました。
そしたら無事eventmachineも動くようになり、投稿現在Slackbotも完成の兆しが見えてきました。
##学んだこと
- まだパソコンについて勉強し始めたばっかりだったから被害が少なくてrubyからインストールでなんとかなったが、
- 何事も理解せずに実行するのはだめ。
- なんなのかわかんないけど環境作りたいなら、仮想環境を使おう。(これからのために折れた心をガムテープで直して仮想環境について勉強しています)
- 聞ける人は大事、坂東英二〜〜
####最後に
パソコンに対しての文句を嫌な顔一つ見せず聞いてくれた友達、
いきなりの連絡にも関わらずエラーを読んで解決策を考えてくれた先輩、
訳がわからない状態のパソコンを持ち込んで助けてくれた先生、
ありがとうございます
※もしこの内容がおしいえ場合教えていただけますと幸いです。何せ初心者なもんで....