簡體   English   中英

捆綁程序:找不到命令

[英]Bundler: Command not found

我在 vps、ubuntu 10.04、rails 3、ruby 和 mysql 上托管,按照一些教程正確安裝。 如果我運行bundle checkbundle 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.2rvm 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM