Установите PostGIS офлайн на RedHat 8

Вопрос или проблема

Мой производственный сервер – это Linux с ограниченным файрволом. Я собирался установить PostgreSQL 12 и PostGIS. Я скачал как PostgreSQL, так и общие пакеты rpm и скопировал их на свою виртуальную машину с Linux с помощью следующего репозитория:

[pgdg12]
name=PostgreSQL 12 для RHEL8
baseurl=file:///repos12-84/12/redhat/rhel-8.4-x86_64/
enabled=1
gpgcheck=0

[pgdgextras12]
name=PostgreSQL Extras для RHEL8
baseurl=file:///common_repos/common/redhat/rhel-8-x86_64/
enabled=1
gpgcheck=0

Я успешно установил PostgreSQL, но у меня возникли проблемы с установкой PostGIS. Когда я выполняю “dnf install postgis31_12.x86_64”, я получаю следующие ошибки:

Версия DNF: 4.4.2 Команда: dnf install postgis31_12.x86_64
Installroot: / Releasever: 8 cachedir: /var/cache/dnf Основная команда:
install Дополнительные команды: [‘install’, ‘postgis31_12.x86_64’] User-Agent:
сформирован: ‘libdnf (Red Hat Enterprise Linux 8.4; generic;
Linux.x86_64)’ репозиторий: использует кэш для: pgdg12 pgdg12: использует метаданные
с Чт 11 Ноя 2021 18:40:59 +04. репозиторий: использует кэш для:
pgdgextras12 pgdgextras12: использует метаданные с Сб 02 Ноя 2024
20:18:14 +04. Последняя проверка истечения метаданных: 0:09:04 назад в Ср 06
Ноя 2024 03:27:18 +04. таймер: настройка пакетов: 289 мс Плагин завершения:
Генерация кэша завершения…
–> Начало разрешения зависимостей
–> Завершено разрешение зависимостей таймер: depsolve: 59 мс

Трассировка (последний вызов последним): Файл
“/usr/lib/python3.6/site-packages/dnf/cli/main.py”, строка 130, в
cli_run
ret = resolving(cli, base) Файл “/usr/lib/python3.6/site-packages/dnf/cli/main.py”, строка 166, в
resolving
base.resolve(cli.demands.allow_erasing) Файл “/usr/lib/python3.6/site-packages/dnf/base.py”, строка 843, в resolve
raise exc dnf.exceptions.DepsolveError: Проблема: невозможно установить лучший кандидат для работы

  • ничего не предоставляет hdf5, необходимый для postgis31_12-3.1.4-1.rhel8.x86_64
  • ничего не предоставляет xerces-c, необходимый для postgis31_12-3.1.4-1.rhel8.x86_64 Ошибка: Проблема: невозможно установить
    лучший кандидат для работы
  • ничего не предоставляет hdf5, необходимый для postgis31_12-3.1.4-1.rhel8.x86_64
  • ничего не предоставляет xerces-c, необходимый для postgis31_12-3.1.4-1.rhel8.x86_64 (попробуйте добавить ‘–skip-broken’, чтобы пропустить
    недоступные для установки пакеты или ‘–nobest’, чтобы использовать не только лучшие
    кандидатные пакеты) Очистка.

Ответ или решение

Как установить PostGIS оффлайн на RedHat 8

Установка PostGIS на сервере с ограниченным доступом к интернету может представлять определенные трудности, особенно учитывая наличие зависимостей, которые необходимо учитывать. В данном руководстве мы рассмотрим, как правильно установить PostGIS на RedHat 8, используя локальные репозитории и преодолевая проблему с зависимостями.

Шаг 1: Подготовка локального репозитория

Сначала убедитесь, что вы правильно создали структуру локального репозитория и что все необходимые RPM-пакеты для PostgreSQL и PostGIS находятся в доступных директориях. В вашем случае репозитории выглядят следующим образом:

[pgdg12]
name=PostgreSQL 12 for RHEL8
baseurl=file:///repos12-84/12/redhat/rhel-8.4-x86_64/
enabled=1
gpgcheck=0

[pgdgextras12]
name=PostgreSQL Extras for RHEL8
baseurl=file:///common_repos/common/redhat/rhel-8-x86_64/
enabled=1
gpgcheck=0

Убедитесь, что в директориях /repos12-84/12/redhat/rhel-8.4-x86_64/ и /common_repos/common/redhat/rhel-8-x86_64/ находятся все необходимые RPM-пакеты, включая зависимости.

Шаг 2: Загрузка необходимых зависимостей

Из вывода команды dnf install postgis31_12.x86_64 видно, что отсутствуют две зависимости: hdf5 и xerces-c. Вам необходимо скачать соответствующие RPM-файлы для этих пакетов и добавить их в ваш локальный репозиторий.

Вот как вы можете это сделать:

  1. На другом компьютере с интернетом выполните команды для получения RPM:

    dnf install --downloadonly --resolve hdf5 xerces-c

    Это создаст папку с директориями, содержащими необходимые RPM.

  2. Скопируйте файлы для hdf5 и xerces-c в соответствующий локальный репозиторий, который вы создали ранее.

Шаг 3: Обновление метаданных

После подтверждения наличия всех необходимых пакетов в локальном репозитории, обновите кэш DNF для создания соответствующих метаданных. Это можно сделать с помощью команды:

dnf clean all
dnf makecache

Шаг 4: Установка PostGIS

Теперь вы можете попробовать снова установить PostGIS с учетом всех зависимостей. Выполните следующую команду:

dnf install postgis31_12.x86_64

Шаг 5: Проверка установки

После завершения установки вам следует проверить, что PostGIS установлен и правильно сконфигурирован. Это можно сделать при помощи следующей команды в PostgreSQL:

SELECT PostGIS_Version();

Если всё сделано правильно, вы увидите версию PostGIS, подтверждая успешную установку.

Заключение

Установка PostGIS в оффлайн-режиме на RedHat 8 требует внимательного подхода к управлению зависимостями. Убедитесь, что все необходимые RPM-пакеты доступны в вашем локальном репозитории, и выполните установку. Следуя вышеописанным шагам, вы сможете решить проблемы с зависимостями и успешно установить PostGIS на своем сервере.

Оцените материал
Добавить комментарий

Капча загружается...