Обсуждение: Darwin/MacOSX 10.1.1 newbie
I think I got through the compile successfully. I had to modify the
src/makefiles/Makefile.darwin to add -flat_namespace and I removed
$(CFLAGS) from the %.so: %.o line since the flags were getting repeated.
Even so I to do one of the library links by hand.
I got the 'postmaster' process running. But when I try to do the
'createdb' it fails with:
[localhost:~] postgres% createdb testdb
pqReadData() -- backend closed the channel unexpectedly.
This probably means the backend terminated abnormally
before or while processing the request.
connection to server was lost
createdb: database creation failed
[localhost:~] postgres% psql testdb
psql: FATAL 1: Database "testdb" does not exist in the system catalog.
The log from postmaster says:
[localhost:~] postgres% /usr/local/pgsql/bin/postmaster -D
/usr/local/pgsql/data
DEBUG: database system was shut down at 2001-11-17 07:50:23 PST
DEBUG: CheckPoint record at (0, 1522656)
DEBUG: Redo record at (0, 1522656); Undo record at (0, 0); Shutdown TRUE
DEBUG: NextTransactionId: 615; NextOid: 18720
DEBUG: database system is in production state
Server process (pid 13950) exited with status 11 at Sat Nov 17 08:04:43
2001
Terminating any active server processes...
Server processes were terminated at Sat Nov 17 08:04:43 2001
Reinitializing shared memory and semaphores
DEBUG: database system was interrupted at 2001-11-17 07:51:03 PST
DEBUG: CheckPoint record at (0, 1522656)
DEBUG: Redo record at (0, 1522656); Undo record at (0, 0); Shutdown TRUE
DEBUG: NextTransactionId: 615; NextOid: 18720
DEBUG: database system was not properly shut down; automatic recovery in
progress...
DEBUG: ReadRecord: record with zero len at (0, 1522720)
DEBUG: redo is not required
DEBUG: database system is in production state
FATAL 1: Database "testdb" does not exist in the system catalog.
---------------
Oh one other thing, I created the postgres user using the standard System
Preferences panel rather than adduser since that does appear to exist
under MacOS 10. Also I did change the ownership on /usr/local/pgsql/data
(I also tried it with chowning everything under /usr/local/pgsql).
The system is a PowerBook G3 Lombard running MacOS X 10.1.1 with the 10.1
dev tools. I tried to find a mailing list archive, but wasn't successful.
I may just need a pointer to that.
I did get it up and running without a hitch under LinuxPPC on an old beige
233 PowerMac. Looks great!
Thanks in advance,
-Nathan
velosa@cinenet.net
Nathan Wilson <velosa@cinenet.net> writes:
> [localhost:~] postgres% createdb testdb
> pqReadData() -- backend closed the channel unexpectedly.
Apple broke the system() library function in 10.1, which causes
Postgres to crash during CREATE DATABASE :-(
There is a kluge solution for this in current sources. Grab a
nightly snapshot tarball, or 7.2beta3 when it's out (should be
tomorrow). All existing releases up to and including 7.2beta2
are vulnerable to the bug.
regards, tom lane
At 8:23 AM -0800 11/17/01, Nathan Wilson wrote: >I think I got through the compile successfully. I had to modify the >src/makefiles/Makefile.darwin to add -flat_namespace and I removed >$(CFLAGS) from the %.so: %.o line since the flags were getting repeated. >Even so I to do one of the library links by hand. Did you have to do a --disable-mmap? Or did they fix that from 10.1 to 10.1.1? -- The opinions expressed in this message are mine, not those of Caltech, JPL, NASA, or the US Government. Henry.B.Hotz@jpl.nasa.gov, or hbhotz@oxy.edu
"Henry B. Hotz" <hotz@jpl.nasa.gov> writes:
> Did you have to do a --disable-mmap? Or did they fix that from 10.1 to 10.1.1?
CVS tip builds and passes regression out-of-the-box for me, on OSX 10.1.
(7.2b2 and before did not, because of a problem with the system()
library function.)
I have not installed 10.1.1 yet. If anyone has found that there's a
problem with post-7.2b2 sources on 10.1.1, *please* let us know ASAP.
regards, tom lane
A lot of these issues may not be Postgres, but here are the problems I ran into in the configure stage with the b3 version. Can't use kerberos 5 "error: library com_err is required for Kerberos 5" There is such a library and a man page for such a routine. If you create a 3-line dummey program to reference com_err() and use -lcom_err then you get some funny unresolved external reference by way of the kerberos 5 framework (which I never asked for). I'm not sure if this is a real problem in Apple's framework mechanism or a funny in the way configure and I are checking for the existence of the routine. Can't use openssl because there is no ssl.h file. This is an old 10.0 bug that I would have hoped was fixed by now. It does mean I can't test the openssl integration until I re-fix it though. Can't use tk. I loaded the alpha release of the native Aqua Tk port. It gets me a Wish Shell.app, not a /usr/bin/wish. This seems reasonable, but how do we get Postgres to use it? Can Postgres use it? The Tcl header files are in two different non-standard places. I had to sudo ln -s to get links all in one directory since it appears you can only have one --with-includes configure option. At least the 8.4 alpha includes the headers since the 8.3 with 10.0 didn't. -- The opinions expressed in this message are mine, not those of Caltech, JPL, NASA, or the US Government. Henry.B.Hotz@jpl.nasa.gov, or hbhotz@oxy.edu
"Henry B. Hotz" <hotz@jpl.nasa.gov> writes:
> Can't use tk. I loaded the alpha release of the native Aqua Tk port.
> It gets me a Wish Shell.app, not a /usr/bin/wish. This seems
> reasonable, but how do we get Postgres to use it? Can Postgres use
> it?
Hmm, AFAIK we only care about libtk, not wish; but possibly configure
is looking for wish as a proxy for determining whether tk is installed.
Feel free to propose a different test.
> The Tcl header files are in two different non-standard places. I had
> to sudo ln -s to get links all in one directory since it appears you
> can only have one --with-includes configure option.
configure --with-includes="path1:path2:pathN"
I believe this is documented.
regards, tom lane
At 3:36 PM -0500 11/30/01, Tom Lane wrote:
>"Henry B. Hotz" <hotz@jpl.nasa.gov> writes:
>> Can't use tk. I loaded the alpha release of the native Aqua Tk port.
>> It gets me a Wish Shell.app, not a /usr/bin/wish. This seems
>> reasonable, but how do we get Postgres to use it? Can Postgres use
>> it?
>
>Hmm, AFAIK we only care about libtk, not wish; but possibly configure
>is looking for wish as a proxy for determining whether tk is installed.
>Feel free to propose a different test.
Well, if we want the library we should test for the library. Based
on simplistic poking around I would propose "does it work to do cc
tkt.c -ltk -ltcl" where tkt.c contains:
#include <tk.h>
int main(int argc, char **argv)
{
Tcl_Interp i;
Tk_InitImageArgs(&i, argc, &argv);
}
I'll try faking it out when I get a chance. Maybe a ln -s
/Application/... /usr/local/bin/wish.
> > The Tcl header files are in two different non-standard places. I had
>> to sudo ln -s to get links all in one directory since it appears you
>> can only have one --with-includes configure option.
>
> configure --with-includes="path1:path2:pathN"
>
>I believe this is documented.
*sigh* Oh, probably. Postgres is a big program with justifiably big
documentation. I've done the the install a few times so I *think* I
don't need to look at the documentation beyond ./configure --help.
Thanks for the tip anyway.
--
The opinions expressed in this message are mine,
not those of Caltech, JPL, NASA, or the US Government.
Henry.B.Hotz@jpl.nasa.gov, or hbhotz@oxy.edu
Henry B. Hotz writes: > Can't use tk. I loaded the alpha release of the native Aqua Tk port. > It gets me a Wish Shell.app, not a /usr/bin/wish. This seems > reasonable, but how do we get Postgres to use it? Can Postgres use > it? 'wish' is used for PgAccess. We only need the command name to put it into a shell script (which is what pgaccess is) so different names should work if the call conventions are the same. You might want to try to configure thus: WISH='Wish Shell.app' ./configure .... This doesn't affect pgtksh though, it's only that they're lumped together under --with-tk. > The Tcl header files are in two different non-standard places. I had > to sudo ln -s to get links all in one directory since it appears you > can only have one --with-includes configure option. At least the 8.4 > alpha includes the headers since the 8.3 with 10.0 didn't. The tclConfig.sh file, which is the approved way of detecting Tcl-related configuration information, doesn't provide any means to find out the location of the header files, which makes for trouble on quite a few operating systems. -- Peter Eisentraut peter_e@gmx.net
At 12:41 PM +0100 12/2/01, Peter Eisentraut wrote: >Henry B. Hotz writes: > >> Can't use tk. I loaded the alpha release of the native Aqua Tk port. >> It gets me a Wish Shell.app, not a /usr/bin/wish. This seems >> reasonable, but how do we get Postgres to use it? Can Postgres use >> it? > >'wish' is used for PgAccess. We only need the command name to put it into >a shell script (which is what pgaccess is) so different names should work >if the call conventions are the same. You might want to try to configure >thus: > >WISH='Wish Shell.app' ./configure .... > >This doesn't affect pgtksh though, it's only that they're lumped together >under --with-tk. I did a ln -s /Applications/Wish\ Shell.app/Contents/MacOS/Wish\ Shell /usr/local/bin/wish, and I linked tclConfig.sh to tkConfig.sh. That got it past the configure step. If you really need wish then this probably wouldn't work. I know there is an easy way to start a GUI app from the command line and someone needs to create a shell wrapper for the purpose. It still failed to compile due to needing some X11 header file even though this is specifically not an X11 tk port. This is a tk issue not a Postgres issue. After loading the openssl .h files I was able to get it to configure as follows: --with-includes=<tcl header dirs> --with-tcl --without-tk --with-tclconfig=<tcl public header dir> --with-perl --with-krb4=/usr/local (I have kth-krb installed for AFS support, krb5 native doesn't work) --with-CXX --enable-syslog It passes all the regression tests. Note that I can't actually try out the kerberos support without paying $30/month for a postgres account including AFS space and the whole ball of wax. I just wanted to see if it would compile since the krb5 native option didn't work. I'm still not sure if this is a MacOSX linker issue or some funny in the way Postgres looks at kerberos. -- The opinions expressed in this message are mine, not those of Caltech, JPL, NASA, or the US Government. Henry.B.Hotz@jpl.nasa.gov, or hbhotz@oxy.edu