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 9.5 を独自の PostgreSQL RPM 経由でインストールしています。インストールする RPM には独自のスクリプトが含まれており、rpm-maven-plugin を使用してそれらをサーバーにマップします。また、このプラグインを使用して、<requires>
POM.xml 構成のセクションに PostgreSQL 9.5 パッケージを追加してインストールします。
<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 インストール中に自動的に実行されます。問題は、これらの両方のスクリプトの前に requires が実行され、pgdg95 RPM がインストールされていないためにスクリプトが失敗することです。
必要な RPM がインストールされる前に、質問の冒頭でコマンドを実行するにはどうすればよいですか? 準備/事前インストール スクリプトは、それらの前に必要な RPM が実行されているため機能しないようです。
答え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>