Unable to run debugger for jruby - debugging

I've tried to follow various online references for jruby debugger but it is not working.
I've tried following: first change to root (does not work as normal user) then:
jruby -S gem install ruby-debug-base
jruby -S gem install ruby-debug-base
But then the following command fails:
jruby --debug -S rdebug ./classifier-wf.rb
Gem::LoadError: Could not find columnize (>= 0.1) amongst [jdbc-mysql-5.1.24, rake-10.0.3, ruby-debug-0.10.4, ruby-debug-base-0.10.4-java]
to_specs at /opt/jruby-1.7.3/lib/ruby/shared/rubygems/dependency.rb:247
activate_dependencies at /opt/jruby-1.7.3/lib/ruby/shared/rubygems/specification.rb:777
each at org/jruby/RubyArray.java:1613
activate_dependencies at /opt/jruby-1.7.3/lib/ruby/shared/rubygems/specification.rb:766
activate at /opt/jruby-1.7.3/lib/ruby/shared/rubygems/specification.rb:750
gem at /opt/jruby-1.7.3/lib/ruby/shared/rubygems.rb:1232
(root) at /opt/jruby-1.7.3/bin/rdebug:22
I am running jruby 1.7.3. thanks.

Use Pry instead of other debugger gems, soon you'll be addicted to it.

Related

Mysterious LoadError on installed gem with bundler

The following terminal session explains the problem. I don't understand how it's possible that I'm getting a load error on an installed gem.
The sailthru gem which isn't loading is something I installed today, which may be relevant. I verified it was installed to the same location as my other gems, and I also tried restarting the Terminal app. I'm using rbenv on a mac. However, I have not installed a new version of ruby for at least a few weeks, and have been using it daily until now without any issues.
Thanks for any help.
$ gem list | grep sailthru
sailthru (1.1.2)
sailthru-client (4.0.1, 2.0.0)
$ cat Gemfile | grep sailthru
gem 'sailthru'
$ cat Gemfile.lock | grep sailthru
sailthru (1.1.2)
sailthru
$ bundle exec thin start
Using rack adapter
/Users/jg/Dropbox/sinatra/app.rb:5:in `require': cannot load such file -- sailthru (LoadError)
$ irb
irb(main):001:0> require 'sailthru'
=> true
irb(main):002:0>
There is no sailthru file to require.
You should take a look at the project page.
require 'sailthru'
should be
require 'sailthru/client'
Hope this helps.
EDIT
Just noticed the last part where you gave irb output.
The sailthru.rb file is part of the sailthru-client gem. It is working through irb because irb is not loaded via bundle exec. This means that every gem installed is available in irb.
To fix this (if you need that sailthru-client gem in your app. Add gem 'sailthru-client' to your gem file. Do a bundle install, then run your bundle exec again.
You should not see that error after that. Keep in mind. bundle exec only uses gem libraries that are specified in your Gemfile.

Running padrinorb after installing says "Could not find padrino-core"

EDIT:
False alarm.
I was able to resolve the issue. Apparently I was to sudo happy and that broke the install of the gem.
I had to gem uninstall padrino, then gem install padrino.
Now it works flawlessly.
BTW, padrinorb is shaping up to be a nice balance between Sinatra and Rails.
// original post below:
Not sure what I did wrong.
I'm trying to test out Padrino, however I'm running into an issue straight away.
I'm following the steps starting with sudo gem install padrino adding sudo for good measure.
Then following along I did padrino g project myapp -d datamapper -b as their site states.
The problem is that it returns an error, so I decided to just run padrino as is with no args.
Error as well (it's long):
$ padrino
/Users/viper1092/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find padrino-core (>= 0) amongst [RedCloth-4.2.9, RedCloth-4.2.8, actionmailer-3.2.3, actionpack-3.2.3, activemodel-3.2.3, activerecord-3.2.3, activeresource-3.2.3, activesupport-3.2.3, addressable-2.2.7, albino-1.3.3, arel-3.0.2, blankslate-2.1.2.4, builder-3.0.0, bundler-1.1.3, bundler-1.0.22, chunky_png-1.2.5, chunky_png-1.2.1, classifier-1.3.3, coffee-rails-3.2.2, coffee-script-2.2.0, coffee-script-source-1.3.1, compass-0.12.1, compass-0.11.5, crack-0.1.8, daemons-1.1.3, directory_watcher-1.4.1, directory_watcher-1.4.0, erubis-2.7.0, eventmachine-0.12.10, execjs-1.3.0, faraday-0.7.6, fast-stemmer-1.0.1, fast-stemmer-1.0.0, ffi-1.0.11, ffi-1.0.9, fssm-0.2.9, fssm-0.2.7, haml-3.1.4, haml-3.1.2, heroku-2.24.1, heroku-2.20.1, hike-1.2.1, httparty-0.7.8, i18n-0.6.0, jekyll-0.11.2, jekyll-0.11.0, journey-1.0.3, jquery-rails-2.0.2, json-1.6.6, json-1.5.4, koala-1.3.0, kramdown-0.13.5, kramdown-0.13.3, launchy-2.1.0, launchy-2.0.5, liquid-2.3.0, liquid-2.2.2, mail-2.4.4, maruku-0.6.0, mime-types-1.18, mime-types-1.17.2, multi_json-1.2.0, multi_json-1.0.3, multipart-post-1.1.5, netrc-0.7.1, polyglot-0.3.3, posix-spawn-0.3.6, pygments.rb-0.2.11, pygments.rb-0.1.3, rack-1.4.1, rack-1.3.2, rack-cache-1.2, rack-protection-1.2.0, rack-ssl-1.3.2, rack-test-0.6.1, rails-3.2.3, railties-3.2.3, rake-0.9.2.2, rake-0.9.2, rb-fsevent-0.9.1, rb-fsevent-0.4.3.1, rdiscount-1.6.8, rdoc-3.12, rest-client-1.6.7, rubypants-0.2.0, rubypython-0.5.3, rubypython-0.5.1, rubyzip-0.9.7, rubyzip-0.9.6.1, sass-3.1.15, sass-3.1.5, sass-rails-3.2.5, sinatra-1.3.2, sinatra-1.2.6, sprockets-2.1.2, sqlite3-1.3.5, stringex-1.3.2, stringex-1.3.0, syntax-1.0.0, term-ansicolor-1.0.7, thin-1.2.11, thor-0.14.6, tilt-1.3.3, tilt-1.3.2, treetop-1.4.10, tzinfo-0.3.33, uglifier-1.2.4] (Gem::LoadError)
from /Users/viper1092/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec'
from /Users/viper1092/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems.rb:1210:in `gem'
from /Users/viper1092/.rvm/rubies/ruby-1.9.2-p290/bin/padrino:18:in `<main>'
Then if I take a look at gem list:
$ gem list
*** LOCAL GEMS ***
polyglot (0.3.3)
posix-spawn (0.3.6)
pygments.rb (0.2.11, 0.1.3)
Those are the only "p"s I have.
When I ran sudo gem install padrino initially:
Successfully installed padrino-mailer-0.10.6
Successfully installed bundler-1.1.3
Successfully installed padrino-gen-0.10.6
Successfully installed padrino-cache-0.10.6
Successfully installed padrino-admin-0.10.6
Successfully installed padrino-0.10.6
21 gems installed
I'm on Mac OS X 10.7.3 running RVM 1.10.2 with ruby 1.9.2 selected.
I've tried just gemming Padrino 3 times as gem install padrino with no sudo just for fun and it reports that it installs, but padrino (with or without args) fails with same error. Again, running gem list does not mention padrino or padrino-core.
Any advice?
(I have the full verbosity and it's quite lengthy)
I was able to resolve the issue. Apparently I was to sudo happy and that broke the install of the gem.
I had to gem uninstall padrino, then gem install padrino.
Now it works flawlessly.
I suppose sudo installing changes some system-wide /usr deal, idk.
Thanks if you looked over my question.
BTW, padrinorb is shaping up to be a nice balance between Sinatra and Rails.

Installing a gem has no effect (aka how to use check_puppet.rb)

I'm sure this question is an easy one for Ruby users. However for me this is a issue I can't figure out by myself.
My goal is to use a script included in the Puppet archive (ext/nagios/check_puppet.rb) on a Ubuntu-10.4 system.
I try to launch the script:
$ sudo ./check_puppet.rb
./check_puppet.rb:4:in `require': no such file to load -- sys/proctable (LoadError)
from ./check_puppet.rb:4
Ok so there's something missing. I fount out I need some library called sys-proctable available at http://raa.ruby-lang.org/project/sys-proctable/
wget http://rubyforge.org/frs/download.php/65609/sys-proctable-0.9.0-x86-linux.gem
[...]
sudo apt-get install rubygems
[...]
$ sudo gem install sys-proctable-0.9.0-x86-linux.gem
Successfully installed sys-proctable-0.9.0-x86-linux
1 gem installed
Installing ri documentation for sys-proctable-0.9.0-x86-linux...
Installing RDoc documentation for sys-proctable-0.9.0-x86-linux...
Everything looks pretty good so far! Time to launch the script again
$ sudo ./check_puppet.rb
./check_puppet.rb:4:in `require': no such file to load -- sys/proctable (LoadError)
from ./check_puppet.rb:4
the gem listoutput tells me this:
$ gem list
*** LOCAL GEMS ***
sys-proctable (0.9.0)
Where has this gem been installed?
Why can't the script load the sys-proctable lib?
What the %&$# am I doing wrong?
Where's the official doc of gem?
The gem is installed - but in Ruby 1.8 you need to have the line:
require 'rubygems'
To use rubygems. This changes the 'require' function so it will pull in rubygems when you ask it to.
So in the script:
https://github.com/puppetlabs/puppet/blob/master/ext/nagios/check_puppet.rb
Just add the require near the top and try again.
For instructions on other ways to use rubygems, consult the Rubygems documentation:
http://docs.rubygems.org/read/chapter/3#page70
this is what i am getting on centos 6.4
sudo ./check_puppet.rb
./check_puppet.rb:75:in `-': no implicit conversion to float from nil (TypeError)
from ./check_puppet.rb:75:in `check_state'
from ./check_puppet.rb:122
i added require 'rubygems'
and installed sys-proctable

Rspec bundle is broken in TextMate and rvm

I've had a difficult time since I started using rvm. I've done all the rvm/textmate set up and have the latest bundles but I still can't run Rspec test from textmate.
I have the latest bundle from github.com/rspec/rspec-tmbundle.git
and it's installed in ~/Library/Application\ Support/TextMate/Bundles/
RSpec.tmbundle
RVM default is using the system ruby 1.8.6
Rspec gem versions
gem list --local | grep spec
blue_light_special (0.2.0)
rspec (2.2.0)
rspec-core (2.2.1, 2.0.1)
rspec-expectations (2.2.0, 2.0.1)
rspec-mocks (2.2.0, 2.0.1)
rspec-rails (2.0.1, 1.3.2)
TextMate
TM_RUBY=/Users/jspooner/.rvm/bin/rvm-auto-ruby
The Error: rspec/core (LoadError)
/Users/jspooner/Library/Application Support/TextMate/Bundles/RSpec.tmbundle/Support/lib/rspec/mate.rb:29:in require': no such file to load -- rspec/core (LoadError) from /Users/jspooner/Library/Application Support/TextMate/Bundles/RSpec.tmbundle/Support/lib/rspec/mate.rb:29 from /tmp/textmate-command-8073.rb:2:inrequire' from /tmp/textmate-command-8073.rb:2
The best solution I've found is from Jacques Crocker.
http://groups.google.com/group/rubyversionmanager/browse_thread/thread/64b84bbcdf49e9b?fwc=1
It requires replacing the contents of textmate_ruby with the code below and never running rvm wrapper xxx textmate again.
#!/usr/bin/env sh
source ~/.rvm/scripts/rvm
cd .
exec ruby "$#"
This has also fixed the same issue with the cucumber bundle.
Did you try following the instructions here: http://rvm.io/integration/textmate/
My case is slightly different but took me more than an hour to figure out:
Turns out I ran rvm wrapper ree textmate a while after installing ree with rvm and in the mean time the ree shorthand changed from meaning ree-1.8.7-2010.01 to ree-1.8.7-2010.02
here's more details on my message:
https://gist.github.com/721987
I'm posting it here too because it's one of the first pages I landed onto while trying to figure this one out.
I've got a similar problem and figured out that my textmate ruby wrapper is pointing to a different version. I was able to get it work by putting below content in projectx/.rvmrc
rvm 1.9.2#projectx --create
rvm wrapper 1.9.2#projectx textmate
Hope this helps.

I see gem in "gem list" but have "no such file to load"

I am on Ubuntu10
sudo apt-get install ruby1.9.1-full
then download sources of rubygem 1.3.7 and install it
sudo ruby setup.rb
then, for example, install sinatra
sudo gem install sinatra
Finally open irb and type
require "rubygems"
require "sinatra"
and get error
LoadError: no such file to load -- sinatra
from (irb):2:in `require'
from (irb):2
from /usr/bin/irb:12:in `<main>'
I had exactly this problem. The problem is that gem and ruby disagree about where the gems live. Compare these:
ruby -e "puts Gem.path"
gem env
gem which sinatra
If you're like my setup, you'll notice that there's an entry in gem env's paths that isn't in Gem.path, and that's exactly where sinatra will claim to be. In my case, I had to add
export GEM_HOME=/usr/lib/ruby/gems/1.9.1
to my .profile. Then everyone was happy.
Execute
sudo gem install sinatra --verbose
and note the path where the gem is getting installed.
Then try this in irb
puts $LOAD_PATH
and make sure that gem is installed in one of the directories in $LOAD_PATH
And ideally just start using http://rvm.beginrescueend.com/
I usually hit this error when I forget:
require 'rubygems'
It'd be helpful if you provided the actual code sample, though, what gem you want to require, and what Ruby version you're using if this doesn't solve the problem.
This was before here on SO quite a few times. Problem is that you probably have two versions of ruby. The one is installing the gem and the other one is trying to use it. Do this in terminal:
$ which -a ruby
Or this:
$ which -a gem
to see if you have more than one version of ruby/gem installed. If so - remove one version (via $ rm or package manager of your system).
I use ruby gems 1.8.7 for a project. I was getting the same error. Use the line require 'rubygems'. It must always be the first require statement, otherwise you can get an error. In my code, I had
require 'watir'
require 'rubygems'
# more code
I got the error - in `require': no such file to load -- watir (LoadError).
When I put rubygems first, the error went away and everything worked. I don't know
why this happens.
Btw, I tried user24359 answer and it did not help me.
C:\code>ruby -e "puts Gem.path"
-e:1: uninitialized constant Gem (NameError)

Resources