2017-12-03 12 views
1

私はRubyでの作業を初めて試みました。私はsassをインストールしたいので宝石を更新してsassをインストールしようとしましたが、エラーがスローされました。私は、実行時に文法エラーが発生したことを認識しましたgem - これを引き起こした可能性があり、他のすべての同様のケースがコード内の人々に起こるのは理解できません。gemコマンドを使用するたびにRubyが構文エラーを投げるのはなぜですか?

私はこの時点までにソースコードに触れておらず、gemコマンドも使用していません。エラーが具体的にSyntaxErrorです:これはサイコ3.0.0は、実際のRuby 2.2.2(あなたのケースでエラーが発生し、特定の構文が必要ですにもかかわらず、required Ruby version as >= 1.9.2を示していますthe gemspec of Psych 3.0.0known bug、ある

$ gem 
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': /Library/Ruby/Gems/2.0.0/gems/psych-3.0.0/lib/psych/scalar_scanner.rb:146: syntax error, unexpected tIDENTIFIER, expecting ')' (SyntaxError) 
     klass.new(yy, m, dd, hh, mm, ss+us/(1_000_000r), offset) 
                ^
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
    from /Library/Ruby/Gems/2.0.0/gems/psych-3.0.0/lib/psych/nodes/node.rb:4:in `<top (required)>' 
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
    from /Library/Ruby/Gems/2.0.0/gems/psych-3.0.0/lib/psych/nodes.rb:2:in `<top (required)>' 
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
    from /Library/Ruby/Gems/2.0.0/gems/psych-3.0.0/lib/psych.rb:14:in `<top (required)>' 
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems.rb:585:in `load_yaml' 
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/config_file.rb:314:in `load_file' 
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/config_file.rb:191:in `initialize' 
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/gem_runner.rb:66:in `new' 
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/gem_runner.rb:66:in `do_configuration' 
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/gem_runner.rb:46:in `run' 
    from /usr/bin/gem:21:in `<main>' 
+0

@StefanPochmannルビーをダウングレードする必要がありますか?私がこれを解決する方法を知っていますか?私は宝石を更新したばかりです。これは過去に仕事をしていないcliツールです。 –

+0

Ruby 2.0を使用しているので、アップグレードする必要があります。 – SpyMachine

答えて

3

problem has been fixed in the repository

s.required_ruby_version = Gem::Requirement.new(">= 1.9.2") 

、まだその修正を組み込んでリリースがなかった。)ルビー2.1で導入されました。

問題を解決するために必要な手順はバグレポートに記載されていますが、基本的にb0rked Psych 3.0.0 gemディレクトリを手動で削除してからPsych 3.0.0をアンインストールしてから、あなたは再び3.0.0をインストールしないこと:

FYI、誰もgemコマンドでも動作しません最初の記事で説明したような問題に着陸のために:

  • あなたを必要がありますrm -rf精神3.0.0の宝石ディレクトリ。 (その後、gemコマンドがうまくいくはずです)
  • gem uninstall psych -v 3.0.0を実行できます。
  • その後、バージョン3.0.0が修正されるまで、gem 'psych', '< 3.0.0'をGemfileに追加する必要があります。
  • 精神のバージョンの変更を受け入れるには、bundle updateを実行する必要があります。
関連する問題