2012-01-25 17 views
19
Invalid gemspec in [/usr/lib/ruby/gems/1.8/specifications/activemodel-3.2.0.gemspec]: Illformed requirement ["#<YAML::Syck::DefaultKey:0xb5f9c990> 3.2.0"] 

Từ cố gắng để làm một bản cập nhật sudo đá quý cho các vấn đề kháckhông hợp lệ gemspec yêu cầu -Illformed [ "# <YAML :: Syck :: DefaultKey: 0xb5f9c990> 3.2.0"]

nhận được thời gian hàng trăm này như cập nhật đá quý sudo đi qua mỗi đá quý và nhận được thông báo cho hầu hết trong số chúng

Trả lời

24

Điều này có thể xảy ra khi nâng cấp lên Đường ray 3.2.

Cập nhật Rubygems nên khắc phục vấn đề này.

gem update --system 

Hy vọng điều này sẽ hữu ích.

+1

+1. Điều này làm việc cho tôi trong tuần này, nó tải lên đá quý 1.8.15 – tokland

+0

loại. Nó đã khắc phục vấn đề ngay lập tức ... và nâng cấp gem install linecache19 -v '0.5.11' Xây dựng tiện ích mở rộng gốc. Quá trình này có thể mất một khoảng thời gian ... L ERI: Lỗi khi cài đặt linecache19: \t L ERI: Không thể xây dựng tiện ích mở rộng gốc đá quý. /home/durrantm/.rvm/rubies/ruby-1.8.7-p352/bin/ruby extconf.rb *** extconf.rb không thành công *** Không thể tạo Makefile do một số lý do, có thể thiếu –

+0

mà tôi sẽ đăng riêng. –

8

Tôi vẫn gặp lỗi sau khi cập nhật rubygem.

Sau đó, tôi chạy rvm gemset empty để xóa các đá quý. CÁi này đã sửa nó giúp tôi.

+0

Tôi đã phải sử dụng "rvmsudo rvm gemset trống" cho đá quý cài đặt trên toàn cầu của tôi, nhưng cảm ơn cho các tip trống! –

+0

Bạn lấy lệnh "rvm" hoặc "rvmsudo" ở đâu? Hệ thống của tôi dường như không có. –

+1

rvm là trình quản lý phiên bản ruby ​​(https://rvm.io/). Một tiện ích để cài đặt một số phiên bản ruby, với đá quý của riêng họ. Chạy lệnh này sẽ không giúp đỡ với vấn đề này nếu bạn chưa cài đặt rvm. –

1

Tôi gặp sự cố này, nhưng tất cả các phương pháp trên không có tác dụng.

Vì vậy, tôi quyết định chuyển tất cả các *3.2.0.spec trong thư mục

/usr/local/ruby/lib/ruby/gems/1.9.1/specifications 

vào thư mục khác, và mọi thứ được giải quyết.

Command:

sudo mv /usr/local/ruby/lib/ruby/gems/1.9.1/specifications/actionmailer-3.2.0.gemspec <another_dir> 

Thực hiện lệnh tương tự như các file khác:

  • actionpack-3.2.0.gemspec
  • activemodel-3.2.0.gemspec
  • activerecord-3.2. 0.gemspec
  • activeresource-3.2.0.gemspec
  • activesupport-3.2.0.gemspec
  • newrelic_rpm-3.2.0.gemspec
  • ray-3.2.0.gemspec
  • railties-3.2.0.gemspec
+0

Tôi đã thử điều này là tốt, không giúp đỡ. –

Các vấn đề liên quan