質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.12%

railsのバージョン確認できない

受付中

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 3,393

yuzumikan

score 27

railsの勉強を始めたいと思い,railsの環境を整えています.
が,全く進めません.

以下,現状です.

$ ruby -v
ruby 2.5.0p0
$ rails -v
/Library/Ruby/Site/2.3.0/rubygems/dependency.rb:312:in `to_specs': Could not find 'nokogiri' (>= 1.5.9) - did find: [nokogiri-1.5.6] (Gem::MissingSpecVersionError)
Checked in 'GEM_PATH=/Users/muraseyuri/.gem/ruby/2.3.0:/Library/Ruby/Gems/2.3.0:/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/gems/2.3.0', execute `gem env` for more information
    from /Library/Ruby/Site/2.3.0/rubygems/specification.rb:1469:in `block in activate_dependencies'
    from /Library/Ruby/Site/2.3.0/rubygems/specification.rb:1458:in `each'
    from /Library/Ruby/Site/2.3.0/rubygems/specification.rb:1458:in `activate_dependencies'
    from /Library/Ruby/Site/2.3.0/rubygems/specification.rb:1440:in `activate'
    from /Library/Ruby/Site/2.3.0/rubygems/specification.rb:1472:in `block in activate_dependencies'
    from /Library/Ruby/Site/2.3.0/rubygems/specification.rb:1458:in `each'
    from /Library/Ruby/Site/2.3.0/rubygems/specification.rb:1458:in `activate_dependencies'
    from /Library/Ruby/Site/2.3.0/rubygems/specification.rb:1440:in `activate'
    from /Library/Ruby/Site/2.3.0/rubygems/specification.rb:1472:in `block in activate_dependencies'
    from /Library/Ruby/Site/2.3.0/rubygems/specification.rb:1458:in `each'
    from /Library/Ruby/Site/2.3.0/rubygems/specification.rb:1458:in `activate_dependencies'
    from /Library/Ruby/Site/2.3.0/rubygems/specification.rb:1440:in `activate'
    from /Library/Ruby/Site/2.3.0/rubygems/specification.rb:1472:in `block in activate_dependencies'
    from /Library/Ruby/Site/2.3.0/rubygems/specification.rb:1458:in `each'
    from /Library/Ruby/Site/2.3.0/rubygems/specification.rb:1458:in `activate_dependencies'
    from /Library/Ruby/Site/2.3.0/rubygems/specification.rb:1440:in `activate'
    from /Library/Ruby/Site/2.3.0/rubygems.rb:224:in `rescue in try_activate'
    from /Library/Ruby/Site/2.3.0/rubygems.rb:217:in `try_activate'
    from /Library/Ruby/Site/2.3.0/rubygems/core_ext/kernel_require.rb:128:in `rescue in require'
    from /Library/Ruby/Site/2.3.0/rubygems/core_ext/kernel_require.rb:40:in `require'
    from /Library/Ruby/Gems/2.3.0/gems/railties-5.1.5/exe/rails:9:in `<top (required)>'
    from /usr/local/bin/rails:22:in `load'
    from /usr/local/bin/rails:22:in `<main>'


となったので,言われたとおり以下をしてみました.

$ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 2.7.6
  - RUBY VERSION: 2.5.0 (2017-12-25 patchlevel 0) [x86_64-darwin17]
  - INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/2.5.0
  - USER INSTALLATION DIRECTORY: /Users/muraseyuri/.gem/ruby/2.5.0
  - RUBY EXECUTABLE: /usr/local/opt/ruby/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/local/bin
  - SPEC CACHE DIRECTORY: /Users/muraseyuri/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /usr/local/Cellar/ruby/2.5.0_2/etc
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-17
  - GEM PATHS:
     - /usr/local/lib/ruby/gems/2.5.0
     - /Users/muraseyuri/.gem/ruby/2.5.0
     - /usr/local/Cellar/ruby/2.5.0_2/lib/ruby/gems/2.5.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /Users/muraseyuri/.rbenv/bin
     - /usr/local/bin
     - /usr/bin
     - /bin
     - /usr/sbin
     - /sbin
     - /usr/local/share/dotnet
     - /Library/Frameworks/Mono.framework/Versions/Current/Commands


あとはnokogiriのバージョンが違うのでしょうか?
その後どうしたら良いですか

色々動かしている内に最初のrailsのバージョンすらもできなくなってしまいました.

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

0

お疲れさまです。
私も勉強中なのですが、このような状況に近いもの見つけました。

リンク内容

参考にしてみてはどうでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/03/11 08:29

    ありがとうございます.私の場合,nokogiri-1.5.9がなく代わりにnokogiri-1.5.6があるようです.そこで教えて頂いたリンクを参考に$ gem listをすると,nokogiri (1.8.2, 1.5.9)と表示されました.nokogiri-1.5.9はあるのにないということになっているのでしょうか?以下コードです.
    $ gem list

    *** LOCAL GEMS ***

    actioncable (5.0.6)
    actionmailer (5.0.6)
    actionpack (5.0.6)
    actionview (5.0.6)
    activejob (5.0.6)
    activemodel (5.0.6)
    activerecord (5.0.6)
    activesupport (5.0.6)
    arel (7.1.4)
    bigdecimal (default: 1.3.4)
    bindex (0.5.0)
    builder (3.2.3)
    bundler (default: 1.16.1)
    byebug (10.0.0)
    cmath (default: 1.0.0)
    coffee-rails (4.2.2)
    coffee-script (2.4.1)
    coffee-script-source (1.12.2)
    concurrent-ruby (1.0.5)
    crass (1.0.3)
    csv (default: 1.0.0)
    date (default: 1.0.0)
    dbm (default: 1.0.0)
    did_you_mean (1.2.0)
    erubis (2.7.0)
    etc (default: 1.0.0)
    execjs (2.7.0)
    fcntl (default: 1.0.0)
    ffi (1.9.23)
    fiddle (default: 1.0.0)
    fileutils (default: 1.0.2)
    globalid (0.4.1)
    i18n (0.9.5)
    io-console (default: 0.4.6)
    ipaddr (default: 1.2.0)
    jbuilder (2.7.0)
    jquery-rails (4.3.1)
    json (default: 2.1.0)
    listen (3.0.8)
    loofah (2.2.0)
    mail (2.7.0)
    method_source (0.9.0)
    mini_mime (1.0.0)
    mini_portile2 (2.3.0)
    minitest (5.11.3, 5.10.3)
    multi_json (1.13.1)
    net-telnet (0.1.1)
    nio4r (2.2.0)
    nokogiri (1.8.2, 1.5.9)
    openssl (default: 2.1.0)
    power_assert (1.1.1)
    psych (default: 3.0.2)
    puma (3.11.3)
    rack (2.0.4)
    rack-test (0.6.3)
    rails (5.0.6)
    rails-dom-testing (2.0.3)
    rails-html-sanitizer (1.0.3)
    railties (5.0.6)
    rake (12.3.0)
    rb-fsevent (0.10.3)
    rb-inotify (0.9.10)
    rdoc (default: 6.0.1)
    sass (3.5.5)
    sass-listen (4.0.0)
    sass-rails (5.0.7)
    scanf (default: 1.0.0)
    sdbm (default: 1.0.0)
    spring (2.0.2)
    spring-watcher-listen (2.0.1)
    sprockets (3.7.1)
    sprockets-rails (3.2.1)
    sqlite3 (1.3.13)
    stringio (default: 0.0.1)
    strscan (default: 1.0.0)
    test-unit (3.2.7)
    thor (0.20.0)
    thread_safe (0.3.6)
    tilt (2.0.8)
    turbolinks (5.1.0)
    turbolinks-source (5.1.0)
    tzinfo (1.2.5)
    uglifier (4.1.6)
    web-console (3.5.1)
    webrick (default: 1.4.2)
    websocket-driver (0.6.5)
    websocket-extensions (0.1.3)
    xmlrpc (0.3.0)
    zlib (default: 1.0.0)

    キャンセル

  • 2018/03/11 14:00

    うーん、サーバー再起動とかはしてみましたか?
    一度やってみていただいていいでしょうか?

    キャンセル

0

「Rails のバージョンの確認」ですが,インストールされている rails gem のバージョンを確認したいのであれば,

$ gem list rails

とします。(名称に rails が含まれるすべての gem が表示されますが)

一方,特定の Rails アプリの Rails バージョンを確認したいのであれば,そこの Gemfile の

gem 'rails', '~> 5.1.5'

といった記述を見ます。

コマンドラインで rails -v とやったときの動作は,何らかの Rails アプリのディレクトリーで実行した場合と,そうでない場合とで違っています。

Rails アプリのディレクトリーでないときは,インストールされている最新の Rails のバージョンが表示されます。というのは,rails というコマンドは,とくにバージョンを指定しなければ最新のやつが動くからです。

一方,特定の Rails アプリのディレクトリーで実行した場合は,その Rails アプリの rails コマンドが起動してバージョンを表示してくれます。
このとき,Gemfile が読み込まれ,一通りのライブラリーの読み込みなども行われます。そのぶん時間もかかります。
そして,もし Gemfile に記載されたライブラリーがインストールされていなかったりすると,エラーを出して落ちます。当然,Rails のバージョンは表示されません。
これがまさにご質問の冒頭に書かれた状況です。
エラーメッセージには

Could not find 'nokogiri' (>= 1.5.9) 

とありますね。バージョン 1.5.9 以上の nokogiri がインストールされていないのです。

ところが,gem list すると,ちゃんと 1.5.9 が存在している,と。

こういうときは,違う Ruby バージョンで操作している可能性があります。

実際,ruby -v とか gem env したときの Ruby はバージョン 2.5.0 なのに,rails -v でエラーが出たとき,スタックトレースに出てくるファイルのパスに 2.3.0 というディレクトリーが書かれていて,なんか Ruby 2.3.0 で動いてるぽいんですよね。

Ruby は rbenv でインストールしたようなので,以下の結果を教えてください。

$ rbenv versions

そして,もしリストに 2.3.0 があるようなら,空のディレクトリーで

$ rbenv shell 2.3.0
$ gem list nokogiri

とやって,Ruby 2.3.0 にインストールされた Nokogiri のバージョンを確認してください。
rbenv shell 云々 は一時的に Ruby のバージョンを切り替えます。ターミナルを閉じれば影響は消えます)

リストに 2.3.0 がなければ

$ rbenv shell system
$ ruby -v
$ gem list nokogiri

をやってみてください。
rbenv shell system は,rbenv で入れたのでない,もともとシステムに入っていた Ruby バージョンに一時的に切り替えます)

ここまでの情報が得られると少し解決に近づくかと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.12%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる