Мне понадобилось установить PostgreSQL 11 на CentOS 7. Однако при попытке установить его командой ничего не вышло.

Выполним команду:

sudo yum install postgresql

Мы видим, что он предлагает установить 9-ю версию, так как у CentOS 7 в репозитории это максимальная версия:

Версия PostgreSQL на CentOS 7

Пробуем команду

sudo yum install postgresql11-server

Получим ответ, что пакет postgresql11-server отсутствует. Грустно, но это нас это не остановит.

Подключим репозиторий:

sudo yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-`rpm -E %{rhel}`-x86_64/pgdg-redhat-repo-latest.noarch.rpm

Знак апострофа, который прописывается в команде, на клавиатуре находится на клавише «Ё».

Обновим список пакетов (создадим кэш метаданных):

sudo yum makecache -y

Установим PostgreSQL требуемой нам версии (сейчас устанавливаем 11-ю версию):

sudo yum install postgresql11-server

Инициализируем базу данных:

/usr/pgsql-11/bin/postgresql-11-setup initdb

Запускаем сервис, добавляем в автозапуск и смотрим статус:

sudo systemctl start postgresql-11
sudo systemctl enable postgresql-11
sudo systemctl status postgresql-11
Статус PostgreSQL

Зададим пароль для системного пользователя postgres:

sudo passwd postgres

Переключаемся в системе на данного пользователя (заходим в систему под ним):

su - postgres

Подключимся к базе и сразу зададим пароль для пользователя баз данных postgres:

psql -c "ALTER USER postgres WITH PASSWORD 'postgres';"

Да, у нас два пользователя с одинаковым логином: один системный, другой в PostgreSQL.

Выходим из psql:

exit

Выходим из-под системного пользователя postgres:

exit

Чтобы мы могли подключаться к базам данных с других компьютеров необходимо настроить доступы к PostgeSQL.