regin LoadError with rack-mount and backports when trying to run unicorn

Vít Ondruch vondruch at redhat.com
Fri Sep 20 07:26:55 UTC 2013


Dne 18.9.2013 19:26, Allen Hewes napsal(a):
> Hi Vit,
>
> I am not sure that this is related but, the bundler as "built" (packaged) in Fedora has a "bug" in it. "lib/bundler/vendor" should have never been removed [1].

It has to be removed due to Fedora policies.

> Well, if it was removed, someone should have modified bundler to load the thor/net-http-persistent gem via a require/relative_require. But that's not what happened.

There is no way how to do it, since you don't know where to find 
thor/net-http-persistent on the system. If Bundler had used original 
RubyGems require, it would be OK, but they opted to use their custom 
loader. That is the biggest fail in Bundler design (if we can speak of 
desing, since Bundler is unfortunately just pile of workarounds).

>
> As a matter of fact, bundler tells you NOT to use a "gem" installed version of thor [2], as that "may cause Bundler to malfunction in unexpected ways."

Yes, they opted for bundling instead of proper design. Unfortunately, 
Bundler upstream was never open to any of our suggestions towards better 
packaging and easier collaboration with distributions. They live in Ruby 
(MacOS X) world and they can't imagine, that somebody might use 
something else.

>
> When I looked into this for my needs, I determined that a patch would be required to make bundler happy if the "lib/bundler/vendor" directory was removed. You'd have to modify vendored_thor.rb and vendored_persistent.rb.

Could you share your patch with us, please?

>
> Usage of many of the bundler arguments (--with/without, etc) causes errors when "lib/bundler/vendor" has been removed.

Some examples? Bugzillas?


Vít


More information about the ruby-sig mailing list