Шаг 1: Я установил PostgreSQL с помощью sudo apt-get install postgresql-9.1 как рекомендовано на сайте PostgreSQL
Шаг 2: Я пытался запустить postgres . Это не найдено. По какой-то причине установка не добавляет его в путь? Поэтому мне пришлось вручную добавить строку export PATH=$PATH:/usr/lib/postgresql/9.1/bin в конец моего ~/.profile . (Sidenote: Кто-нибудь знает, почему это необходимо? Я делаю что-то не так с установкой? Все остальное, что я установил в Ubuntu, "просто работает" без изменения $PATH ...)
Шаг 3: Я пытаюсь запустить initdb /usr/local/var/postgres . Доступ запрещен. Я пытаюсь запустить sudo initdb /usr/local/var/postgres . Результат sudo: initdb: command not found . Как эта команда не найдена? Я просто проклял эту чертову штуку! echo sudo $PATH показывает каталог PostgreSQL в пути ... что мне не хватает?
Я немного новичок в Linux, но я сталкиваюсь с супер раздражающими проблемами!
ОБНОВЛЕНИЕ: я полагаю, что это связано с этим вопросом. Однако, выполнив команду с sudo -i не решает проблему. Я просто получаю: -bash: initdb: command not found . Отлично.
ОБНОВЛЕНИЕ: Это кажется еще ближе. Поэтому я добавил alias sudo='sudo env PATH=$PATH' в мой .bashrc в соответствии с инструкциями. Все еще не работает! Похоже, псевдоним не работает. Когда я запускаю alias , я показываю только один. И все же мой .bashrc полон их ... так что что-то не так с теми, кто настраивается.
ОБНОВЛЕНИЕ: Поскольку я использую Ubuntu и RVM, RVM рекомендовал настроить терминал на "Запускать команду в качестве оболочки входа в систему". Судя по чтению, которое я сделал здесь, кажется, что файл .bashrc не читается в оболочке входа, только профиль. Поэтому я переместил строку alias из .bashrc в .profile , так что .profile теперь имеет в конце:
export PATH="/usr/lib/postgresql/9.1/bin:$PATH"
alias sudo='sudo env PATH=$PATH'
... и это все еще не работает. Запуск alias показывает только псевдоним RVM, но не псевдоним sudo который я пытался настроить.
ОБНОВЛЕНИЕ С этого сайта я прочитал о приоритете дотфайлов. Похоже, что .bash_profile предшествует .profile . При этом, мои добавления PATH были сделаны в .profile и, похоже, были загружены просто отлично, так почему же alias также не работает? Однако перемещение alias в .bash_profile из .profile сработало. Тайна. Итак, команда alias показывает мой новый псевдоним. Наконец, я sudo initdb /usr/local/var/postgres , чтобы встретиться с: initdb: cannot be run as root . Да неужели? Тогда почему вы даете мне ошибки разрешения?! Итак, теперь я думаю, что проблема в том, что мне просто нужно chown папку, но при этом запустить initdb как мой пользователь, а не как root .
ОБНОВЛЕНИЕ Выполнение команды sudo chown myuser /usr/local/var/postgres/ , а затем запуск initdb впоследствии позволили инициализировать базу данных. Рад, что было так очевидно, что права доступа к каталогу нужно было установить как myuser, а не как root. Невероятный. Успешная инициализация базы данных через 4 часа.
