Skip to content
This repository

heroku .deb should include additional dependencies #174

Closed
ddollar opened this Issue · 15 comments

4 participants

David Dollar Wesley Beary Phil Hagelberg Tom Carchrae
David Dollar

ruby
libopenssl-ruby
libreadline-ruby

Wesley Beary geemus closed this
Wesley Beary
Owner

fixed by #218

Tom Carchrae

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.

Phil Hagelberg technomancy reopened this
Phil Hagelberg
Owner

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?

Wesley Beary
Owner

@technomancy sounds about right to me.

Tom Carchrae

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.

Tom Carchrae

yeah, as suspected.

tom@mars:~/git/ftweb2$ heroku
/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/restclient.rb:5:in
'
from /usr/local/heroku/vendor/gems/rest-client-1.6.1/lib/rest_client.rb:2:in require'
from /usr/local/heroku/vendor/gems/rest-client-1.6.1/lib/rest_client.rb:2:in
'
from /usr/local/heroku/lib/heroku/client.rb:2:in require'
from /usr/local/heroku/lib/heroku/client.rb:2:in
'
from /usr/local/heroku/lib/heroku.rb:3:in require'
from /usr/local/heroku/lib/heroku.rb:3:in
'
from /usr/local/heroku/lib/heroku/cli.rb:1:in require'
from /usr/local/heroku/lib/heroku/cli.rb:1:in
'
from /usr/bin/heroku:31:in require'
from /usr/bin/heroku:31:in
'

Phil Hagelberg
Owner

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?

Tom Carchrae

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?

Phil Hagelberg
Owner

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.

Phil Hagelberg
Owner

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?

Tom Carchrae
Tom Carchrae

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. :/

Phil Hagelberg
Owner

Oh, no I was doing this on the most recent release. I'll try again with the LTS.

Phil Hagelberg technomancy closed this issue from a commit
Phil Hagelberg 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.

Fixes #174.
b151599
Phil Hagelberg technomancy closed this in b151599
Phil Hagelberg
Owner

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.

Tom Carchrae
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.