我正在尝试在 CentOS 7 上安装 PostgreSQL 9.5。
我在网上搜索过,要访问 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 RPM 安装 PostgreSQL 9.5。我正在安装的 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>
正如您所看到的,我已将预安装和准备安装脚本添加到包中,这些脚本在 YUM 安装包期间自动运行。问题在于,require 在这两个脚本之前运行,并且由于未安装 pgdg95 RPM,因此它们失败。
在安装所需的 RPM 之前,如何运行问题开头的命令?准备/预安装脚本似乎不起作用,因为需求在它们之前运行。
答案1
我实施的解决方案是在安装时使用 kickstart 中的以下行添加存储库:
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>