gcc install/upgrade question

Ralf Corsepius rc040203 at freenet.de
Tue Nov 6 06:44:01 UTC 2007


On Tue, 2007-11-06 at 11:00 +0900, John Summerfield wrote:
> 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.
Nit-picking. The difference is moot. It doesn't matter who builds a
piece of SW, whether he exercises "configure && make && make install" or
installs a pre-built tar-ball or rpm. The result to his system is the
same: A package is being installed.
 
> >> 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.
Yes, everybody has the right to shoot himself into his own foot.

> > 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.
FHS is a guideline trying provide a "standard unix practice". The fact
that almost any admin implements his own "private conventions" is a
different problem.

> >>  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.
I disagree. /opt/ is a perfect location for parallel
installation. /usr/local is an appropriate location to override the
system without distroying the OS-vendor's installation.

Ralf





More information about the users mailing list