PostgreSQL 9.5 CentOS 7 をインストールする

PostgreSQL 9.5 CentOS 7 をインストールする

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>

関連情報