Thread: Installation layout idea
It had occurred to me that it would be nice (if not necessary) that one could use `configure --prefix=/usr/local', and good things would happen. (replace /usr/local with any other shared prefix) Currently, bad things will happen, in particular in the include dir, but also under share, with severe cluttering. It is common in these cases to create package-specific subdirectories (/usr/local/include/pgsql, etc.), as indeed the binary packages do. Now it might be awkward to unconditionally append "pgsql" to various directory names; think `/usr/local/pgsql/include/pgsql'. Therefore I propose the following scheme, stolen in its entirety from Apache: The string "pgsql/" will automatically be appended to datadir (not the same as PGDATA), sysconfdir, includedir, and docdir, unless one of the following is true: 1) The user specified the particular directory manually (--sysconfdir, etc.), or 2) The expanded directory name already contains the string "pgsql" or "postgres" somewhere. I'd say that most users currently fall under exception 2), so they would not be affected. Those brave enough to try an install into /usr/local would finally get reasonable behaviour. One fine day we might also want to consider changing the default directory names from "pgsql" to "postgresql". It's not nice to use two different names, and the tarball is already named "postgresql". Is that a reasonable possibility? -- Peter Eisentraut Sernanders väg 10:115 peter_e@gmx.net 75262 Uppsala http://yi.org/peter-e/ Sweden
On Fri, 4 Aug 2000, Peter Eisentraut wrote: > It had occurred to me that it would be nice (if not necessary) that one > could use `configure --prefix=/usr/local', and good things would happen. > (replace /usr/local with any other shared prefix) > > Currently, bad things will happen, in particular in the include dir, but > also under share, with severe cluttering. It is common in these cases to > create package-specific subdirectories (/usr/local/include/pgsql, etc.), > as indeed the binary packages do. > > Now it might be awkward to unconditionally append "pgsql" to various > directory names; think `/usr/local/pgsql/include/pgsql'. Therefore I > propose the following scheme, stolen in its entirety from Apache: > > The string "pgsql/" will automatically be appended to datadir (not the > same as PGDATA), sysconfdir, includedir, and docdir, unless one of the > following is true: > > 1) The user specified the particular directory manually (--sysconfdir, > etc.), or > > 2) The expanded directory name already contains the string "pgsql" or > "postgres" somewhere. > > I'd say that most users currently fall under exception 2), so they would > not be affected. Those brave enough to try an install into /usr/local > would finally get reasonable behaviour. > > One fine day we might also want to consider changing the default directory > names from "pgsql" to "postgresql". It's not nice to use two different > names, and the tarball is already named "postgresql". Is that a reasonable > possibility? this one I have no problem with, specially since I would guess most everyone's shells have tab-completion, and therefore it isn't as if they have to type any more ... I do have issues with the whole /usr/local/include/pgsql concept though ... that is one of the things that I *really* hate about FreeBSD ports where they install qt 1.x in /usr/X11R6/include/qt and qt 2 in /usr/X11R6/include/qt2, and ... *roll eyes* I like the fact that everything goes into one place ...
The Hermit Hacker writes: > I do have issues with the whole /usr/local/include/pgsql concept though > ... that is one of the things that I *really* hate about FreeBSD ports > where they install qt 1.x in /usr/X11R6/include/qt and qt 2 in > /usr/X11R6/include/qt2, and ... *roll eyes* I like the fact that > everything goes into one place ... Whether or not this is a good idea is not really on trial here, although I'd certainly hate to have the 200 Qt include files cluttering /usr/include or some such directory. The fact is that various file system standards, including FHS and GNU (and apparently FreeBSD) request (require) such behaviour. As long as we install semi-internal files such as config.h we better put them in a non-shared location. The current state is broken in my mind. -- Peter Eisentraut Sernanders väg 10:115 peter_e@gmx.net 75262 Uppsala http://yi.org/peter-e/ Sweden