[Portland] Re: defending /opt/

Christopher Yeoh cyeoh at samba.org
Wed Jul 19 17:03:34 PDT 2006


> George Kraft wrote:
> > James Richard Tyrer <tyrerj at acm.org>/* wrote:
> > */James Richard Tyrer <tyrerj at acm.org>/* wrote:
> > 
> >     With all these links, is there really any point in installing an
> >     application in: "/opt/"? I suppose so, but I can't help but wonder.
> > 
> > Here is the original FHS rationale.
> > 
> > http://www.pathname.com/fhs/2.2/fhs-3.12.html
> > 
> > What do you do if three different vendors want to install Java?  The 
> > /opt/vendor/product/ resolves that.  What do you do if you want to 
> > install multiple versions of the same product?  What do you do if you 
> > want to install both ppc32 and ppc64?   The /opt/ isolates the vendor so 
> > they only polute their namespace subdirectory.  :-)
> > 
> > http://lsbbook.gforge.freestandards.org/pack-adv.html
> > 
> > In short, /opt/ is to protect /usr/ from insane 3rd party packages.
> >
> Yes, this is the rational.  It is also why apps installed in: "/opt/" do 
> not make links for their executables.
>
> IIUC, your method would defeat this rational since everything would be 
> linked to: "/opt/bin/", "/opt/lib/", "/opt/man/", "/opt/<etc>/" and you 
> are back to having collisions.  This is what I said that all the links 
> will defeat the purpose of installing in: "/opt/".

I think it would better if the links made for the executables in /opt
for /opt/bin, /opt/lib etc were made under the optional control of the
administrator installing the package. Analagous to how Debian handles
packages providing similar functionality and making the selection
through the /etc/alternatives mechanism.

This way you could have multiple packages installed, the /opt/bin
would merely be the default version used for the system, but with the others
still accessible.

> The method which OpenOffice uses works, however it would work just as 
> well if it were installed in: "/usr/local/OpenOffice-<version>/".  And 
> Firefox and Thunderbird binaries do install in: "/usr/local/<app_name>/" 
>   -- for some reason they don't use a version number (go figure since 
> you get folders with version numbers if you build Firefox from source).

/usr/local is meant to be used for locally compiled software, not
prepackaged binary packages.

Chris
-- 
cyeoh at au.ibm.com
IBM OzLabs Linux Development Group
Canberra, Australia


More information about the Portland mailing list