サーバーのアップグレード(yumアップデート)でpsqlローカルをアンインストールする

サーバーのアップグレード(yumアップデート)でpsqlローカルをアンインストールする

しばらく前に、次のコマンドを使用してAWS CentosサーバーにPostgreSQLサーバー9.6.2をローカルにインストールしました。

rpm -i https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-6-x86_64/pgdg-ami201503-96-9.6-2.noarch.rpm 
yum install postgresql96-server -y

数日前、yum updateを使用してサーバーをアップグレードしました。このプロセスが完了すると、私のアプリケーションが機能しないことがわかりました。アップグレードプロセスが既存のpsqlインストールと競合することを発見し、現在のpsqlサーバーを削除しました。 (幸いこれはただ開発サーバーなのに…)

私の質問は:なぜこれが起こるのですか?これはバグですか、それとも私は愚かに手動でインストールし、yum updateコマンドから除外していませんか?誰でもこの問題を説明できますか?

私が収集した詳細は次のとおりです。

uname -a 出力:

Linux 4.9.85-37.55.amzn1.x86_64

ヤムログ

Mar 11 13:49:17 Updated: postgresql96-libs-9.6.6-1.79.amzn1.x86_64 
Mar 11 13:49:20 Updated: postgresql96-9.6.6-1.79.amzn1.x86_64 
Mar 11 13:49:26 Updated: postgresql96-server-9.6.6-1.79.amzn1.x86_64

error in yum history info 97 warning: %postun(postgresql96-server-9.6.5-1PGDG.rhel6.x86_64) scriptlet failed, exit status 1


Updated     postgresql96-9.6.5-1PGDG.rhel6.x86_64 @pgdg96
Update                   9.6.6-1.79.amzn1.x86_64 @amzn-updates
Updated     postgresql96-libs-9.6.5-1PGDG.rhel6.x86_64 @pgdg96
Update                        9.6.6-1.79.amzn1.x86_64  @amzn-updates
Updated     postgresql96-server-9.6.5-1PGDG.rhel6.x86_64 @pgdg96
Update                          9.6.6-1.79.amzn1.x86_64  @amzn-updates

代替:

[user@ip alternatives]# alternatives --config psql

There is 1 program that provides 'psql'.
Selection Command

*+ 1 /usr/bin/psql96

答え1

pgdg96リポジトリのpostgresバージョンをamzn-updatesリポジトリのpostgresバージョンに置き換えたようです。両方のパッケージが呼び出されるため、postgresql96yum / RPMは1つを別のパッケージへの直接置換と見なします。

alternativesさらに、以前のパッケージを使用してデフォルトのバイナリを選択することもできますが、グループ名が異なるようですpsql。それはおそらく、pgsql-psql新しいパッケージがこのグループを使用している場所のようなものかもしれませんpsql。したがって、アップグレード時にシステムは、それを既存のグループのアップグレードではなく構成する必要がある新しいグループと見なします。そして、パッケージにはamzn-updatesデフォルト値が設定されていないようで、alternativesこれを設定するには明示的に実行する必要があります。

2つのリポジトリのいずれかでパッケージをブラックリストに追加しないと、これが再度発生する可能性が高くなります。無効にするリポジトリのファイルexclude=postgresql96*に追加するだけです。/etc/yum.repos.d/

関連情報