ERROR: Could not find a valid gem 'sass' (>= 0), here is why

Ruby on Rails インストール時のハマったエラーめも。

前提

  • Window7 64bit でやる

  • 以下を参考にRubyのインストールからやる dev.classmethod.jp

この記事のはなし

gem install rails --no-ri --no-rdoc

をやった際に

ERROR:  Could not find a valid gem 'sass' (>= 0), here is why

で始まるエラーメッセージが出た。 で始まるっていってるのは、そのあとにも英語が続くのだけど、 複数の原因があると以下の対処で内容が変わるのでここでは割愛します。

ここでは調べてて見させてもらった記事のまとめっぽい感じになります。いろいろやったらなんとか進んだので。

sourceでリモートインストール先を指定

dev.classmethod.jp

の下部のコメントにある通り

gem install rails --source http://rubygems.org"

を指定していく場合もあるみたい。

DNSの名前解決がうまくいっていない

--source で指定したリモート先の名前解決が出来てない場合がある。

ぢみへんプログラミング日誌 rubygem が反応しなくなったら

上記にある通り、nslookupIPアドレスを取得して、IPを指定するといける場合もあるみたい。

hosts に直接指定することでうまくいく場合も上記で紹介して頂いている。

SSL認証エラー

上記のエラーメッセージのあとに SSL~ のような英語があったらこれかも。

qiita.com

上記の記事を見て解決出来ました。m(_ _)m

Workaround RubyGems' SSL errors on Ruby for Windows (RubyInstaller)

からSSLの証明書を取得して、以下においてあげればよかった。(すでにあるから上書きする)

証明書のファイル → AddTrustExternalCARoot-2048.pem

Rubyのインストールディレクトリ/Ruby22-x64/lib/ruby/2.2.0/rubygems/ssl_certs

(僕の環境の場合↑)

上記の記事ではこの問題がなんで起きてるか…という話まで丁寧に書かれてた。

プロキシを指定する

[Ruby]Proxy経由のネット接続環境におけるGems - 拝啓、シーシュポス

alice345.hatenablog.com

プロキシが邪魔してRubyGemsでインストールできないとき: 猫背ミジンコ

上記の記事でプロキシサーバーを指定したコマンドを記事にしていただいています。

gem install rails -r -p http://your.proxy.hostname:port番号

http~以降を http_proxy という名前の環境変数に設定した場合の方法も記載して頂いています。

環境変数に登録した後で以下のコマンドを打つと通る場合もあるようです。

gem install rails -r

プロキシの認証が必要な場合

qiita.com

最終的には上記の記事を見て解決出来ました。m(_ _)m

gem install rails -r -p http://username:password@proxy.hostname:port

自分の環境ではユーザ名とパスワードが必要だったみたいです。

gem を使わずに rails をインストールって出来ないのかな

Rubygemsが上記のエラーが出て使えないので、rails がやりたいだけだから gemコマンド使わなくてもなんか方法ない?と思ったけど。

Ruby on Rails

rails の公式サイトは↑だけど、windows用のインストーラとかは20150610現在で見つからなかった。

Rubygemsでインストールするように記載されているので、今いまはなさそう…

まとめ

結局自分は、SSL証明書の問題と、プロキシの指定、認証に引っ掛かっていたようだ。

エラーの内容をよく読めば、どの問題なのかはおおよそわかるので問題にあった対処法を探せば(とりあえずエラーのメッセージでぐぐる&英語を翻訳でもいいから書いてあることは読む。)

すでに解決した素晴らしい記事がごろごろしていたので、落ち着いて読まないとだめだな..