[英]Bundler: Command not found
我在 vps、ubuntu 10.04、rails 3、ruby 和 mysql 上托管,按照一些教程正確安裝。 如果我運行bundle check
或bundle install
我會收到錯誤“-bash: bundle: command not found”。 從gem list --local
我看到安裝了“bundler (1.0.2, 1.0.0)”。
我不知道怎么回事...
gem environment
返回:
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 $PATH
返回:
/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 gem
返回:
/usr/bin/gem
locate bundle
返回:
/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/
我的問題是我做了:
sudo gem install bundler
所以我以 root 而不是我自己的身份安裝。 所以我以 root 身份卸載,然后以我自己的身份安裝:
sudo gem uninstall bundler
gem install bundler
rbenv rehash
(如果您使用 rbenv 的最后一條命令)
它奏效了。 “正確的”路徑是.bashrc
(或其他外殼配置文件),至少根據
$PATH
=> zsh: /Users/myself/.rbenv/shims:/Users/myself/.rbenv/bin: ... etc
但它希望它是為我自己安裝的——而不是為 root 安裝的。 就我而言,它的正確安裝位置在~/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/bundler
您需要將 ruby gem 可執行目錄添加到您的路徑中
export PATH=$PATH:/opt/ruby-enterprise-1.8.7-2010.02/bin
...也適用於 Debian GNU/Linux 6.0 :)
export PATH=$PATH:/var/lib/gems/1.8/bin
我這樣做了(Ubuntu 最新的截至 2013 年 3 月 [我認為 :)]):
sudo gem install bundler
歸功於Ray Baxter 。
如果您需要 gem,我會以這種方式安裝 Ruby(盡管這會長期造成負擔):
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
無論你的 shell 是什么,可能是 distro-proof 路徑將它添加到你的 .bashrc 或 .zshrc 中:
PATH="$(ruby -e 'print Gem.default_dir')/bin:$PATH"
或者,如果您已在用戶范圍內安裝了 gem,請使用:
PATH="$(ruby -e 'print Gem.user_dir')/bin:$PATH"
我的解決方案是確保我為該存儲庫選擇了一個 Ruby 版本。
示例: chruby 2.2.2
或rvm 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/.........
我正在運行 ubuntu 11.10 並且捆綁可執行文件位於:
/var/lib/gems/1.8/bin
對於 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
確保在安裝不同的紅寶石時進行rbenv rehash
第1步:確保你在路徑實際工作區。例如,workspace/blog $: Step2:輸入命令:gem install bundler。 第 3 步:您現在應該都設置為捆綁安裝或捆綁更新
在我的 Arch Linux 安裝中,gems 安裝到~/.gem/ruby/2.6.0/bin
目錄(如果以用戶/root/.gem/ruby/2.6.0/bin
安裝)或/root/.gem/ruby/2.6.0/bin
如果通過sudo
安裝。 只需將適當的附加到您的$PATH
環境變量:
export PATH=$PATH:/home/your_username/.gem/ruby/2.6.0/bin
我遇到了完全相同的問題,並且能夠通過運行來解決它
rbenv rehash
在那個bundle
按預期工作之后。 在查看 rbenv wiki 條目時,它確實提到當安裝的 gem 提供命令時應該運行 rehash。
為 rbenv 已知的所有 Ruby 可執行文件安裝墊片(即 ~/.rbenv/versions/ /bin/ )。 在安裝新版本的 Ruby 或安裝提供命令的 gem 后運行此命令。
顯然,這太令人煩惱了,以至於有些人編寫了一個 gem 來確保您永遠不需要再次運行rehash
。 rbenv-gem-rehash
我認為捆綁可執行文件在:
/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/bin
它不在你的 $PATH 中
在克隆我幾個月前構建的舊 Rails 項目后,我收到此錯誤rbenv: bundle: command not found
。 以下是我的處理方式:安裝特定版本的 bundler 或僅運行以下命令來安裝最新的可用 bundler:
運行gem install bundler
然后我用這個命令安裝了我想要的確切版本的 bundler:
$ gem install bundler -v "$(grep -A 1 "BUNDLED WITH" Gemfile.lock | tail -n 1)"
[查看本文了解更多詳情]( https://www.aloucaslabs.com/miniposts/rbenv-bundle-command-not-found#:~:text=When%20you%20get%20the%20rbenv,to%20install% 20the%20Bundler%20gem 查看這篇文章了解更多詳情
通過發出此命令來監聽工作
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
您還可以創建符號鏈接:
ln -s /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/bin/bundle /usr/bin/bundle
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.