不久前,我在aws服务器上使用以下命令在本地安装了一个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更新升级了服务器。这个过程完成后,我注意到我的应用程序停止工作了。我发现升级过程在某种程度上与现有的psql安装发生冲突,并删除当前的psql服务器。(幸运的是,它只是一个dev服务器.)
我的问题是:为什么会发生这种事?它是一个bug,还是我愚蠢地手动安装它,而不排除它的yum更新命令?有人能说明一下那个问题吗?
这些是我收集到的细节:
未命名-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发布于 2018-03-14 02:00:01
这看起来像是您最终将pgdg96回购中的postgres版本替换为来自amzn-updates回购的一个版本。这两个包都被称为postgresql96,所以yum/RPM认为其中一个是另一个的直接替代品。
更重要的是,虽然旧包可能也使用alternatives来选择默认的psql二进制文件,但我怀疑组的名称是不同的。也许是像pgsql-psql这样的东西,当您的新包使用组psql时。因此,在升级时,系统将此视为需要配置的新组,而不是对现有组的升级。而且,amzn-updates包似乎也没有设置默认值,并要求您显式地运行alternatives来设置它。
这很可能再次发生,除非你从两个回购中的一个黑名单的包。只需将exclude=postgresql96*添加到要禁用它的回购文件的/etc/yum.repos.d/文件即可。
https://unix.stackexchange.com/questions/430049
复制相似问题