bundle:找不到命令

我在一个VPS,Ubuntu的10.04,轨道3,ruby和MySQL主机上安装正确的一些教程。 如果我运行bundle checkbundle install我会得到错误“-bash:bundle:command not found”。 从gem list --local我看到'bundler( gem list --local )'被安装。

我不知道怎么回事

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/ 

您需要将ruby gem可执行文件目录添加到您的path中

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

我的问题是我做了:

 sudo gem install bundler 

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

 sudo gem uninstall bundler gem install bundler rbenv rehash 

(如果你使用rbenv,最后一个命令)

它的工作。 “正确的”path.bashrc (或其他shellconfiguration文件),至less根据

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

但它期望它为我自己安装 – 不是为了根。 在我的情况下,它的合法安装位置在~/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/bundler

…也适用于Debian GNU / Linux 6.0 🙂

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

我做到了这一点(Ubuntu最新截至2013年3月[我认为:)]):

 sudo gem install bundler 

信贷去雷巴克斯特 。

如果你需要gem,我这样安装Ruby(尽pipe这是长期征税):

 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 

我正在运行的Ubuntu 11.10和软件包可执行文件位于:

 /var/lib/gems/1.8/bin 

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

第1步:确保您在path实际工作区。例如,工作区/博客$:第2步:input命令:gem install bundler。 第3步:现在您应该全部设置捆绑安装或捆绑更新

我认为软件包可执行文件在:

/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/bin ,它不在你的$ PATH

确保在安装不同的ruby时执行rbenv rehash

你也可以创build一个符号链接:

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

我有完全相同的问题,并能够通过运行来解决它

 rbenv rehash 

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

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

显然这是一个烦人的做法,一些人写了一个gem,以确保你永远不需要再次运行rehash 。 rbenvgem,老调重弹

可能防干扰的path是将其添加到.bashrc或.zshrc中,无论您的shell是什么:

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

或者如果您已经在用户范围内安装了您的gem,请使用:

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