Category: Rails

No source for ruby-1.9.3-p374 provided with debugger-ruby_core_source gem

After updating Ruby to 1.9.3-374 debugger stopped working:

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /home/mencio/.rvm/rubies/ruby-1.9.3-p374/bin/ruby extconf.rb 
checking for vm_core.h... no
checking for vm_core.h... no
Makefile creation failed
**************************************************************************
No source for ruby-1.9.3-p374 provided with debugger-ruby_core_source gem.
**************************************************************************
*** 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
	--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=/home/mencio/.rvm/rubies/ruby-1.9.3-p374/bin/ruby
	--with-ruby-dir
	--without-ruby-dir
	--with-ruby-include
	--without-ruby-include=${ruby-dir}/include
	--with-ruby-lib
	--without-ruby-lib=${ruby-dir}/lib


Gem files will remain installed in /path/gems/debugger-linecache-1.1.2 for inspection.
Results logged to /path/gems/debugger-linecache-1.1.2/ext/trace_nums/gem_make.out
An error occurred while installing debugger-linecache (1.1.2), and Bundler cannot continue.
Make sure that `gem install debugger-linecache -v '1.1.2'` succeeds before bundling.

How can we fix this?

gem install debugger-linecache -v '1.1.2' -- --with-ruby-include=\$rvm_path/src/ruby-1.9.3-p374

And that's all!

Ruby on Rails + Webrick: ERROR NoMethodError: undefined method ‘split’ for nil:NilClass

Recently after updating Ruby on Rails, after runnig Webrick in a development mode, it started to crush with such an error:

 ERROR NoMethodError: undefined method `split' for nil:NilClass
    /home/path/gems/rack-1.4.3/lib/rack/handler/webrick.rb:68:in `block in service'
    /home/path/gems/rack-1.4.3/lib/rack/utils.rb:387:in `block in each'
    /home/path/gems/rack-1.4.3/lib/rack/utils.rb:386:in `each'
    /home/path/gems/rack-1.4.3/lib/rack/utils.rb:386:in `each'
    /home/path/gems/rack-1.4.3/lib/rack/handler/webrick.rb:62:in `service'
    /home/path/ruby-1.9.3-p194/lib/ruby/1.9.1/webrick/httpserver.rb:138:in `service'
    /home/path/ruby-1.9.3-p194/lib/ruby/1.9.1/webrick/httpserver.rb:94:in `run'
    /home/path/ruby-1.9.3-p194/lib/ruby/1.9.1/webrick/server.rb:191:in `block in start_thread'

I don't know why it happens but I know how to fix it ;)
To do so, you need to find 68 line in a Webric server:

# Ofc change the path to your Webrick path
vim /home/path/gems/rack-1.4.3/lib/rack/handler/webrick.rb

Localize line 68 and change:

res[k] = vs.split("\n").join(", ")

to:

res[k] = vs.to_s.split("\n").join(", ")

It seams that the header value is somehow nil, that's why we cast it to empty string.

Copyright © 2025 Closer to Code

Theme by Anders NorenUp ↑