[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: gcc install/upgrade question



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 coco merseine nu  Z1aaaaaaa 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


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]