尝试更新 postgresql-libs 时出错

尝试更新 postgresql-libs 时出错

当我执行时yum update出现以下错误:

Transaction Check Error:
  file /usr/lib64/libecpg.so.6.1 from install of postgresql-libs-8.4.10-1PGDG.rhel5.x86_64 conflicts with file from package postgresql84-libs-8.4.9-1.el5_7.1.x86_64
  file /usr/lib64/libecpg_compat.so.3.1 from install of postgresql-libs-8.4.10-1PGDG.rhel5.x86_64 conflicts with file from package postgresql84-libs-8.4.9-1.el5_7.1.x86_64
  file /usr/lib64/libpgtypes.so.3.1 from install of postgresql-libs-8.4.10-1PGDG.rhel5.x86_64 conflicts with file from package postgresql84-libs-8.4.9-1.el5_7.1.x86_64
  file /usr/lib64/libpq.so.5.2 from install of postgresql-libs-8.4.10-1PGDG.rhel5.x86_64 conflicts with file from package postgresql84-libs-8.4.9-1.el5_7.1.x86_64
  file /usr/share/locale/pl/LC_MESSAGES/libpq5-8.4.mo from install of postgresql-libs-8.4.10-1PGDG.rhel5.x86_64 conflicts with file from package postgresql84-libs-8.4.9-1.el5_7.1.x86_64
  file /usr/share/locale/pl/LC_MESSAGES/libpq5-8.4.mo from install of postgresql-libs-8.4.10-1PGDG.rhel5.x86_64 conflicts with file from package postgresql84-libs-8.4.9-1.el5_7.1.i386

我现在知道它可能会如何发生冲突,因为我已经使用安装了 pgsql yum

但没关系。

但我不知道如何解决这些问题以便能够更新 pgsql 库。

有点类似问题,但这是关于 i386 与 x86_64 版本的安装。

那么...该如何解决这个问题?

编辑

根据 yum 的重新发布者的请求:

repo id           repo name                                             status
addons            CentOS-5 - Addons                                            0
base              CentOS-5 - Base                                        3,558+8
epel              Extra Packages for Enterprise Linux 5 - x86_64           6,808
extras            CentOS-5 - Extras                                          269
ius               IUS Community Packages for Enterprise Linux 5 - x86_6      149
kbs-CentOS-Extras CentOS.Karan.Org-EL5 - Stable                                0
kbs-CentOS-Misc   CentOS.Karan.Org-EL5 - Stable                                0
pgdg84            PostgreSQL 8.4 5 - x86_64                                  161
rpmforge          Red Hat Enterprise 5 - RPMforge.net - dag             10,899+1
updates           CentOS-5 - Updates                                      442+24

答案1

看起来您安装的 postgresql 版本来自 yum.postgresql.org,并且 yum 正在尝试从 centos repo 更新 postgresql。如果是这种情况,您是否尝试过exclude=postgresql*在文件的相应部分添加一行/etc/yum.repos.d/CentOS*.repo

例如(来自 /etc/yum.repos.d/CentOS-Base.repo):

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
exclude=postgresql*

#released updates 
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
exclude=postgresql*

更新 看起来你的yum repolist输出证实了我的猜测……你需要告诉 yum 不要安装/更新/使用来自 CentOS 存储库的 postgresql84 包。将排除语句添加到 CentOS-Base.repo 文件的基本和更新部分,然后你应该被设置。

答案2

冲突错误通常是由于混淆存储库而引起的。尝试以下操作:

# yum --disablerepo=pgdg84 install postgresql-libs

答案3

我遇到了类似的问题,尽管所有的冲突都是针对
postgresql84-libs-8.4.6-1PGDG.rhel5.i386

我只使用 x86_64,只需删除 i386 库即可。您可以尝试以下操作:

yum remove postgresql84-libs-8.4.9-1.el5_7.1.i386

没有任何依赖关系,因此我可以毫无问题地删除,之后 yum 更新就可以完成并且不会出现错误。

相关内容