gem and/or Ruby on Rails broke all of a sudden, an

2020-06-05 07:49发布

I had a Ruby on Rails app that used to work. I hadn't used it in a month or so, but then tried starting it up today with rails s and got the following error—in fact, I get this error when I try rails -h or rails -v or even gem -h or sudo gem update --system or anything having to do with gem.

NOTE: Gem::Specification#default_executable= is deprecated with no replacement. It will be removed on or after 2011-10-01.
Gem::Specification#default_executable= called from /Library/Ruby/Gems/1.8/specifications/rubygems-update-1.8.2.gemspec:11.
Invalid gemspec in [/Library/Ruby/Gems/1.8/specifications/tilt-1.3.3.gemspec]: invalid date format in specification: "2011-08-25 00:00:00.000000000Z"
NOTE: Gem::Specification#default_executable= is deprecated with no replacement. It will be removed on or after 2011-10-01.
Gem::Specification#default_executable= called from /Users/me/.gem/ruby/1.8/specifications/json-1.5.1.gemspec:10.
/Library/Ruby/Site/1.8/rubygems/specification.rb:277:in `_resort!': undefined method `name' for nil:NilClass (NoMethodError)
    from /Library/Ruby/Site/1.8/rubygems/specification.rb:276:in `sort!'
    from /Library/Ruby/Site/1.8/rubygems/specification.rb:276:in `_resort!'
    from /Library/Ruby/Site/1.8/rubygems/specification.rb:270:in `_all'
    from /Library/Ruby/Site/1.8/rubygems/specification.rb:402:in `each'
    from /Library/Ruby/Site/1.8/rubygems/dependency.rb:216:in `find_all'
    from /Library/Ruby/Site/1.8/rubygems/dependency.rb:216:in `matching_specs'
    from /Library/Ruby/Site/1.8/rubygems/dependency.rb:238:in `to_specs'
    from /Library/Ruby/Site/1.8/rubygems/dependency.rb:256:in `to_spec'
    from /Library/Ruby/Site/1.8/rubygems.rb:1182:in `gem'
    from /usr/bin/rails:18

Anyone know what's going on and how to fix it? How can I uninstall it all and reinstall it (without uninstalling my OS, man that would really suck)

4条回答
唯我独甜
2楼-- · 2020-06-05 08:18

I got the same error with jquery-rails 2.0.3:

Invalid gemspec in [C:/Ruby187/lib/ruby/gems/1.8/specifications/jquery-rails-2.0.3.gemspec]: invalid date format in specification: "2012-08-16 00:00:00.000000000Z"

To fix that, I have edited the file C:/Ruby187/lib/ruby/gems/1.8/specifications/jquery-rails-2.0.3.gemspec and change the line containing:

s.date = %q{2012-08-16 00:00:00.000000000Z}

to

s.date = %q{2012-08-16}

then it works again.

查看更多
小情绪 Triste *
3楼-- · 2020-06-05 08:23

I'd try cleaning out all your installed gems by running

rm -rf ~/.gems
sudo rm -rf /Library/Ruby/Gems/*

After this gem list should list no gems. Then run

sudo gem update --system

to ensure Ruby Gems is at the latest version. You'll then have to reinstall all your gems. (Probably gem install bundler followed by bundle install).

By the way, you should check out rbenv or rvm for managing Ruby versions and keeping all your development gems separate from the system Ruby.

查看更多
该账号已被封号
4楼-- · 2020-06-05 08:30

gem update --system should fix you up. That will install the latest version of RubyGems.

查看更多
男人必须洒脱
5楼-- · 2020-06-05 08:38

I had the same problem with XCode 4.3. Try this:

Open XCode > Preferences > Downloads > Install Command Line Tools

Finally run in the terminal:

rvm install 1.9.3 --with-gcc=clang
查看更多
登录 后发表回答