c - How can I link my JSON extension to the correct Ruby version? -


if install ruby 2.1.6 (or 2.2.2, etc) , try require 'json', segfault. reported this , told "your json extension linked ruby 2.0.0, not ruby 2.1.6."

i install ruby versions ruby-install, , don't understand details of compiling ruby.

how can extension link right version of ruby?

clarification

this question compiling c source of ruby executable. requires c knowledge answer, not ruby knowledge; that's why tagged both languages.

my real goal able rails server latest ruby version (currently 2.2.2). doing require 'json' triggers segfault, rails s does.

update

i'm looking walk me through figuring out , fixing this.

i've tried moving entire ~/.rubies folder ~/.old_rubies , doing ruby-install ruby 2.2.2 scratch. i've tried uninstalling every json gem let me (although won't let me remove default gem). irb; require 'json' works, starting rails server segfaults.

it sounds you're dealing classic dependency-hell problem.

first things first: need isolate environment. don't want os-installed ruby or gems interfering project-installed ruby.

install these tools:

and follow homebrew directions each.

now install preferred ruby:

ruby-install ruby 2.2.2 

navigate project directory:

cd ~/projects/operation-snugglepants 

switch preferred ruby:

chruby 2.2.2 

then ensure you're not being pre-empted system ruby:

which ruby 

should give path like

~/.rubies/ruby-2.2.2/bin/ruby 

and verify it's right version:

ruby -v ruby 2.2.2p95 ... 

great -- you've got right ruby. let's make sure have right gems. set gem installation target project's directory:

gem_home . 

and install bundler:

gem install bundler 

then install gems:

bundle install 

after that's done, bundle rails server , verify it's working:

bundle exec rails server => booting webrick => rails 4.2.0 application starting in development on http://localhost:3000 

always make sure you've isolated system dependencies (system ruby , system gems) application dependencies (application ruby , application gems). never mix 2 if @ possible.

i use short bash script loads aliases on shell's startup "jump" ruby-project-specific environments, make things easier work -- feel free swipe it!


Comments

Popular posts from this blog

javascript - Using jquery append to add option values into a select element not working -

Android soft keyboard reverts to default keyboard on orientation change -

jquery - javascript onscroll fade same class but with different div -