Rubyでgemがインストールできない
はじめに
Rubyにはgemという超便利なパッケージ管理システムがあり、gemコマンドを打つだけで自動的に最新パッケージをダウンロードし、依存関係まで解決してインストールしてくれるのです。
なので、例えばRuby on Railsをインストールするのでも、
gem install rails
と打つだけで完了!
もうコレ無しにはRubyでの開発は出来ないほど便利なんですが、社内PCでgemコマンドを使ったところ、エラーとなりインストールできない!
社内や学校のLANからは、超便利なgemコマンドもサクッと使えない事があるよ、というのが今回のお話。
結論
・プロキシ経由の場合、gemのオプションにプロキシ設定が必要
・WindowsでSSLエラーが出る場合、新しい証明書の再取得が必要
経緯
RubyでSQLiteを使うため、sqlite3-rubyのインストールを試みるも、gemをインストールしようとするとエラーが発生!
自宅と違いプロキシ経由だからだろうと思い付くが、どうやったら解決できるのか分からず。
色々調べていると、どうやらgemのオプションでプロキシ設定できるらしい。
[補足]プロキシ経由でのインストールをさらにいろんな言語で試してみた。
これで解決と思いきや、今度はSSLエラーが発生!
なぜSSLエラーなのかと疑問に思いつつも、SSLエラーと聞けば、過去の苦い経験から脊髄反射的に証明書の有効期限切れと思い付く。
これも調べてみると、Windows版のRubyに限っては証明書が最新でないとの事。
Windowsでgem installするとSSLエラーが出る場合の解決策 - Qiita
手順の通り証明書を更新すると、問題なくgem installを実行できました。
無事SQLiteにも接続できました。めでたしめでたし。
まとめ
どうしてもリモートインストールが無理ならば、RubyGems.orgから手動でgemファイルをダウンロードして、ローカルインストールする事も可能です。
gem をオフラインでインストールする方法 - present
但し、依存関係を全て手動で解消しなければならず、大きなパッケージだと相当な手間となるので、忍耐力のない人にはオススメできません。