motu-release will revert libgems-ruby to the old state.

Mathias Gug mathiaz at ubuntu.com
Thu Sep 4 05:08:19 BST 2008


Hi Loïc,

On Mon, Sep 01, 2008 at 09:43:19PM +0200, Loïc Minier wrote:
> On Mon, Sep 01, 2008, Mathias Gug wrote:
> > This was indeed suggested at the very beginning of the bug thread [1] by
> > using /etc/profile.d/. However it was rejected on the following grounds
> > [2]
> 
>  I'm not quite sure I agree with the rationale; I agree it's a good
>  policy that programs /installed by packages/ must not depend on
>  environment variables to get reasonable /defaults/.  However:
>  * it's not against policy that programs installed via gems (not
>    installed by packages) rely on a specific PATH or LD_LIBRARY_PATH to
>    work
>  * it's not against policy to setup a system to try to expand its PATH
>    to use additional data, as long as using the default PATH wouldn't
>    break the system and its packages

What do you mean by "as long as using the default PATH wouldn't break the system and its packages" ?

Do you mean that only the gem system should be setup to use gem
installed binaries ?

>  * the rubygems package doesn't require a custom PATH setting to do its
>    work (installing gems) -- however you do need special settings to use
>    the installed data (gems)

We have two use cases to cover here:

 A.The end user wants to use a binary provided by a gem from the command
   line (shell environment). 
   Example: the rails command to start a rails project. 

 B. A daemon that runs gem installed binaries. 
   Example: cgi scripts under apache2.

>  * Ubuntu went through the hassle of promising that PATH is set in
>    exactly one place across the whole system
>    <https://wiki.ubuntu.com/OneTruePath>; especially in light of "Ubuntu
>    wants to remove /usr/games from the default $PATH" in the above spec,
>    it seems that it's a long term desired distro feature to define the
>    PATH in a central place for various use cases and this sounds like a
>    good use case
> 
>  An issue I see with relying on the PATH env var is that its old value
>  is in a bunch of running processes; probably not worse than upgrading a
>  lib such as libssl and having to restart services to pick it up.
>

This seems to cover use case A, but not use case B as pointed out by
Kees [1] - the default PATH for apache2 is: /usr/local/bin:/usr/bin:/bin.

[1]: https://lists.ubuntu.com/archives/ubuntu-devel/2008-September/026338.html

It seems to me that symlinking gems binaries to /usr/local/bin/ is the
simplest solution to cover both use case A. and B.

-- 
Mathias Gug
Ubuntu Developer  http://www.ubuntu.com



More information about the ubuntu-devel mailing list