Re: compile failure



On Mon, Dec 10, 2001 at 08:54:40PM -0600 or thereabouts, Marc Williams wrote:
> I need a hand about compiling from source.  I'm running RH 7.1 with
> Ximian Gnome.
... 
> The instructions say to run ./configure with the PREFIX switch like
> this:  --prefix=/path/to/gnome.  I had omitted this switch hoping that
> the defaults would work.  Evidently they don't.  What I don't understand
> is what is a /path/to/gnome?  Slocate tells me I've got gnome all over
> the place.  Which path would I use?
> 
> This is the second time I've seen an app suggest the PREFIX switch when
> configuring and I guess I don't understand it.  I could use some
> enlightenment.  Thanks!

It's to do with where Gnome thinks it should live on the filesystem.
Different distros (and different people building their own) have
different ideas about that. There is something called the Filesystem
Hierarchy Standard, which applies to Linux and to which distros are
moving. But interpretations of it differ. If you think that Gnome 
is an "add-on application software package", you will think that 
Gnome should live in /opt. If you think that it's a standard part 
of the system (and that it's shareable, and read-only, and so on,
which are also part of the requirements: the FHS is big!), you 
might put it in /usr. 

If you do ./configure with no arguments, the results will end
up in /usr/local, because this is traditionally where you stick
stuff that was locally compiled. 

To tell it that the program you're compiling lives in /foo and
that its configuration files are going into /plop, you would do

$ ./configure --prefix=/foo --sysconfdir=/plop

You can find out where gnome packages think they're installed
with "gnome-config --prefix" and "gnome-config --sysconfdir".
You can also find out other options for ./configure with 
./configure --help, which should list things specific for
that app.

If you are compiling tarballs on a machine which also uses
package management, however, there is an argument that you 
should put them in /usr/local and not put them into wherever
the rpms or debs put them. This avoids confusion, and avoids
installs or upgrades via the package manager overwriting 
stuff you put into that directory.

However, if you are already putting them in /usr/local (which
is what happens when you use "make install" at the end of the
compile process, and you are getting errors, something else
must be wrong. Perhaps it is looking for a program in "all
the usual places package managers put there"; and which you 
have compiled from source so it's in /usr/local and ./configure
is not seeing it. That's a guess, and probably wrong. 

You may need to post the specific errors you're getting
for people to look at.

Telsa

PS: Filesystem Hierarchy Standard at http://www.pathname.com/fhs/
(and pathname is such an appropriate name :))



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