Possible solutions to improve rubygems for intrepid

Stephan Hermann sh at sourcecode.de
Tue Sep 16 14:19:29 BST 2008


On Tue, 2008-09-16 at 09:42 +0200, Lucas Nussbaum wrote:
> On 15/09/08 at 21:51 -0400, Mathias Gug wrote:
> > Hi,
> > 
> > Here is a summary of the different solutions that have been discussed to
> > fix bug 145267 [1] aka binaries installed by gems via the gem command
> > are not on the PATH:
> > 
> > 1. Provide binaries in /usr/local/bin: 
> > 
> >   a. Via symlinks from /var/lib/gems/1.X/bin/: uses postinst hooks and
> >   update-alternatives. This is what the reverted upload implemented [2].  
> > 
> >   b. Put binaries directly in /usr/local/bin instead of
> >   /var/lib/gems/1.X/bin/. This solution has been suggested by Lucas [3].
> > 
> > Issues:
> > 
> >   * installed binaries could be overwritten by other installation
> >     systems and breaking binaries installed by the gem command. The gem
> >     sub-system would be less robust due to its links in /usr/local/bin/.
> This is not different than manually installed software (using
> ./configure ; make ; make install), so it's unlikely to be a surprise
> for the user.
> Note that 1.a requires upgrading rubygems to a VCS snapshot (so hooks
> can be used), while 1.b is a one-liner away.

Both ideas have one problem:

User 1 just does "gem install ..." and somehow all the stuff lands
somewhere in the general $PATH (/usr/local/bin/ or via alternatives).

User 1 just runs something from real ubuntu packages and this software
fails, because of different versions of dependend software
in /usr/local/bin or specified in alternatives.
User 1 just runs something from real ubuntu packages and this software
fails, because of different lib versions of dependend software.

User 1 writes bug reports to Launchpad, because he/she thinks it's
ubuntus problem, but in reallife it's a gem package which disturbed
his/her system.

Having the gem installation path somewhere far away from the standard
PATHs (speak: $PATH) is a better approach and the responsible admin or
the developer can symlink, move it, copy it somewhere where it fits for
his/her system.



Stephan '\sh' Hermann           | OSS Developer & Systemadministrator
JID: sh at linux-server.org        | http://www.sourcecode.de/
GPG ID: 0xC098EFA8              | http://leonov.tv/
3D8B 5138 0852 DA7A B83F  DCCB C189 E733 C098 EFA8

More information about the ubuntu-devel mailing list