当我执行时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 更新就可以完成并且不会出现错误。