Шаг 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 часа.