可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I am hosting on a vps, ubuntu 10.04, rails 3, ruby and mysql installed correctly by following some tutorials. If I run bundle check
or bundle install
I get the error '-bash: bundle: command not found'. From gem list --local
I see 'bundler (1.0.2, 1.0.0)' is installed.
I don't know what's going wrong...
gem environment
returns:
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/
and echo $PATH
returns:
/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
and which gem
returns:
/usr/bin/gem
locate bundle
returns:
/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/
回答1:
You need to add the ruby gem executable directory to your path
export PATH=$PATH:/opt/ruby-enterprise-1.8.7-2010.02/bin
回答2:
My problem was that I did:
sudo gem install bundler
So I had installed as root rather than as myself. So I uninstalled as root, then installed as myself:
sudo gem uninstall bundler
gem install bundler
rbenv rehash
(last command for if you are using rbenv)
And it worked. The "correct" path was in .bashrc
(or other shell profile), at least according to
$PATH
=> zsh: /Users/myself/.rbenv/shims:/Users/myself/.rbenv/bin: ... etc
but it was expecting it to be installed for myself - not for root. In my case, its rightful installation place is in ~/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/bundler
回答3:
... also for Debian GNU/Linux 6.0 :)
export PATH=$PATH:/var/lib/gems/1.8/bin
回答4:
I did this (Ubuntu latest as of March 2013 [ I think :) ]):
sudo gem install bundler
Credit goes to Ray Baxter.
If you need gem, I installed Ruby this way (though this is chronically taxing):
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
回答5:
I'm running ubuntu 11.10 and bundle executable was located in:
/var/lib/gems/1.8/bin
回答6:
Probably distro-proof path is adding this to your .bashrc or .zshrc, whatever your shell is :
PATH="$(ruby -e 'print Gem.default_dir')/bin:$PATH"
or if you have installed your gems user-wide, use :
PATH="$(ruby -e 'print Gem.user_dir')/bin:$PATH"
回答7:
My solution was to make sure I selected a version of Ruby for that repo.
Example: chruby 2.2.2
or rvm 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:
Step 1:Make sure you are on path actual workspace.For example, workspace/blog $:
Step2:Enter the command: gem install bundler.
Step 3: You should be all set to bundle install or bundle update by now
回答9:
I think bundle executable is on :
/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/bin
and it's not in your $PATH
回答10:
Make sure you do rbenv rehash
when installing different rubies
回答11:
You can also create a symlink:
ln -s /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/bin/bundle /usr/bin/bundle
回答12:
I had the exact same issue and was able to resolve it by running
rbenv rehash
After that bundle
worked as expected. Upon taking a look at the rbenv wiki entry it does mention that rehash should be run when an installed gem provides commands.
Installs shims for all Ruby executables known to rbenv (i.e.,
~/.rbenv/versions//bin/). Run this command after you install a new
version of Ruby, or install a gem that provides commands.
Apparently this is such an annoyance that some folks have written a gem to make sure you never need to run rehash
again.
rbenv-gem-rehash