Я пытаюсь установить PostgreSQL 9.5 на CentOS 7.
Я поискал в Интернете и выяснил, что для доступа к 9.5 RPM требуется установка pgdg95 с помощью следующей команды:
sudo rpm -ivh http://yum.postgresql.org/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpm
Я устанавливаю PostgreSQL 9.5 через свой собственный PostgreSQL RPM. RPM, который я устанавливаю, содержит мои собственные скрипты, и я буду использовать rpm-maven-plugin для их сопоставления с сервером. Я также использую этот плагин для установки пакетов PostgreSQL 9.5, добавляя их в <requires>
раздел конфигурации POM.xml.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>rpm-maven-plugin</artifactId>
<version>2.1.5</version>
<extensions>true</extensions>
<configuration>
<license>GPL (c) 2005, SWWDC</license>
<distribution>distro</distribution>
<group>group</group>
<requires>
<require>postgresql95-server</require>
<require>postgresql95-contrib</require>
<require>postgresql95-plpython</require>
</requires>
<mappings>
</mappings>
<prepareScriptlet>
<scriptFile>src/scripts/prepinstall.sh</scriptFile>
</prepareScriptlet>
<preinstallScriptlet>
<scriptFile>src/scripts/preinstall.sh</scriptFile>
</preinstallScriptlet>
<postinstallScriptlet>
<scriptFile>src/scripts/postinstall.sh</scriptFile>
</postinstallScriptlet>
</configuration>
</plugin>
Как вы видите, я добавил в пакет как скрипт pre-install, так и скрипт prep-install, которые автоматически запускаются во время установки пакета с помощью YUM. Проблема в том, что require запускается до обоих этих скриптов, и они терпят неудачу, поскольку RPM pgdg95 не установлен.
Как мне запустить команду в начале вопроса до установки требуемых RPM? Скрипты Prep/Pre install, похоже, не работают, так как Requires запускается перед ними.
решение1
Решение, которое я реализовал, состояло в том, чтобы добавить репозиторий во время установки, используя следующую строку в кикстарте:
repo --name="PostgreSQL" --baseurl="http://yum.postgresql.org/9.5/redhat/rhel-7-x86_64/"
а затем добавить в POM.xml:
<requires>pgdg-centos95-9.5-2.noarch.rpm</requires>