我正在嘗試在 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 安裝套件期間自動執行。問題是,requires 在這兩個腳本之前運行,並且由於未安裝 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>