Bundler: Không tìm thấy lệnh


141

Tôi đang lưu trữ trên một vps, Ubuntu 10.04, rails 3, ruby ​​và mysql được cài đặt chính xác bằng cách làm theo một số hướng dẫn. Nếu tôi chạy bundle checkhoặc bundle installtôi gặp lỗi '-bash: bundle: lệnh không tìm thấy'. Từ gem list --localtôi thấy 'bundler (1.0.2, 1.0.0)' đã được cài đặt.

Tôi không biết chuyện gì đang xảy ra ...

gem environment trả về:

 RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.7
  - RUBY VERSION: 1.8.7 (2010-04-19 patchlevel 253) [i686-linux]
  - INSTALLATION DIRECTORY: /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: /opt/ruby-enterprise-1.8.7-2010.02/bin/ruby
  - EXECUTABLE DIRECTORY: /opt/ruby-enterprise-1.8.7-2010.02/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-linux
  - GEM PATHS:
     - /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8
     - /root/.gem/ruby/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

echo $PATHtrả lại:

/opt/myruby/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/bin/gem:/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/:/root/.gem/ruby/1.8

which gemtrả lại:

/usr/bin/gem

locate bundle trả về:

/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/

7
bạn đã cài đặt bundler chưa?
shingara

Câu trả lời:


87

Bạn cần thêm thư mục thực thi đá quý ruby ​​vào đường dẫn của bạn

export PATH=$PATH:/opt/ruby-enterprise-1.8.7-2010.02/bin

14
Trong uBfox 11.04, đường dẫn lệnh mới nhất hiện đang xuất PATH = $ PATH: /var/lib/gems/1.8/bin
Antony

Cập nhật: trong phiên bản Ubuntu 11.04, có vẻ như đường dẫn không liên quan, vì miễn là chúng tôi muốn sử dụng RubyGem mới nhất, chúng tôi chỉ cần cài đặt RVM và cài đặt phiên bản Ruby mong muốn.
Antony

Antony đã làm việc cho tôi và tôi đã gửi một bản cập nhật cho câu trả lời chính.
Michael Durrant

5
Đối với Arch Linux, hãy sử dụng xuất PATH = $ PATH: ~ / .gem / ruby ​​/ 2.0.0 / bin (điều chỉnh cho phiên bản Ruby của bạn)
Kostas Maragos

Để sử dụng rvm export /usr/local/rvm/gems/ruby-1.9.3-p448/bin:$PATHhoặc ENV PATH /usr/local/rvm/gems/ruby-1.9.3-p448/bin:$PATHvới Docker.
crizCraig

199

Vấn đề của tôi là tôi đã làm:

sudo gem install bundler

Vì vậy, tôi đã cài đặt root chứ không phải là chính mình. Vì vậy, tôi gỡ cài đặt như root, sau đó cài đặt như chính mình:

sudo gem uninstall bundler
gem install bundler
rbenv rehash

(lệnh cuối cùng nếu bạn đang sử dụng rbenv)

Va no đa hoạt động. Đường dẫn "chính xác" nằm trong .bashrc(hoặc cấu hình shell khác), ít nhất là theo

$PATH
=> zsh: /Users/myself/.rbenv/shims:/Users/myself/.rbenv/bin: ... etc

nhưng nó đã hy vọng nó sẽ được cài đặt cho chính tôi - không phải cho root. Trong trường hợp của tôi, nơi cài đặt hợp pháp của nó là ở~/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/bundler


3
rbenv là một thay thế cho RVM. Nó quản lý tất cả các phiên bản ruby ​​khác nhau của bạn. Khi bạn cài đặt một viên đá quý với gem installnó sẽ cài đặt nó cùng với phiên bản ruby ​​hiện đang sử dụng mà bạn có thể thấy khi bạn làm rbenv versions(nó nên được đánh dấu bằng dấu *). Khi bạn cài đặt đá quý, bạn có thể bundle installcho phép bạn cài đặt đá quý trên cơ sở từng dự án. Đá quý bạn có xu hướng gem installlà những thứ như bundler và zeus. Khi bạn gem install, bạn cần phải chạy rbenv rehashsau đó. Nó chỉ là như thế nào
xxjjnn

Tôi đã có vấn đề này trên Windows. Rang gem install bundlervà bây giờ tất cả đều tốt.
Dan Atkinson

25

... cũng cho Debian GNU / Linux 6.0 :)

export PATH=$PATH:/var/lib/gems/1.8/bin

Không làm việc cho tôi, bất kỳ đề nghị? - GEM PATHS: - /var/lib/gems/1.8 - /kunden/homepages/11/dxxxxxx/htdocs/.gem/ruby/1.8 echo $ PATH ~ / .composer / nhà cung cấp / bin: / usr / local / bin: / usr / bin: / usr / X11R6 / bin: / bin: / usr / local / ms: /kunden/homepages/11/d3xxxxxx/htdocs/.rvm/bin: /var/lib/gems/1.8/bin: / var / lib / gem / 1.8 / bin
Juan

15

Tôi đã làm điều này (Ubuntu mới nhất vào tháng 3 năm 2013 [Tôi nghĩ :)]):

sudo gem install bundler

Tín dụng cho Ray Baxter .

Nếu bạn cần đá quý, tôi đã cài đặt Ruby theo cách này (mặc dù đây là thuế thường xuyên):

mkdir /tmp/ruby && cd /tmp/ruby
wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p327.tar.gz
tar xfvz ruby-1.9.3-p327.tar.gz
cd ruby-1.9.3-p327
./configure
make
sudo make install

3

Tôi đang chạy Ubuntu 11.10 và gói thực thi được đặt trong:

/var/lib/gems/1.8/bin

3

Giải pháp của tôi là đảm bảo rằng tôi đã chọn một phiên bản Ruby cho repo đó.

Ví dụ: chruby 2.2.2hoặcrvm use 2.2.2

λ bundle install
zsh: command not found: bundle

λ ruby -v
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]

### Notice the system Ruby version isn't included in chruby

λ chruby
  ruby-1.9.3-p551
  ruby-2.1.2
  ruby-2.2.1

### Select a version via your version manager

λ chruby 1.9.3

### Ensure your version manager properly selects a version (*)

λ chruby
 * ruby-1.9.3-p551
   ruby-2.1.2
   ruby-2.2.1

λ bundle install
Fetching gem metadata from https://rubygems.org/.........

3

Có lẽ đường dẫn bằng chứng phân phối đang thêm phần này vào .bashrc hoặc .zshrc, bất kể shell của bạn là gì:

PATH="$(ruby -e 'print Gem.default_dir')/bin:$PATH"

hoặc nếu bạn đã cài đặt đá quý trên toàn người dùng, hãy sử dụng:

PATH="$(ruby -e 'print Gem.user_dir')/bin:$PATH"

2

Đối với người dùng rbenv:

$ rbenv versions
2.6.0
$ rbenv global 2.6.0
$ ruby -v
ruby 2.6.0p0
$ gem install bundler
$ rbenv rehash
$ bundle
$ rails -v
Command 'rails' not found
$ rbenv rehash
$ rails -v
Rails 4.2.11.1

1

Hãy chắc chắn rằng bạn làm rbenv rehashkhi cài đặt các viên hồng ngọc khác nhau


1

Bước 1: Đảm bảo rằng bạn đang trên đường dẫn không gian làm việc thực tế. Ví dụ: không gian làm việc / blog $: Bước2: Nhập lệnh: gem install bundler. Bước 3: Bây giờ bạn nên cài đặt thành gói cài đặt hoặc cập nhật gói


1

Trong bản cài đặt Arch Linux của tôi, đá quý đã được cài đặt vào ~/.gem/ruby/2.6.0/binthư mục nếu được cài đặt dưới dạng người dùng hoặc /root/.gem/ruby/2.6.0/binnếu được cài đặt qua sudo. Chỉ cần nối thêm một biến thích hợp vào $PATHbiến môi trường của bạn :

export PATH=$PATH:/home/your_username/.gem/ruby/2.6.0/bin

0

Tôi nghĩ gói thực thi là trên:

/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/bin và nó không có trong $ PATH của bạn


0

Bạn cũng có thể tạo một liên kết tượng trưng:

ln -s /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/bin/bundle /usr/bin/bundle

ln -s /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/bin/bundle /usr/bin/bundlenó có nên là cái này với một phần bổ sung bundlemà bạn muốn tạo liên kết sym để bó hơn là toàn bộ bin dir không?
Ashish Singh

0

Tôi đã có cùng một vấn đề và có thể giải quyết nó bằng cách chạy

rbenv rehash

Sau đó bundlelàm việc như mong đợi. Khi xem xét mục nhập rbenv wiki, nó có đề cập đến việc chạy lại nên được chạy khi một viên ngọc được cài đặt cung cấp các lệnh.

Cài đặt các miếng chêm cho tất cả các tệp thực thi của Ruby được biết đến với rbenv (nghĩa là ~ / .rbenv / phiên bản / / bin / ). Chạy lệnh này sau khi bạn cài đặt phiên bản mới của Ruby hoặc cài đặt đá quý cung cấp các lệnh.

Rõ ràng đây là một sự phiền toái đến nỗi một số người đã viết một viên đá quý để đảm bảo bạn không bao giờ cần phải chạy rehashlại. rbenv-đá quý


0

Tôi đã gặp lỗi này rbenv: bundle: command not foundsau khi nhân bản một dự án đường ray cũ mà tôi đã xây dựng một vài tháng trước. Đây là cách tôi đã thực hiện: Để cài đặt một phiên bản cụ thể của gói hoặc chỉ chạy lệnh sau để cài đặt gói mới nhất có sẵn:

chạy gem install bundler

sau đó tôi đã cài đặt phiên bản chính xác của gói mà tôi muốn với lệnh này:

$ gem install bundler -v "$(grep -A 1 "BUNDLED WITH" Gemfile.lock | tail -n 1)"

[kiểm tra bài viết này để biết thêm chi tiết] ( https://www.aloucaslabs.com/miniposts/rbenv-bundle-command-not-found#:~:text=When%20you%20get%20the%20rbenv,to 20 %% 20Bundler% 20gem kiểm tra bài viết này để biết thêm chi tiết

làm cho người nghe làm việc bằng cách ban hành lệnh này

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

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.