Я пытаюсь установить PostgreSQL 9.5 на CentOS 7.
Я искал в Интернете, и для получения доступа к RPMs 9.5 требуется установка 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 с помощью моего собственного RPM PostgreSQL. RPM, который я устанавливаю, содержит мои собственные скрипты, и я буду использовать rpm-maven-plugin для их привязки к серверу. Я также использую этот плагин для установки пакетов PostgreSQL 9.5, добавив их в раздел
конфигурации 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>
Как вы можете видеть, я добавил в пакет сценарий предварительной установки и сценарий предварительной установки, которые автоматически запускаются во время установки пакета YUM. Проблема в том, что requires запускается перед обоими этими сценариями, и они не работают, потому что pgdg95 RPM не установлен.
Как я могу запустить команду в начале вопроса до того, как будут установлены требуемые RPM? Сценарии подготовки/предварительной установки, похоже, не работают, поскольку require выполняется до них.
Решение, которое я реализовал, заключалось в том, чтобы добавить репо во время установки, используя следующую строку в кикстарте:
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>