ข้อมูลจำเพาะที่ไม่ได้รับการแก้ไขระหว่าง Gem :: Specification.reset:


192

เมื่อเปิดตัว Guard ฉันได้รับผลลัพธ์นี้:

$ guard
WARN: Unresolved specs during Gem::Specification.reset:
      lumberjack (>= 1.0.2)
      ffi (>= 0.5.0)
WARN: Clearing out unresolved specs.
Please report a bug if this causes problems.

สิ่งนี้หมายความว่าอย่างไรและฉันจะแก้ไขได้อย่างไร

เนื้อหาของ Guardfile:

guard 'livereload' do
    watch(%r{.+\.(css|js|html)$})
end
guard 'sass', :input => 'css', :style => :compressed, :extension => '.min.css'

1
ฉันได้รับสิ่งนี้ด้วยเช่นกันและไม่ได้ใช้ยาม
Douglas G. Allen

โพสต์นี้มีประโยชน์มากหากคุณใช้ RVM
GDP2

คำตอบ:


274

ฉันเห็นปัญหานี้เพียงแค่เรียกใช้RSpecด้วยตัวเอง จากสิ่งที่ฉันเข้าใจนี่หมายความว่าคุณมีอัญมณีที่ระบุไว้มากกว่าหนึ่งรุ่นติดตั้งในระบบของคุณและ RSpec ไม่แน่ใจว่าควรใช้อันไหน หลังจากถอนการติดตั้งอัญมณีรุ่นเก่าแล้วคำเตือนก็หายไป

คุณสามารถลอง:

gem cleanup lumberjack

หรือ:

gem list lumberjack

gem uninstall lumberjack

หากคุณใช้ Bundler คุณสามารถลองbundle exec guard(หรือในกรณีของฉันbundle exec rspec)


2
คุณทำให้ฉันในการติดตามที่ถูกต้อง ฉันได้รับข้อผิดพลาดเมื่อเรียกใช้ 'gem cleanup' ดังนั้นฉันจึงพบสิ่งนี้: stackoverflow.com/questions/4007074/… เปิดใช้งานด้วย RVM เมื่อฉันวิ่ง 'rvm gemset ใช้ global' และวิ่งไปที่ยามข้อผิดพลาดก็หายไป
reneruiz

ฉันใช้ rbenv และ gem cleanup [gemname] เหมาะสำหรับฉันอย่างสมบูรณ์ ขอบคุณ
Matt

3
ฉันมีปัญหาที่คล้ายกันการอัพเดทชุดข้อมูลแก้ไขได้เลย
ไมค์

4
หลังจากrvm gemset use global(และgem cleanup <gemname>) ตรวจสอบให้แน่ใจว่าได้เปลี่ยนกลับเป็นค่าเริ่มต้นของคุณด้วยrvm gemset use default
AlexChaffee

ฉันต้องการที่จะใช้gem uninstall <problematic gem>แต่ขอบคุณและ upvote ที่ชี้ให้ฉันไปในทิศทางที่ถูกต้อง!
ลดกิจกรรม

159

การใช้คำสั่งต่อไปนี้แก้ไขให้ฉัน:

bundle clean --force

ดูยามและยังไม่ได้แก้ไข-รายละเอียดเพื่อดูข้อมูลเพิ่มเติม


1
ฉันลองทำสิ่งต่าง ๆ มากมายรวมถึงการติดตั้ง RVM และ Ruby อีกครั้งจนกระทั่งฉันชนกับโซลูชันนี้และนี่ก็ทำเพื่อฉัน
George

ชายฉันเสียเวลาไม่กี่ชั่วโมงในการพยายามหาสาเหตุว่าทำไม Textmate 2 ถึงผิดพลาดเมื่อฉันทำการทดสอบ มันล้างออกแล้ว
ร้านขายของชำ

ฉันต้องการsu/sudo/var/lib/gemsการทำเช่นนี้เพราะมันเป็นความพยายามที่จะเขียนไป นอกเหนือจากนั้น - ใช้ได้กับ jekyll
einpoklum


12

FYI:

gem cleanup

ทำงานให้ฉัน

$ gem cleanup       

Cleaning up installed gems...
Attempting to uninstall builder-3.2.2
Successfully uninstalled builder-3.2.2
Attempting to uninstall amatch-0.3.0
Successfully uninstalled amatch-0.3.0
Attempting to uninstall tins-1.12.0
Successfully uninstalled tins-1.12.0
Clean Up Complete


6

ฉันใช้gem list gem-name; gem uninstall gem-nameในการทำความสะอาดอัญมณีทีละคนเพราะการพึ่งพา หลังจากนั้นข้อผิดพลาดจะไม่แสดงอีกครั้ง


1

เพิ่ม

'bundle exec'

ก่อนที่คำสั่งของคุณ

ฉันใช้ ruby ​​2.4 และได้รับปัญหาเดียวกันเมื่อปรับใช้ jekyll บน windows มันได้รับการแก้ไข


0

ผมได้รับข้อความนี้ในขณะที่ทำงาน rspec bundle exec rspecภายในปลั๊กอินอัญมณียามใช้ มันกลายเป็นบรรทัดที่ขาดหายไปในgemspecไฟล์:

$:.push File.expand_path("../lib", __FILE__)

ปกติแล้วบรรทัดนี้จะอยู่ที่ด้านบนสุดของไฟล์ (ในหลาย ๆ อัญมณีที่ฉันเพิ่งใช้งานไป) และฉันได้คอมเม้นต์มันเพื่อดูว่าทำไม


0

จำไว้ว่าถ้าคุณต้องการใช้ยามคุณต้องเพิ่ม gem Guard ใน Gemfile

group :developement, :test do
  gem 'guard'
end

จากนั้นเรียกใช้

bundle install

ฉันหวังว่านี่จะช่วยคุณได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.