Rspec - bash: rspec: command not found

Hello, I’m going through the Rails 3 book (which is awesome by the
way) here: http://railstutorial.org/chapters/static-pages#top

In the book it has me using “rspec” which is installed:
bundle show rspec
/Library/Ruby/Gems/1.8/gems/rspec-2.0.0.beta.18

But when I go to run the test, “rspec spec/” I get “-bash: rspec:
command not found”

Did I miss a step? thxs!

Same issue with this command in the tutorial: “spork --bootstrap”

Any ideas?

On 30 August 2010 04:30, nobosh [email protected] wrote:

Did I miss a step? thxs!
As you’ve installed your gems with Bundler, try this instead:

bundle exec rspec spec

Bundler doesn’t necessarily install gems in the standard location,
which is possibly why the rspec executable isn’t in your $PATH (which
is why you got the ‘command not found’ error). Either way, when you’re
using Bundler, you almost always want to run Ruby commands in the
context of the bundle, which is what bundle exec does.

Chris

Also, I tried “bundle exec rspec spec” but that had no effect.

Do you have RSpec installed (not as a bundler gem)? Bundler won’t
install binaries for you – will just load the correct Ruby classes. Try
installing RSpec with “gem install rspec” or “sudo gem install rspec”
(keep an eye on the gem version) and try again.

  • A

Thanks Chris, I’ll try that now…

By the way, I get this error:

$ spec
/Library/Ruby/Site/1.8/rubygems.rb:335:in `bin_path’: can’t find
executable spec for rspec-2.0.0.beta.18 (Gem::Exception)
from /usr/bin/spec:19

Is there a PATH config option somewhere?

Here’s some info that might help:

mtvl08a231701:sample_app me$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/
X11/bin

mtvl08a231701:sample_app me$ gem ENV
RubyGems Environment:

  • RUBYGEMS VERSION: 1.3.7
  • RUBY VERSION: 1.8.7 (2009-06-12 patchlevel 174) [universal-
    darwin10.0]
  • INSTALLATION DIRECTORY: /Library/Ruby/Gems/1.8
  • RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/
    Versions/1.8/usr/bin/ruby
  • EXECUTABLE DIRECTORY: /usr/bin
  • RUBYGEMS PLATFORMS:
    • ruby
    • universal-darwin-10
  • GEM PATHS:
    • /Library/Ruby/Gems/1.8
    • /Users/me/.gem/ruby/1.8
    • /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/
      ruby/gems/1.8
  • GEM CONFIGURATION:
  • REMOTE SOURCES:

------ Does that look right?

Ok this work, found here: http://gembundler.com/ (Also pasted below)
I hope it helps someone else finding this…

Run an executable that comes with a gem in your bundle
$ bundle exec rspec spec/models
In some cases, running executables without bundle exec may work, if
the executable happens to be installed in your system and does not
pull in any gems that conflict with your bundle.

However, this is unreliable and is the source of considerable pain.
Even if it looks like it works, it may not work in the future or on
another machine.

If you want a way to get a shortcut to gems in your bundle
$ bundle install --binstubs
$ bin/rspec spec/models
The executables installed into bin are scoped to the bundle and will
always work

B