bundle:找不到命令

时间:2010-10-12 12:32:31

标签: ruby-on-rails bundler

我通过以下教程正确安装了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/

15 个答案:

答案 0 :(得分:185)

我的问题是我做了:

sudo gem install bundler

所以我安装了root而不是我自己。所以我以root身份卸载,然后安装为我自己:

sudo gem uninstall bundler
gem install bundler
rbenv rehash

(如果您使用的是rbenv的最后一个命令)

它有效。 .bashrc(或其他shell配置文件)中的“正确”路径,至少根据

$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

答案 1 :(得分:81)

您需要将ruby gem可执行文件目录添加到路径

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

答案 2 :(得分:25)

...也适用于Debian GNU / Linux 6.0:)

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

答案 3 :(得分:11)

我这样做了(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

答案 4 :(得分:3)

我正在运行ubuntu 11.10并且捆绑可执行文件位于:

/var/lib/gems/1.8/bin

答案 5 :(得分:3)

无论你的shell是什么,可能会将防爆路径添加到.bashrc或.zshrc中:

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

或者如果您已在用户范围内安装了宝石,请使用:

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

答案 6 :(得分:2)

对于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

答案 7 :(得分:1)

我的解决方案是确保我为该回购选择了一个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/.........

答案 8 :(得分:1)

步骤1:确保您在路径实际工作空间中。例如,workspace / blog $: 第2步:输入命令:gem install bundler。 第3步:您应该已经设置为立即捆绑安装或捆绑更新

答案 9 :(得分:0)

我认为捆绑可执行文件已打开:

/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/bin并且它不在您的$ PATH

答案 10 :(得分:0)

您还可以创建符号链接:

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

答案 11 :(得分:0)

确保在安装不同的红宝石时rbenv rehash

答案 12 :(得分:0)

我遇到了完全相同的问题,并且能够通过运行

来解决它
rbenv rehash

之后bundle按预期工作。看一下rbenv wiki条目,它确实提到当安装的gem提供命令时应该运行rehash。

  

为rbenv已知的所有Ruby可执行文件安装填充程序(即,   〜/ .rbenv /版本/ / bin中/ )。安装新命令后运行此命令   Ruby版本,或安装提供命令的gem。

显然这是一种烦恼,有些人写了一个宝石,以确保你永远不需要再次运行rehashrbenv-gem-rehash

答案 13 :(得分:0)

在我的Arch Linux安装中,如果以用户身份安装,则将gems安装到~/.gem/ruby/2.6.0/bin目录中,如果通过/root/.gem/ruby/2.6.0/bin安装,则将gems安装到sudo中。只需将适当的值附加到您的$PATH环境变量中即可:

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

答案 14 :(得分:0)

克隆了我几个月前建立的一个旧的Rails项目后,我遇到了这个错误rbenv: bundle: command not found。 这是我的处理方法: 要安装特定版本的捆绑软件,或仅运行以下命令以安装最新的可用捆绑软件:

运行gem install 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 check this article for more details

通过发出此命令使收听工作正常

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