2

Я пытаюсь установить postgresql в последней версии ubunutu и следую этим инструкциям. Когда я sudo -u postgres psql postgres я получаю эту ошибку: could not change directory to "/home/james"

Буду признателен за любую помощь.

2 ответа2

3

Я знаю, что это старый, но этот вопрос высоко оценивается в Google, и я предпочитаю мой ответ. :)

Вставьте -i в эту команду sudo - sudo также не изменит значение $ HOME, если вы не выполните команду -i (которая имитирует регистрацию i nitial). Это также загружает .profile пользователя postgres и т.д. Итак, что вы будете запускать это:

sudo -i -u postgres psql postgres

Демо время!

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

Одиночные кавычки важны для этого примера, кстати. :)

2

Похоже, что пользователь postgres, который вы используете для запуска psql, может не прочитать каталог, из которого вы выполняете оператор (/home/james/)

  • sudo = s witch u ser and do - sw
  • u = "как пользователь"
  • postgres = пользователь для переключения на
  • psql = команда для выполнения
  • postgres = база данных для подключения

я предполагаю здесь, но я думаю, что sudo откроет новую оболочку / окружение в текущем каталоге для postgres и выполнит там psql. Если psql не разрешено читать текущий каталог, эта ошибка может возникнуть.

попробуйте переключить каталог перед выполнением команды:

cd /tmp

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .