Здесь я собираю свои заметки по администрированию Linux-серверов. В основном - это CentOS, иногда Ubuntu Server. Моей настольной ОС является также Linux. В настоящее время - Manjaro, раньше были Fedora, Mint, Ubuntu. Поэтому здесь я также складываю свои соображения по поводу настройки этой системы
CentOS 7 - стабильная операционная система, основанная на RedHat Enterprise Linux. Эти системы работают по принципу "если работает - не трогай". Поэтому они поставляются с довольно старыми, но зато проверенными версиями пакетов. Во многих случаях этот подход себя оправдывает, но иногда хочется видеть на своём сервере пакеты более свежих версий. Это касается, например, Python 3. Его вообще нет официальных репозиториях (есть только версии 2.7). А 3-й пайтон нужен для фреймворка Django. Поэтому приходится прилагать некоторые усилия, чтобы поставить на сервер Python самой последней версии.
Установка на сервере программ из исходников считается дурным тоном. Пакеты принято устанавливать через пакетные менеджеры (yum на RHEL / CentOS / Oracle или dpkg на Ubuntu Server / Debian). Но на домашней машине установка из исходников вполне себя оправдывает. В этом случае мы полностью контролируем процесс компиляции и самой установки: указываем в какой каталог устанавливать файлы, какие модули компилировать, какие библиотеки подключать и т.д. Вообщем, такой себе путь Gentoo или даже LFS. Итак, займемся компилированием из исходников PostgreSQL самой свежей версии на текущий момент - 13.1.
Как и любой программный продукт, СУБД PostgreSQL каждой версии имеет ограниченный срок поддержки. Так, на момент написания статьи, заканчивается поддержка версии 9.5 и производитель настоятельно рекомендует перейти на более актуальные версии. Также часто встречается ситуация, когда для разворачивания на сервере какого-то ПО необходима PostgreSQL не ниже определённой версии. Например, сейчас CMS Moodle (последняя версия 3.10) требует PostgreSQL не ниже версии 9.6. Однако, популярная сегодня ОС для сервера CentOS 7 "из коробки" предоставляет PostgreSQL только версии 9.2. В этой статье я опишу простой способ перевода СУБД PostgreSQL на актуальную версию для случая CentOS 7. Для других ОС данный рецепт тоже можно применять с небольшими косметическими изменениями.