Lỗi "Không thể tìm thấy trình gói"


107

Khi tôi cố gắng thực hiện, bundler updatetôi gặp lỗi này:

.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)

Tôi mới sử dụng Ruby, ai đó có thể cho tôi biết điều gì sẽ gây ra điều này không? Rake 0.8.7 đã được cài đặt.


1
0 phiếu bầu Người ta nói rằng bạn chưa cài đặt Bundle. Nếu bạn thực hiện một 'danh sách đá quý b', bạn có thấy gói không?
Jake Dempsey

Câu trả lời:


214

Đảm bảo rằng bạn đang nhập bản cập nhật "gói", nếu bạn đã cài đặt viên đá quý của gói.

bundle update

Nếu bạn chưa cài đặt gói, hãy làm gem install bundler.


nếu bạn tạo một vị trí ứng dụng mới - rails mới và nếu bạn gặp lỗi này?
AMIC MING

2
Làm một gem list bundlervà xem nó có xuất hiện không. Nếu không, bạn cần cài đặt nó như được liệt kê trong câu trả lời của tôi.
ardavis

10
Điều này đã xảy ra với tôi sau khi cài đặt một phiên bản ruby ​​mới bằng rvm. Sau đó, tôi phải chạy gem install bundlerlại
NRR

61

Tôi gặp sự cố này, sau đó tôi đã làm:

gem install bundle

thông báo "gói" không phải "gói" đã giải quyết được vấn đề của tôi.

sau đó trong thư mục dự án của bạn làm:

bundle install

và sau đó bạn có thể chạy dự án của mình bằng cách sử dụng:

script/rails server

gói cài đặt đá quý - điều này cũng làm được điều đó cho tôi.
Don Cote

10
Lưu ý rằng gem "pack" chỉ đơn giản là một gem khai báo "Bundler" là một phụ thuộc, về cơ bản nó sẽ sửa lỗi chính tả của bạn. github.com/will/bundle/blob/…
sealocal

13

Tôi đã từng gặp vấn đề tương tự. Điều này đã làm việc cho tôi:

  1. chạy rvm / script / rvm và cũng thêm nó vào .profile hoặc .bash_profile của bạn như được hiển thị trong https://rvm.io/rvm/install/

  2. sử dụng gói mà không có sudo



8

Lệnh là bundle update(không có "r" trong "gói").

Để kiểm tra xem Bundler có được cài đặt hay không, hãy thực hiện: gem list bundlerhoặc thậm chí which bundlevà lệnh sẽ liệt kê phiên bản Bundler hoặc đường dẫn đến nó. Nếu không có gì được hiển thị, hãy cài đặt gói bằng cách nhập gem install bundler.


7

Tôi đã gặp vấn đề tương tự .. đã xảy ra điều gì đó với hồ sơ bash của tôi không thiết lập đúng nội dung RVM.

Đảm bảo rằng hồ sơ bash của bạn có dòng sau:

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

Sau đó, tôi chạy "source ~ / .bash_profile" và điều đó đã tải lại mọi thứ có trong hồ sơ bash của tôi.

Điều đó dường như đã sửa chữa nó cho tôi.


Cảm ơn vì điều đó. Mặc dù tôi biết cách đánh vần "pack" so với "bundler", nhưng tôi hoàn toàn quên rằng tôi đã cài đặt lại zsh và trong quá trình này, tôi đã vô tình thổi bay dòng này khỏi .zshrc của tôi. Đã kéo tóc của tôi ra trên này trong một thời gian :)
rmurphey

Câu trả lời này đã cũ nhưng đối với tôi đã là giải pháp!
jonnyjava.net

Hãy chắc chắn rằng đây là dòng cuối cùng trong tập tin cá nhân của bạn
rmcsharry


4

Bạn có thể phải làm điều gì đó như "rvm sử dụng 1.9.2" trước để bạn đang sử dụng đúng ruby ​​và gemset. Bạn có thể kiểm tra xem mình đang sử dụng viên ruby ​​nào bằng cách thực hiện "which ruby"


2

Tôi nhận được cái này sau khi nâng cấp lên ruby ​​2.1.0. Của tôi PATHđã được đặt trong tập lệnh đăng nhập của tôi để bao gồm .gem/ruby/2.0.0/bin. Cập nhật số phiên bản đã sửa nó.


2

Hệ thống có thể đang chạy "rootless". Cố gắng đặt biến boot-args nvram của firmware thành "rootless = 0". Cố gắng chạy bộ lệnh:

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

Sau khi khởi động lại hoàn tất, hãy chạy:

sudo gem install bundler

2

Nếu bạn đang sử dụng, việc rbenvchạy rbenv rehashcó thể giải quyết vấn đề này sau khi bạn đã cài đặt bundlervà vẫn gặp sự cố.



1

Đối với bất kỳ ai gặp phải vấn đề này với Capistrano: capistrano không thể xác định vị trí bundler. Lý do có thể là bạn đã cài đặt Bundler bên dưới một số khác gemsetmà Capistrano thậm chí không nhìn thấy.

  1. Liệt kê các bộ đá quý của bạn.

danh sách gemset rvm

  1. Sử dụng một bộ đá quý cụ thể.

rvm sử dụng 'my_get_set'

  1. Cài đặt Bundler bên dưới gemset đó.

gói cài đặt đá quý

Sau đó, hãy thử lại với tác vụ triển khai.


0

Trong trường hợp của tôi, tôi tin rằng tôi còn một viên Ruby cũ trên hệ thống, chưa được đăng ký trên rvm và ngay cả khi các biến đường dẫn và danh sách đá quý vẫn ổn, nó sẽ vẫn sử dụng Ruby cũ trong quá trình triển khai với Capistrano

Và sau đó tôi nhận ra, Ruby tôi đã cài đặt với rvm không được đặt thành mặc định. Đang chạy

rvm alias create default <rvm_registered_ruby>

Đã sửa nó.


0

Đề phòng, tôi gặp lỗi tương tự với Bundler 2.1.2 và đã giải quyết nó bằng:

sudo gem install bundler -v 1.17.3

Nếu bạn đã cài đặt một số phiên bản gói, thì bạn có thể chạy phiên bản cụ thể của gói theo cách này: bundle _1.17.3_ exec rspec

Mặc dù có vẻ như các phiên bản gói sau này khá nhiều lỗi (có vấn đề với 3 dự án khác nhau trên 2 hệ điều hành), nhưng việc có một trình gói cũ có thể hoạt động tốt nhất, ít nhất đây là những gì tôi có trên Ubuntu & MacOS của mình

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.