fixed by #218
This 'fix' got me. See this: http://stackoverflow.com/a/9280405/801751
What screwed me up is that I thought that heroku would use my default ruby version (seems pretty plausible, no?). since I set the default ruby version in rvm. I install missing dependencies, but nothing takes. Eventually I found the hard coded version number: 9c6fb48#L1R1
So, all the time I applied the missing dependencies they were being applied to the wrong version of ruby.
Just me, but this seems like a bad fix. I'm not a ruby person, so what do I know. Any non-rails ubuntu developers looking to work with heroku should not have to spend so much effort to get the toolbelt installed.
The fact that /usr/bin/heroku is written in ruby is an implementation detail, so the way that rvm is affecting anything at all is a bug. Changing the shebang to /usr/bin/ruby1.9.1 rather than using /usr/bin/env should sidestep rvm and force it to use the apt-get version of ruby that has all the correct dependencies declared, right?
@technomancy sounds about right to me.
I can give it a shot and let you know what happens.
The issue I had was something along the lines of
1) run heroku
2) see error message
3) run apt-get for missing dependency
4) go to 1
Since the default installed version of ruby is not 1.9.1 (but 1.9.2 or 1.9.3) I suspect the apt-get command was not installing the missing dependency for 1.9.1.
yeah, as suspected.
/usr/local/heroku/vendor/gems/rest-client-1.6.1/lib/restclient.rb:9:in rescue in <top (required)>': no such file to load -- net/https. Try running apt-get install libopenssl-ruby (LoadError)
from /usr/local/heroku/vendor/gems/rest-client-1.6.1/lib/rest_client.rb:2:in require'
from /usr/local/heroku/lib/heroku/client.rb:2:in require'
from /usr/local/heroku/lib/heroku.rb:3:in require'
from /usr/local/heroku/lib/heroku/cli.rb:1:in require'
from /usr/bin/heroku:31:in require'
rescue in <top (required)>': no such file to load -- net/https. Try running apt-get install libopenssl-ruby (LoadError)
Just to clarify, you're getting that same stack trace without /usr/bin/env in /usr/bin/heroku? I haven't used rvm before, but it sounds like I'll need to try it out on a VM over here. Are there any particular steps I would need to take to repro on a fresh install of rvm or is it pretty straightforward?
Correct. It was with #!/usr/bin/ruby1.9.1
I believe the error appears even if you don't install rvm. And it was a standard install of Ubuntu 10.04LTS.
As an aside, is there any reason you are against the idea of having a version check in the file instead of forcing a specific binary?
I wasn't able to repro this on a fresh Ubuntu without rvm, but I will try again.
I'm afraid I'm not clear on what you mean by "having a version check in the file". My current goal is to force use of the system level ruby 1.9 installation since we know we can rely on it having the basics in place, but I'm open to alternatives.
OK, I just attempted to repro this on a fresh Ubuntu install. I've installed rvm and used it to install ruby 1.9.2 as well as 1.8.7, and I can't get the heroku client to fail. Can you provide more detail about the steps you took to get these results?
Without doing a complete re-install myself, I can't do much more investigation here. I did try the commands as a different user (in case it was my path), but it behaved the same (ie broken as described above) when 1.9.1 is specified in the shebang.
Just to confirm, you tried it on Ubuntu 10.04 LTS. Not a more recent version?
If you could not reproduce on 10.04, then it must be some combination of other software installed here. :/
Oh, no I was doing this on the most recent release. I'll try again with the LTS.
Explicit dependency upon libopenssl-ruby1.9.1.
Older versions of Ubuntu did not bring this in with Ruby for some
reason. Also, lower the required version of libssl; apparently 0.9.8k
is new enough for our needs.
Looks like this is an issue where the ruby packages on lucid simply weren't declaring all the dependencies they needed. The next release will fix this issue.