服务器升级(yum update)删除了psql本地安装

服务器升级(yum update)删除了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 版本。这两个软件包都被称为postgresql96,因此 yum/RPM 认为其中一个可以直接替换另一个。

最重要的是,虽然旧包可能也用于alternatives选择默认psql二进制文件,但我怀疑该组的名称不同。也许诸如pgsql-psql您的新包在哪里使用该组之类的内容psql。因此,在升级时,您的系统将其视为需要配置的新组,而不是现有组的升级。而且该包似乎amzn-updates也没有设置默认值,并且需要您显式运行alternatives来设置它。

除非您将 2 个存储库之一的软件包列入黑名单,否则这种情况很可能会再次发生。只需添加exclude=postgresql96*/etc/yum.repos.d/您想要禁用它的存储库的文件中即可。

相关内容