Thread: Cannot initdb for 8.2.1 - "..../postgres.bki" does not exist
Hello, I'm trying to install and init 8.2.1 on a FreeBSD 6.2 server. It used to run 8.1.4 no problem. I uninstalled 8.1, renamed /usr/local/pgsql in case I ever need it (I'm not really bothered about preserving the data) and built 8.2.1 - all fine. But when I try to initdb: --- root@cheddar> su -l pgsql \u@cheddar> /usr/local/bin/initdb -D /usr/local/pgsql/data -E UNICODE initdb: file "/usr/local/share/postgresql/postgres.bki" does not exist This means you have a corrupted installation or identified the wrong directory with the invocation option -L. --- Tried adding " -L /usr/local/share/postgresql/" (and removing -E) but no joy. The .../share/postgresql/ files do exist. Not sure why this is happening now, it's never happened before. I've got a horrible feeling it's something embarrassingly simple but I'm stumped. And clues? Many thanks --- Simon Kinsella This message has been scanned for viruses.
On Wed, 2007-01-31 at 01:27 +0000, Simon Kinsella wrote: > Hello, > > I'm trying to install and init 8.2.1 on a FreeBSD 6.2 server. It used to run > 8.1.4 no problem. I uninstalled 8.1, renamed /usr/local/pgsql in case I > ever need it (I'm not really bothered about preserving the data) and built > 8.2.1 - all fine. > > But when I try to initdb: > > --- > root@cheddar> su -l pgsql > \u@cheddar> /usr/local/bin/initdb -D /usr/local/pgsql/data -E UNICODE > initdb: file "/usr/local/share/postgresql/postgres.bki" does not exist > This means you have a corrupted installation or identified > the wrong directory with the invocation option -L. I'm go gonna out on a limb here and guess that the files postgresql is trying to initdb with are 8.1 and not 8.2 version files.
"Simon Kinsella" <simon@bluefiresystems.co.uk> writes: > \u@cheddar> /usr/local/bin/initdb -D /usr/local/pgsql/data -E UNICODE > initdb: file "/usr/local/share/postgresql/postgres.bki" does not exist > This means you have a corrupted installation or identified > the wrong directory with the invocation option -L. > The .../share/postgresql/ files do exist. Looking at the code, this message is emitted if attempting to stat() the file fails, regardless of what the actual errno is. So I'm wondering about permissions problems, specifically inability to search one of the directories on the path. We should adjust initdb to report the actual kernel errno value, instead of presuming that it's "file not found". regards, tom lane
Thanks for your input guys - I had to put this problem on hold for a few days. In case it helps anyone in a similar boat, this problem seems to have been due to a umask of 0027. Changing to 022 seems to have fixed it. Cheers, Simon Kinsella -----Original Message----- From: pgsql-admin-owner@postgresql.org [mailto:pgsql-admin-owner@postgresql.org] On Behalf Of Tom Lane Sent: Wednesday, January 31, 2007 4:01 AM To: Simon Kinsella Cc: pgsql-admin@postgresql.org Subject: Re: [ADMIN] Cannot initdb for 8.2.1 - "..../postgres.bki" does not exist "Simon Kinsella" <simon@bluefiresystems.co.uk> writes: > \u@cheddar> /usr/local/bin/initdb -D /usr/local/pgsql/data -E UNICODE > initdb: file "/usr/local/share/postgresql/postgres.bki" does not exist > This means you have a corrupted installation or identified the wrong > directory with the invocation option -L. > The .../share/postgresql/ files do exist. Looking at the code, this message is emitted if attempting to stat() the file fails, regardless of what the actual errno is. So I'm wondering about permissions problems, specifically inability to search one of the directories on the path. We should adjust initdb to report the actual kernel errno value, instead of presuming that it's "file not found". regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 2: Don't 'kill -9' the postmaster