gcc install/upgrade question

John Summerfield debian at herakles.homelinux.org
Tue Nov 6 02:00:14 UTC 2007


Ralf Corsepius wrote:
> On Tue, 2007-11-06 at 08:00 +0900, John Summerfield wrote:
>> Ralf Corsepius wrote:
>>> On Mon, 2007-11-05 at 19:03 +0900, John Summerfield wrote:
>>>> The standard way in this case is to follow the supplier's advice:FSF in 
>>>> this case. It should install to /usr/local, well out of your way and 
>>>> defined by standards to be used this way.
>>> If you do this, you are replacing the "system compiler" with a local one
>>> (/usr/local is special to gcc!). You will rarely want to do this under
>>> linux.
>> It's true that installing binaries to /usr/local/bin makes it the 
>> default compiler, but you do get to choose with your PATH settings.
>>
>>> Much less error prone is to install to a 
>>> prefix != /usr and prefix != /usr/local.
>>>
>>> The LSB recommended way would be to install to /opt or a subdirectory
>>> thereof (e.g. --prefix=/opt/gcc42).
> BTW: FHS would have been correct (my fault).
> 
>> /opt commonly seems to be populated with rpms.
>>  I'd keep out of it:
> /opt is reserved for vendors. That's exactly what you act as when
> installing additional packages in parallel to the one the OS vendor
> installs.


Bruce, the OP, was talking about doing this for his own use on his own 
system. He's functioning as an administrator and not as a vendor.

if he was packaging it for others outside his organisation, then he'd be 
functioning as a vendor.


> 
>> I prefer --prefix=/usr/local/gcc42 over /opt anything.
> Read the FHS. /usr/local/<package> violates the FHS.

We're talking about Bruce on his own computer. He owns /usr/local and 
can do what he wants with it. Vendors don't get a vote.

> 
> /usr/local/ traditionally is meant to be machine-local and meant to
> override the OS's defaults without destroying the OS-vendor's
> installation.

Exactly what Bruce wants to do.
> 
> Think of installing GCC on a "commercial *nix" (e.g. Solaris, AIX etc.).
> GCC is designed in a way such it installs to /usr/local/[bin|lib|...]
> that is doesn't collide with the OS-vendor's installation in
> /usr/[bin|lib|...].

He's not, and Linux does not follow commercial unix practice, and the 
FHS differs significantly from standard unix practice.


> 
>>  The vendor 
>> (Fedora in this case) is forbidden the use of /usr/local
> Right.
> 
>>  (and 
>> /var/local) beyond the basic layout whereas vendors often use /opt.
> Right, because vendors want to install in parallel to the OS, and not to
> override the OS (such as GCC).
> 
> ..., but this discussion is as old as the FHS exists. We won't solve it,
> either. All I can say: Don't install gcc to /usr/local/(bin|lib|...)
> unless you want to override the OS's setting. The devil is in the
> details.

For Bruce on his own machine, those are the standard places. Where else? 
  Certainly not /opt.





-- 

Cheers
John

-- spambait
1aaaaaaa at coco.merseine.nu  Z1aaaaaaa at coco.merseine.nu
-- Advice
http://webfoot.com/advice/email.top.php
http://www.catb.org/~esr/faqs/smart-questions.html
http://support.microsoft.com/kb/555375

Please do not reply off-list




More information about the fedora-list mailing list