Скриптуем процесс установки PostgreSQL с определением ОС
В этой статье мы рассмотрим, как написать скрипт на Bash для установки PostgreSQL на Linux-системе. Мы будем использовать переменные окружения для определения версии операционной системы и репозитория PostgreSQL, а также команды apt для установки и обновления пакетов. Учтите, что скрипт является примерным, и может не работать на некоторых системах.
Шаг 1: Определение версии операционной системы
Первым шагом мы определим версию операционной системы, чтобы знать, какой репозиторий PostgreSQL использовать. В Ubuntu используется репозиторий postgresql
, а в CentOS/RHEL - pgdg
.
# Определяем версию операционной системы
if [[ "$(lsb_release -is)" == "Ubuntu" ]]; then
# Ubuntu
OS_VERSION="$(lsb_release -rs)"
elif [[ "$(cat /etc/redhat-release)" == *"CentOS"* ]]; then
# CentOS
OS_VERSION="7"
elif [[ "$(cat /etc/os-release | grep ^ID=)" == *"rhel"* ]]; then
# RHEL
OS_VERSION="7"
else
echo "Неизвестная операционная система!"
exit 1
fi
Шаг 2: Установка необходимых пакетов
Теперь, когда мы знаем версию операционной системы, мы можем установить необходимые пакеты для работы с PostgreSQL.
# Устанавливаем необходимые пакеты
sudo apt update
sudo apt install software-properties-common
Шаг 3: Добавление репозитория PostgreSQL
Далее мы добавим репозиторий PostgreSQL в зависимости от версии операционной системы.
# Добавляем репозиторий PostgreSQL
if [[ $OS_VERSION == "16.04" || $OS_VERSION == "18.04" ]]; then
# Ubuntu 16.04 или 18.04
sudo add-apt-repository ppa:pgdg/ubuntu
elif [[ $OS_VERSION == "20.04" ]]; then
# Ubuntu 20.04
wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add -
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
elif [[ $OS_VERSION == "22.04" ]]; then
# Ubuntu 22.04
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
wget -q --no-check-certificate https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add -
elif [[ $OS_VERSION == "7" ]]; then
# CentOS/RHEL 7
sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
fi
Шаг 4: Обновление списка пакетов
После добавления репозитория PostgreSQL мы должны обновить список пакетов, чтобы убедиться, что все новые пакеты доступны для установки.
# Обновляем список пакетов
sudo apt update
Шаг 5: Установка PostgreSQL
Теперь мы можем установить PostgreSQL, используя команду apt.
# Устанавливаем PostgreSQL
sudo apt install postgresql-16
Комментарии