ข้อผิดพลาด“ ไม่พบบันเดิลเลอร์”


107

เมื่อฉันพยายามทำbundler updateฉันได้รับข้อผิดพลาดนี้:

.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in
`to_specs': Could not find bundler (>= 0) amongst
[rake-0.8.7, rake-0.8.7, rubygems-update-1.8.4] (Gem::LoadError)

ฉันยังใหม่กับ Ruby มีใครบอกได้ไหมว่าอะไรจะทำให้เกิดปัญหานี้? ติดตั้ง Rake 0.8.7 แล้ว


1
0 ลงคะแนนมันบอกว่าคุณไม่ได้ติดตั้งบันเดิลเลอร์ หากคุณเรียกใช้ 'รายการอัญมณี b' คุณจะเห็นบันเดิลเลอร์หรือไม่?
Jake Dempsey

คำตอบ:


214

ตรวจสอบให้แน่ใจว่าคุณกำลังเข้าสู่การอัปเดต "บันเดิล" หากคุณติดตั้งเจมบันเลอร์ไว้

bundle update

หากคุณไม่ได้มีการติดตั้ง Bundler gem install bundlerทำ


หากคุณสร้างแอปพลิเคชันใหม่ - รางใหม่และหากคุณได้รับข้อผิดพลาดนี้
AMIC MING

2
ทำgem list bundlerและดูว่าปรากฏขึ้นหรือไม่ หากไม่เป็นเช่นนั้นคุณต้องติดตั้งตามที่ระบุไว้ในคำตอบของฉัน
ardavis

10
สิ่งนี้เกิดขึ้นกับฉันหลังจากติดตั้ง Ruby เวอร์ชันใหม่โดยใช้ rvm จากนั้นฉันก็ต้องวิ่งgem install bundlerอีกครั้ง
NRR

61

ฉันมีปัญหานี้แล้วฉันก็ทำ:

gem install bundle

แจ้งให้ทราบว่า "บันเดิล" ไม่ใช่ "บันเดิลเลอร์" ช่วยแก้ปัญหาของฉัน

จากนั้นในโฟลเดอร์โครงการของคุณทำ:

bundle install

จากนั้นคุณสามารถเรียกใช้โครงการของคุณโดยใช้:

script/rails server

กลุ่มการติดตั้งอัญมณี - สิ่งนี้ทำเพื่อฉันเช่นกัน
Don Cote

10
สังเกตว่าอัญมณี "บันเดิล" เป็นเพียงอัญมณีที่ประกาศว่า "บันเดิลเลอร์" เป็นการอ้างอิงซึ่งจะแก้ไขการพิมพ์ผิดของคุณเป็นหลัก github.com/will/bundle/blob/…
sealocal

13

ผมมีปัญหาเหมือนกัน. สิ่งนี้ใช้ได้ผลสำหรับฉัน:

  1. เรียกใช้ rvm / script / rvm และเพิ่มลงใน. profile หรือ. bash_profile ตามที่แสดงในhttps://rvm.io/rvm/install/

  2. ใช้บันเดิลโดยไม่มี sudo



8

คำสั่งคือbundle update(ไม่มี "r" ใน "บันเดิล")

หากต้องการตรวจสอบว่ามีการติดตั้งบันเดิลเลอร์ให้ทำ: gem list bundlerหรือแม้กระทั่งwhich bundleและคำสั่งจะแสดงรายการเวอร์ชันบันเดิลเลอร์หรือพา ธ ไป ถ้าไม่มีอะไรก็แสดงให้เห็นแล้วติดตั้ง Bundler gem install bundlerโดยการพิมพ์


7

ฉันมีปัญหาเดียวกัน .. มีบางอย่างเกิดขึ้นกับโปรไฟล์ทุบตีของฉันที่ไม่ได้ตั้งค่าสิ่ง RVM อย่างถูกต้อง

ตรวจสอบให้แน่ใจว่าโปรไฟล์ทุบตีของคุณมีบรรทัดต่อไปนี้:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"  # This loads RVM into a shell session.

จากนั้นฉันก็เรียกใช้ "source ~ / .bash_profile" และโหลดทุกอย่างที่อยู่ในโปรไฟล์ bash ของฉันใหม่

นั่นดูเหมือนจะแก้ไขได้สำหรับฉัน


ขอบคุณสำหรับสิ่งนี้. ในขณะที่ฉันรู้วิธีสะกด "บันเดิล" กับ "บันเดิลเลอร์" แต่ฉันก็ลืมไปแล้วว่าฉันติดตั้ง zsh ใหม่และในกระบวนการนี้ทำให้บรรทัดนี้ห่างจาก. zshrc ของฉันโดยไม่ได้ตั้งใจ ดึงผมออกมาสักพักแล้ว :)
rmurphey

คำตอบนี้เก่า แต่สำหรับฉันแล้วทางแก้!
jonnyjava.net

ตรวจสอบให้แน่ใจว่านี่คือบรรทัดสุดท้ายในไฟล์โปรไฟล์ของคุณ
rmcsharry


4

คุณอาจต้องทำบางอย่างเช่น "rvm use 1.9.2" ก่อนเพื่อให้คุณใช้ทับทิมและอัญมณีที่ถูกต้อง คุณสามารถตรวจสอบว่าคุณกำลังใช้ทับทิมใดอยู่โดยทำ "ทับทิมอันไหน"


2

ฉันได้รับสิ่งนี้หลังจากอัปเกรดเป็น Ruby 2.1.0 ฉันตั้งอยู่ในสคริปต์การเข้าสู่ระบบของฉันที่จะรวมPATH .gem/ruby/2.0.0/binการอัปเดตหมายเลขเวอร์ชันได้รับการแก้ไขแล้ว


2

ระบบอาจกำลังเรียกใช้ "ไม่มีรูท" ลองตั้งค่าตัวแปร boot-args ของเฟิร์มแวร์ nvram เป็น "rootless = 0" พยายามเรียกใช้ชุดคำสั่ง:

sudo nvram boot-args="rootless=0"; 
sudo reboot

หลังจากรีบูตเสร็จสิ้นให้รัน:

sudo gem install bundler

2

หากคุณใช้การrbenvรันrbenv rehashสามารถแก้ปัญหานี้ได้หลังจากที่คุณติดตั้งbundlerแล้วและยังคงได้รับปัญหา



1

สำหรับใครก็ตามที่พบปัญหานี้กับ Capistrano: capistrano ไม่สามารถค้นหาไฟล์bundler. สาเหตุอาจเป็นเพราะคุณติดตั้งบันเดิลเลอร์ไว้ในที่อื่นgemsetที่ Capistrano มองไม่เห็น

  1. แสดงรายการอัญมณีของคุณ

รายการ rvm gemset

  1. ใช้อัญมณีเฉพาะ

rvm ใช้ 'my_get_set'

  1. ติดตั้งบันเดิลเลอร์ภายใต้อัญมณีนั้น

ชุดติดตั้งอัญมณี

จากนั้นลองอีกครั้งกับงานปรับใช้


0

ในกรณีของฉันฉันเชื่อว่าฉันมี Ruby เก่าที่เหลืออยู่ในระบบไม่ได้ลงทะเบียนใน rvm และแม้ว่าตัวแปรเส้นทางและรายการอัญมณีจะโอเค แต่ก็ยังคงใช้ Ruby เก่าในระหว่างการปรับใช้กับ Capistrano

แล้วฉันก็รู้ว่า Ruby ที่ฉันติดตั้งด้วย rvm ไม่ได้ถูกตั้งค่าเป็นค่าเริ่มต้น วิ่ง

rvm alias create default <rvm_registered_ruby>

ซ่อมมัน.


0

ในกรณีที่ฉันมีข้อผิดพลาดคล้ายกับบันเดิลเลอร์ 2.1.2 และแก้ไขด้วย:

sudo gem install bundler -v 1.17.3

หากคุณติดตั้งบันเดิลเลอร์หลายเวอร์ชันคุณสามารถเรียกใช้บันเดิลเวอร์ชันเฉพาะได้ด้วยวิธีนี้: bundle _1.17.3_ exec rspec

แม้ว่าบันเดิลเลอร์รุ่นหลัง ๆ จะค่อนข้างบั๊ก (มีปัญหาใน 3 โปรเจ็กต์ที่แตกต่างกันในระบบปฏิบัติการ 2 ระบบ) การมีบันเดิลเลอร์เก่าหนึ่งชุดอาจทำงานได้ดีที่สุดอย่างน้อยนี่คือสิ่งที่ฉันมีใน Ubuntu และ MacOS

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