Help installing postgres in ubuntu

2

I'm trying to install postgresql in the latest ubunutu, and I'm following these instructions. When I sudo -u postgres psql postgres I get this error: could not change directory to "/home/james"

I'd appreciate any help.

James

Posted 2010-07-22T06:45:24.410

Reputation: 4 189

Answers

2

It sounds like the user postgres, which you are using to run psql, may not read the directory you are executing the statement from (/home/james/)

  • sudo = s witch u ser and do - sw
  • u = "as user"
  • postgres = user to switch to
  • psql = command to execute
  • postgres = database to connect to

i'm guessing here, but i think sudo will open a new shell/environment in the current dir for postgres and execute psql there. If psql is not allowed to read the current dir, this error may occur.

try to switch the directory before executing the command:

cd /tmp

lajuette

Posted 2010-07-22T06:45:24.410

Reputation: 4 364

3postgres user has some home directory ( refer /etc/passwd ), its better to change to that dir more than /tmp. – thegeek – 2010-07-22T08:55:07.490

3

I know this is old, but this question comes up highly-ranked on Google, and I prefer my answer. :)

Stick a -i in that sudo command - sudo also doesn't change the value of $HOME unless you do the -i command (which simulates an initial login). That also load the postgres user's .profile, etc. So, what you would run is:

sudo -i -u postgres psql postgres

Demo time!

sauer@pyro:~$ sudo -u postgres sh -c 'echo $HOME'
/home/sauer
sauer@pyro:~$ sudo -i -u postgres sh -c 'echo $HOME'
/var/lib/postgresql

Single quotes are important to that example, BTW. :)

dannysauer

Posted 2010-07-22T06:45:24.410

Reputation: 837