Trouble installing json gem on mountain lion - ruby-on-rails-3

I tried running bundle install and it stopped on the json gem. So I tried running running sudo gem install json 1.7.3 which is the version that it crashed on it it gave the following:
unknown109addaae0a6:introhive Jody$ sudo gem install json
Building native extensions. This could take a while...
ERROR: Error installing json:
ERROR: Failed to build gem native extension.
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h
Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/json-1.7.3 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/json-1.7.3/ext/json/ext/parser/gem_make.out
Then if I look at the gem_make.out file it looks like this:
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h
I've tried making sure command line tools were installed, but I'm at a bit of a loss on how to get by this one.
Any help would be appreciated. Thanks

I was having a similar problem installing JSON 1.7.4 except I'm using RVM. Anyhow, what I did to remedy my problem was install Xcode 4.4 from developer.apple.com and once that was installed I had to install Xcode's command line tools. You can install the command line tools by launching Xcode then clicking Xcode > Preferences > Downloads and click install next to command line tools.

I eventually had to go to ruby 1.9.2 in order to make it work.

Upgrading from 1.9.3-p125 to 1.9.3-p194 did it for me.

It looks like Apple updated the Developer tools this month (August 2012)
I was hitting this problem and I just downloaded the latest Dev tools from https://developer.apple.com/downloads/index.action and now everything works.

I too had the same error message when trying to install Ruby On Rails on a Mountain Lion 10.8.2 system with Xcode 4.6.
A ruby version 1.8.6 is part of the normal OSX installation. After installation the command line tools in Xcode; as posted by Dwight Scott in this thread:
*launching Xcode then clicking Xcode > Preferences > Downloads and click install next to command line tools.*
The solution worked:
*<= 1.8.6 : unsupported
= 1.8.7 : gem install rdoc-data; rdoc-data --install
= 1.9.1 : gem install rdoc-data; rdoc-data --install
>= 1.9.2 : nothing to do! Yay!
Successfully installed json-1.7.6
Successfully installed rdoc-3.12.1
Successfully installed railties-3.2.11
Successfully installed bundler-1.2.3
Successfully installed rails-3.2.11
5 gems installed*
Thanks Dwight

Related

Error "...cannot load such file -- mysql2/2.0/mysql2 (LoadError)". On Windows XP with Ruby 2.0.0

The command rails server throws this error.
C:/Ruby200/lib/ruby/gems/2.0.0/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2/mysql2.rb:2:in `require': cannot load
such file -- mysql2/2.0/mysql2 (LoadError)
I use Ruby 2.0.0 from RubyInstaller on Windows XP box.
I figured out what is the problem but I don't know how to solve it. The problem is that there is no any 2.0/ directory in the mysql2-0.3.11-x86-mingw32 gem. This is the gem that rails installs as its dependency from Gemfile:
GEM
remote: https://rubygems.org/
specs:
... many gems here
mysql2 (0.3.11-x86-mingw32)
... many gems here
DEPENDENCIES
...
mysql2
...
This is what is in that mysql2.rb file:
# C:\Ruby200\lib\ruby\gems\2.0.0\gems\mysql2-0.3.11-x86-mingw32\lib\mysql2\mysql2.rb
RUBY_VERSION =~ /(\d+.\d+)/
require "mysql2/#{$1}/mysql2" # <<-- this is that #2 line that throws an error
It is obvious that it takes the current Ruby version number and uses it as the path segment to reach some mysql2 file. In fact it is mysql2.so file. As I use Ruby 2.0.0 the path segment is 2.0:
mysql2/2.0/mysql2
Ok, now lets see how that directory of mysql2-0.3.11-x86-mingw32 gem looks like:
dir: C:\Ruby200\lib\ruby\gems\2.0.0\gems\mysql2-0.3.11-x86-mingw32\lib\mysql2\
No any 2.0/ directory.
I know the issue about libmysql.dll. I have it in my C:\Ruby200\bin. It doesn't help.
I read this answer https://stackoverflow.com/a/5368767/1114926 from the creator of RubyInstaller. I tried but it didn't help. It works for Ruby 1.9.3 because there is 1.9/ directory. But it doesn't work for Ruby 2.0.0.
How to solve it?
UPD 1:
Thank you for your answer. I've tried. Unfortunately I have ERROR: Failed to build gem native extension. error:
C:\>gem install mysql2 --platform=ruby
Temporarily enhancing PATH to include DevKit...
Building native extensions. This could take a while...
ERROR: Error installing mysql2:
ERROR: Failed to build gem native extension.
C:/Ruby200/bin/ruby.exe extconf.rb
checking for rb_thread_blocking_region()... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=C:/Ruby200/bin/ruby
C:/Ruby200/lib/ruby/2.0.0/mkmf.rb:431:in `try_do': The compiler failed to generate an executable file. (Runtim
eError)
You have to install development tools first.
... other code follows here...
It says:
You have to install development tools first.
But I have full DevKit installed, RubyInstaller installs it. Can't understand what else does it need.
I've already posted an issue to mysql2 GitHub page https://github.com/brianmario/mysql2/issues/364. No answers yet.
Had the absolutely same issue on Windows 7 x64 with Ruby 2.0.0 and DevKit 4.7.
The following steps helped me.
gem uninstall mysql2
Download last MySQL connector from http://cdn.mysql.com/Downloads/Connector-C/mysql-connector-c-noinstall-6.0.2-win32.zip
Extract it to C:\connector-6.0.2
gem install mysql2 --platform=ruby -- '--with-mysql-lib="C:\connector-6.0.2\lib" --with-mysql-include="C:\connector-6.0.2\include" --with-mysql-dir="C:\connector-6.0.2"'
Or even shorter:
gem install mysql2 --platform=ruby -- --with-opt-dir="C:\connector-6.0.2"
uninstall mysql2-0.3.11-x86-mingw32, gems compiled before Ruby200 won't work. You have to compile it yourself.
If you run gem uninstall mysql2 and there is a non compiled version listed then just uninstall mysql2-0.3.11-x86-mingw32 - the compiled version else...
Installation
gem install mysql2 --platform=ruby. that would work.
Follow this guide on installing devkit http://rubyonwindowsguides.github.com/book/ch02-04.html.
Then try again.
Exactly the same behavior when I try to install Redmine on windows XP
when I try to do the "rake generate_secret_token", I got "cannot load
such file -- mysql2/2.0/mysql2 (LoadError)"
and when I try to re build mysql2 using --platform=ruby, I got the
same message as you green.
for the moment, I am stucked there ... but if anybody has anything to allow me to move forward, it will be very welcome.
I will keep informed as well
antoine
I almost done the same what #odiszapc described. Uninstall old gem, download mysql-connector-c-noinstall, unzip, but finally I used this command to build native gem:
gem install mysql2 --platform=ruby -- --with-opt-dir=/c/connector-6.0.2
(If you use git-bash then you can use unix style directory syntax.)
Copy paste from that link: https://github.com/brianmario/mysql2/issues/359. It worked for me.
If after installing the gem, you get an error:
"The specified module could not be found.
C:/Devel/Ruby200/lib/ruby/gems/2.0.0/gems/mysql2-0.3.11/lib/mysql2/mysql2.so"
That can be fixed by copying libmysql.dll to Ruby's bin folder.

gem install json -v 1.7.3 gives 'Please update your PATH to include build tools'

When I run:
rails new blog
I get:
Installing json (1.7.3)
Gem::InstallError: The 'json' native gem requires installed build tools.
Please update your PATH to include build tools or download the DevKit
from 'http://rubyinstaller.org/downloads' and follow the instructions
at 'http://github.com/oneclick/rubyinstaller/wiki/Development-Kit'
An error occurred while installing json (1.7.3), and Bundler cannot continue.
Make sure that `gem install json -v '1.7.3'` succeeds before bundling.
When I run:
gem install json -v 1.7.3
I get:
Please update your PATH to include build tools or download the DevKit
from 'http://rubyinstaller.org/downloads' and follow the instructions
at 'http://github.com/oneclick/rubyinstaller/wiki/Development-Kit'
I'm using Windows 8. I do have c:\ruby193\bin in my path. What do I do to remedy these errors?
Make sure you install the devkit (ticking the checkboxes that will update the path) :
You might need to reinstall ruby too.
Install the DevKit
Download Development Kit from here http://rubyinstaller.org/downloads/
DevKit url at this time For use with Ruby 1.8.7 and 1.9.3: DevKit-tdm-32-4.5.2
For use with Ruby 2.0 and above (32bits version only):
DevKit-mingw64-32-4.7.2
For use with Ruby 2.0 and above (x64 - 64bits only)
DevKit-mingw64-64-4.7.2
Follow instructions here.
Or short instructions :
Unzip the zip
open command-line and go to unzipped folder
ruby dk.rb init
ruby dk.rb install
gem install rdiscount --platform=ruby
sometimes when you run the ruby dk.rb init you got an error like this
for fixing this problem you have to change the encoding of the command prompt windows .
to do this type chcp 1256
and you will receive this message : Active code page: 1256
now you can run that command without problem .
good luck .
If you know that you have the proper DevKit installed (eg: via chocolatey), then you simply need to run the included script to set up environment variables.
In cmd:
C:\> d:\path\to\DevKit2\devkitvars.bat
In PowerShell:
PS> . d:\path\to\DevKit2\devkitvars.ps1
These scripts will set up the correct paths in your current command window.
Delete the old DevKit folder before you extract the new one which you will download from one of the following links, based on your configuration:
DevKit url at this time For use with Ruby 1.8.7 and 1.9.3: https://github.com/downloads/oneclick/rubyinstaller/DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe
For use with Ruby 2.0 and above (32bits version only): http://dl.bintray.com/oneclick/rubyinstaller/DevKit-mingw64-32-4.7.2-20130224-1151-sfx.exe2
For use with Ruby 2.0 and above (x64 - 64bits only) http://dl.bintray.com/oneclick/rubyinstaller/DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe3

Getting Rails working with a JS runtime environment

I'm using Ubuntu 11.10 and the terminal to install and run Rails. Here
is the process I've taken so far to setup Rails:
download and install Ruby 1.9.2 and Rails 3.1.0
-- I did this using sudo apt-get ruby1.9.1 and sudo gem install
rails
I made a new rails app using rails new path/to/app
I went to the new app directory and tried running rails server and got an
error about not having a JS ruby environment
I had to get a JS runtime environment for execjs so I downloaded 'therubyracer'
as well as 'therubyrhino' and added them to my gem file, one at a time like this:
gem
'therubyracer' then ran bundle install
After everything was successful with the install, I ran rails server again
-- with both runtime environments I have had similar errors:
Could not find libv8-3.3.10.4 in any of the sources
Run `bundle install` to install missing gems.
Could not find therubyrhino-1.73.0 in any of the sources
Run `bundle install` to install missing gems.
Bundle knows where these programs live, giving correct pathnames when I
enter bundle show libv8 or bundle show therubyrhino. They are both
in /usr/lib/ruby/gems/1.9.1/gems/_ where all the other gems are
located for the bundle install.
Does anyone know where this exception is coming up in the Rails source
code? Does anyone know how Rails is gathering the gems? Better yet,
anyone had this problem and know how to fix it?
Thanks so much,
Feav
Have you tried starting the server using bundle exec rails server?
This problem has been fixed in a newer version of Rails.

Anyone having issues installing bson_ext gem in OSX lion

OSX Lion, Xcode 4.2, GCC 4.2
I get the following error installing bson_ext 1.4.1
Building native extensions. This could take a while...
ERROR: Error installing bson_ext:
ERROR: Failed to build gem native extension.
/Users/user/.rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb
checking for asprintf()... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
I just ran into this. You should look in the mkmf.log file. Chances are, it's looking for GCC in the wrong place. I had to:
cd /usr/bin
sudo ln -s i686-apple-darwin11-llvm-gcc-4.2 i686-apple-darwin11-gcc-4.2.1
And all was well.
The accepted answer did not work for me. But this did.
I am using:
OS X 10.8.2
Xcode 4.6 (with command line tools)
bson_ext 1.8.2
cd /usr/bin && sudo ln -s ./gcc gcc-4.2
$ gem install bson_ext -v 1.8.2
Building native extensions. This could take a while...
Successfully installed bson_ext-1.8.2
1 gem installed
Installing ri documentation for bson_ext-1.8.2...
Installing RDoc documentation for bson_ext-1.8.2...
So re-installing OSX lion fixed the problem. I guess uninstalling xcode 4.1 in the first place messed up my developer tools installation.
Thanks for the help.
I don't use XCode for anything but the developer tool binaries so I just uninstalled XCode:
sudo /Developer/Library/uninstall-devtools –mode=all
And then installed this:
https://github.com/kennethreitz/osx-gcc-installer
Fixed the problem right up and I saved some HD space to boot.

Rails Server Won't Run on OS X Lion

I'm a beginner programmer and I'm trying to get the rails server to run on OS X Lion. When I type "rails server" into the command line, I get this error:
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:777:in `report_activate_error': Could not find RubyGem rails (>= 0) (Gem::LoadError)
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:211:in `activate'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:1056:in `gem'
from /usr/bin/rails:18
What do you think a solution to the problem is? Any help you can provide would be greatly appreciated. Thanks!
You need to install the rails gem. You could probably do this by running bundle install inside that project.
Have you installed the Rails Gem?
gem install rails
Then do a gem list to see if Rails is in there.
It's also important that you be in the proper directory. So if you keep all of your apps in /apps/ make sure you are in /apps/my_app before calling the server command.
The Ruby bundled with OS X is too old for Rails 3.
I would recommended using 'rvm' to install the latest stable version of ruby-1.9.2-p260
Since installing ruby requires some compilation, make sure you have a gcc installed. You can install XCode to get an usable gcc.
To install rvm, you need bash, git and curl.
RVM: http://beginrescueend.com/
After that, you can use
gem install rails
Enjoy!
The Lion Server looks at a non-default path for the gem file
For example have a look at the first line of /usr/share/devicemgr/backend/devicemgrd:
#!/usr/bin/env GEM_HOME=/usr/share/devicemgr/webserver/gems GEM_PATH=/usr/share/devicemgr/webserver/gems RAILS_ENV=production /usr/bin/ruby
So to install the missing gems, make sure to install them at the required path:
sudo GEM_HOME=/usr/share/devicemgr/webserver/gems gem install rails