2
votes

I installed Ruby on Rails on my mac today along with Gems and MYsql. I'm trying to follow the lynda.com tutorial and I've run into a brick wall. When I try to run the rails server it doesnt load WEBrick for some reason. This is the error I get:

/Library/Ruby/Gems/1.8/gems/railties-3.0.5/lib/rails/script_rails_loader.rb:11: warning: Insecure world writable dir /usr/local in PATH, mode 040777
/Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/runtime.rb:136: warning: Insecure world writable dir /usr/local in PATH, mode 040777
/Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle: dlopen(/Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.18.dylib (LoadError)
  Referenced from: /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
  Reason: image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
    from /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2.rb:7
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/runtime.rb:68:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/runtime.rb:68:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/runtime.rb:66:in `each'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/runtime.rb:66:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/runtime.rb:55:in `each'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/runtime.rb:55:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler.rb:120:in `require'
    from /Users/nutanpatel/Sites/simple_cms/config/application.rb:7
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.5/lib/rails/commands.rb:28:in `require'
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.5/lib/rails/commands.rb:28
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.5/lib/rails/commands.rb:27:in `tap'
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.5/lib/rails/commands.rb:27
    from script/rails:6:in `require'
    from script/rails:6

Any ideas on what I could do? Please help - I'm stuck!

I did rails -v and I'm on 3.0.5:

rails -v
/Library/Ruby/Gems/1.8/gems/railties-3.0.5/lib/rails/script_rails_loader.rb:11: warning: Insecure world writable dir /usr/local in PATH, mode 040777
/Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/runtime.rb:136: warning: Insecure world writable dir /usr/local in PATH, mode 040777
Rails 3.0.5

BTW: I tried to go and do this sudo chmod go-w /usr/local/bin but this did not resolve anything. Reason I did this was because of: warning: Insecure world writable dir /usr/local/bin in PATH, mode 040777

5
Did you ever resolve this? If so, how?Chance

5 Answers

1
votes

I strongly urge you to use rvm to install ruby and try again:

There are a number of issues with the default ruby that ships with OS X. When you install RVM, you can easily get a clean installation of ruby.

Make sure to read the install instructions carefully, especially the last bit about inserting a line into your .bashrc.

1
votes
1
votes

Forget the warning: Insecure world writable dir error, that's just a warning from Bundler and has nothing to do with the error that is keeping Rails from starting.

That error is due to the Mysql2 gem not loading properly. I had the same problem. Basically you need the mysql source files for the gem to compile properly. I solved it by installing Homebrew, then installing mysql with Homebrew, then running Bundle install again.

Try this:

  1. install Homebrew
  2. install mysql with hombrew: brew install mysql in a terminal
  3. delete the Gemfile.lock file inside your Rails app
  4. run 'bundle install` again
  5. try starting Rails with this command: bundle exec rails server

I know I'm a little late to this party, but I'm hoping this might help someone else.

0
votes

You have to set your Gemfile and run bundle install

-1
votes

You do seem to have permissions issues with your gems directory. Try resolving that with:

sudo find /Library/Ruby/Gems/1.8/gems/ -type d -exec chmod 755 '{}' +