Thread: New User: PostgreSQL Setup - "The Program 'postgress' is needed by initdb but was not found in the same directory..."

Hello,

First off, sorry if this has been received by everyone already.  I sent it last night, and got an error about not being
alist member, so I joined, and am resending it now. 


I'm new to PostgreSQL, but am trying to set up a server on my machine.  The PostgreSQL server is to run inside of a LXC
container- I'm not sure if this is contributing to my problem or not, but it's worth mentioning.  The main OS (host) of
mymachine is  Ubuntu 11.10 (mostly, some packages are updated to newer versions), and my guest OS (inside the
container)is Debian.  I compiled PostgreSQL from source, and installed it inside the container.  However, I did have to
usethe "without zlib" and "without readline" options to compile.  This is strange, as both libraries are installed
(confirmedvia aptitude).   

I'm following the instructions that come with the source, and am stuck on this line:

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

When I run it, I get the following:

sh: cannot create /dev/null: Permission denied
fgets failure: Success
The program "postgres" is needed by initdb but was not found in the
same directory as "/usr/local/pgsql/bin/initdb".
Check your installation.

initdb and postgres both reside in /usr/local/pgsql/bin, which I've also added to my PATH.  Any help would be
appreciated. I was hoping PostgreSQL would be reasonably straightforward to install.  So far I've tried the Ubuntu
tutorials,as well as one or two others online.  Now I'm installing from source and using a mailing list....so much for
simplicity.  

I realize using LXC containers may add a layer of complexity, but what is it that I'm missing here?

Patrick Kevin McCaffrey <pkm@uwm.edu> writes:
> I'm new to PostgreSQL, but am trying to set up a server on my machine.  The PostgreSQL server is to run inside of a
LXCcontainer - I'm not sure if this is contributing to my problem or not, but it's worth mentioning.  The main OS
(host)of my machine is  Ubuntu 11.10 (mostly, some packages are updated to newer versions), and my guest OS (inside the
container)is Debian.  I compiled PostgreSQL from source, and installed it inside the container.  However, I did have to
usethe "without zlib" and "without readline" options to compile.  This is strange, as both libraries are installed
(confirmedvia aptitude).   

I don't know Ubuntu at all, but on many Linux distributions the problem
would likely be that you don't have the "-devel" or "-dev" subpackages
installed for zlib and readline.  The base package is enough to run
programs against the library, but not enough to compile against.

> I'm following the instructions that come with the source, and am stuck on this line:

> /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

> When I run it, I get the following:

> sh: cannot create /dev/null: Permission denied

That's bizarre.  I don't know much about LXC either, but it sounds like
it's not providing /dev/null to programs inside the container.  That's
pretty nasty :-(.  You might consider trying to get PG running without
a container first, so as to debug one problem at a time.

            regards, tom lane