148

我通过遵循一些教程正确安装了 vps、ubuntu 10.04、rails 3、ruby 和 mysql。如果我运行bundle checkbundle install收到错误“-bash: bundle: command not found”。从gem list --local我看到“捆绑器(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/
4

15 回答 15

211

我的问题是我做了:

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

于 2013-06-26T09:35:16.743 回答
92

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

export PATH=$PATH:/opt/ruby-enterprise-1.8.7-2010.02/bin
于 2010-10-12T13:14:27.437 回答
26

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

export PATH=$PATH:/var/lib/gems/1.8/bin
于 2012-01-18T09:42:35.547 回答
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
于 2013-03-27T04:25:10.390 回答
5

无论您的 shell 是什么,可能的发行版路径都将其添加到您的 .bashrc 或 .zshrc 中:

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

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

PATH="$(ruby -e 'print Gem.user_dir')/bin:$PATH"
于 2017-10-24T11:34:08.043 回答
3

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

/var/lib/gems/1.8/bin
于 2011-12-05T09:07:04.923 回答
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/.........
于 2015-08-07T17:15:18.260 回答
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
于 2020-02-25T03:24:57.633 回答
1

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

于 2014-06-12T13:05:21.920 回答
1

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

于 2020-06-19T03:06:45.527 回答
1

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

于 2016-06-14T14:12:09.253 回答
1

在我的 Arch Linux 安装中,~/.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
于 2019-08-11T22:18:46.193 回答
0

您还可以创建符号链接:

ln -s /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/bin/bundle /usr/bin/bundle
于 2011-10-20T19:12:29.683 回答
0

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

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

于 2010-10-12T13:01:27.400 回答
0

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

rbenv rehash

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

为 rbenv 已知的所有 Ruby 可执行文件安装 shims(即 ~/.rbenv/versions/ /bin/)。在安装新版本的 Ruby 或安装提供命令的 gem 后运行此命令。

显然,有些人写了一个 gem 来确保你永远不需要rehash再次运行,这很烦人。 rbenv-gem-rehash

于 2015-12-16T19:37:15.597 回答