Bundler:找不到命令


140

我通过以下一些教程正确安装了vps,ubuntu 10.04,rails 3,ruby和mysql。如果我运行bundle checkbundle install收到错误“ -bash:bundle:命令未找到”。从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/

7
您安装了捆绑软件吗?
shingara 2010年

Answers:


87

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

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

14
在uBuntu 11.04下,最新的命令路径现在为export PATH = $ PATH:/var/lib/gems/1.8/bin
Antony

更新:在ubuntu 11.04下,路径似乎无关紧要,因为只要我们要使用最新的RubyGem,我们只需要安装RVM并安装所需的Ruby版本即可。
安东尼

对我有用的安东尼,我已经提交了主要答案的更新。
Michael Durrant

5
对于Arch Linux,请使用export PATH = $ PATH:〜/ .gem / ruby​​ / 2.0.0 / bin(根据您的Ruby版本进行调整)
Kostas Maragos 2013年

对于rvm export /usr/local/rvm/gems/ruby-1.9.3-p448/bin:$PATHENV PATH /usr/local/rvm/gems/ruby-1.9.3-p448/bin:$PATH与Docker 一起使用。
crizCraig 2013年

199

我的问题是我做了:

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


3
rbenv是RVM的替代方法。它管理您所有不同的红宝石版本。当您安装宝石时,gem install它会与当前使用的红宝石版本一起安装,您可以在执行rbenv versions该操作时看到它(它应该标有*)。当您安装捆绑软件gem时,您可以使用bundle installgem,这将使您可以按项目安装gem。您倾向于使用的宝石gem install是捆扎机和宙斯之类的东西。当您gem install运行时,您需要rbenv rehash随后运行。它就是这样。
xxjjnn 2014年

我在Windows上遇到了这个问题。然gem install bundler,现在一切都很好。
Dan Atkinson

25

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

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

没有为我工作,有什么建议吗?-GEM路径:-/var/lib/gems/1.8-/kunden/homepages/11/dxxxxxx/htdocs/.gem/ruby/1.8 echo $ PATH〜/ .composer / vendor / 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:/无功/ lib目录/宝石/ 1.8 / bin中
胡安

15

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

3

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

/var/lib/gems/1.8/bin

3

我的解决方案是确保为该存储库选择了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/.........

3

不管您的外壳是什么,可能是防发行版的路径将其添加到您的.bashrc或.zshrc中:

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

或者,如果您已在整个用户范围内安装了gems,请使用:

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

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

1

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


1

步骤1:确保您在实际的工作空间路径上。例如,workspace / blog $:步骤2:输入命令:gem install bundler。步骤3:您现在应该都已准备好捆绑安装或捆绑更新


1

在我的Arch Linux安装中,~/.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

0

我认为捆绑可执行文件是在:

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


0

您还可以创建一个符号链接:

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/bundle您应该bundle创建一个符号链接来捆绑而不是整个bin目录吗?
Ashish Singh

0

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

rbenv rehash

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

为rbenv已知的所有Ruby可执行文件(例如〜/ .rbenv / versions / / bin /)安装垫片。在安装新版本的Ruby或安装提供命令的gem后,请运行此命令。

显然,这很烦人,有些人写了一颗宝石,以确保您不再需要rehash再次跑步。 rbenv-gem-rehash


0

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

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 检查更多信息

通过发出此命令来收听工作

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.