[DRE-maint] Bug#710814: Bug#710814: rubygems-integration: fails to override bin_path

Paul van Tilburg paulvt at debian.org
Wed Jun 5 19:35:59 UTC 2013


Heya,

On Sun, Jun 02, 2013 at 07:18:00PM +0200, Christian Hofstaedtler wrote:
> there is a problem with rubygems-integration in which it fails to
> properly override the binary path for gems.
> 
> This is mostly seen when having bin stubs from previously installed
> gems in /usr/local/bin, for example:
> 
> % nokogiri
> /usr/local/bin/nokogiri:23:in `load': cannot load such file -- /usr/share/rubygems-integration/1.9.1/gems/nokogiri-1.5.9/bin/nokogiri (LoadError)
>         from /usr/local/bin/nokogiri:23:in `<main>'
> 
> Explicitly calling /usr/bin/nokogiri works fine.

A log of a chroot install to reproduce this for rake in Wheezy:

  root at entropy:/# apt-get install rake rubygems rubygems-integration
  Reading package lists... Done
  Building dependency tree       
  Reading state information... Done
  The following extra packages will be installed:
    libffi5 libreadline5 libruby1.8 libruby1.9.1 libssl1.0.0 libyaml-0-2
  ruby ruby1.8
    ruby1.9.1
  Suggested packages:
    ri ruby-dev ruby1.8-examples ri1.8 ruby-switch ruby1.9.1-examples
  ri1.9.1 graphviz
    ruby1.9.1-dev bundler
  Recommended packages:
    zip ruby1.8-dev
  The following NEW packages will be installed:
    libffi5 libreadline5 libruby1.8 libruby1.9.1 libssl1.0.0 libyaml-0-2
  rake ruby ruby1.8
    ruby1.9.1 rubygems rubygems-integration
  0 upgraded, 12 newly installed, 0 to remove and 0 not upgraded.
  Need to get 4782 B/9142 kB of archives.
  After this operation, 27.5 MB of additional disk space will be used.
  Do you want to continue [Y/n]? y
  [...]

  root at entropy:/# rake --version
  rake, version 0.9.2.2

  root at entropy:/# gem install rake --version 0.9.0
  Fetching: rake-0.9.0.gem (100%)
  Successfully installed rake-0.9.0
  1 gem installed
  [...]

  root at entropy:/# /usr/local/bin/rake --version
  /usr/local/bin/rake:23:in `load': cannot load such file --
  /usr/share/rubygems-integration/1.9.1/gems/rake-0.9.2.2/bin/rake (LoadError)
          from /usr/local/bin/rake:23:in `<main>'


It seems that the problem occurs if a "older" gem with a program is
installed while already the same but newer is installed via Debian and
rubygem-intergration.  (That is why I explicitly install rake 0.9.0, while
Debian Wheezy has 0.9.2.2.)

Also involved is the binary "stub" generation by our patched RubyGems
implementation.  It seems to put the stub(s) somewhere in /usr/local/bin
and to carry no version requirement so that it takes the newest one.
This is fine, but in case of it finding our Debian integration-gemspec
it should use /usr/bin as bin path, not
/usr/share/rubygems-integration/1.9.1/gems/<gem>-<version>/bin/<program> IMO.

(Btw, it seems to disregard version specifications as well, ie.

   # rake _0.9.0_ --version
   rake, version 0.9.2.2

 but that is another issue :))

Cheers,
Paul

-- 
Using the Power of Debian GNU/Linux  | E-mail: paulvt at debian.org
Jabber/GTalk: paul at luon.net          | GnuPG key ID: 0x50064181



More information about the Pkg-ruby-extras-maintainers mailing list