我面临着以下错误:
Transaction Check Error: package apr-1.3.12-1.jason.1.x86_64 (which is newer than apr-1.2.7-11.el5_6.5.cloudlinux.2.i386) is already installed
这是在cloudlinux上。 apr-1.3.12-1.jason.1.x86_64是从第三方回购安装的,现在任何软件包更新似乎都需要老版本的apr,或者甚至不会注意到安装了更新的版本。
什么是最好的解决scheme? 不幸的是我不知道哪个软件包需要这个依赖(有什么方法可以find这个)?
如果你想继续使用第三方回购,但你需要使用较早的版本,你可以做一个yum downgrade apr 。
你可以删除apr( yum erase apr ),然后重新安装标准的repo包。
[编辑1]:
看起来你的32位版本和64位版本的版本不匹配,你可以尝试运行yum update apr.i386 apr.x86_64 。 您需要在启用第三方回购的情况下执行此操作。
两个@ACASEbuild议yum erase apr和yum downgrade apr是好的,但是如果你想做更多的调查,看看有什么是有害的应用程序,你可以做以下;
您可以检查哪些安装的软件包需要阻塞“apr-1.3.12-1.jason.1.x86_64”软件包;
# rpm -q --whatrequires apr **apr-devel-1.2.7-11.el5_6.5** <--(this or something else in the list) ...
apr是“apache可移植运行时”,大概是由其他一些httpd相关的软件包事务安装成一个库。
然后你可以通过使用下面的命令看到这个违规包的依赖关系。
# rpm -v -q --requires apr-devel /sbin/ldconfig libapr-1.so.0()(64bit) libc.so.6()(64bit) ....
要查看您试图从存储库安装的新软件包需要哪些依赖项,可以使用;
# yum deplist apr Finding dependencies: package: apr.i386 1.2.7-11.el5_6.5 dependency: libc.so.6(GLIBC_2.1.3) provider: glibc.i686 2.5-65 provider: glibc.i686 2.5-65.el5_7. ...
更一般地说,问题是旧的和新的软件包发生冲突,你将不得不通过决定你要保留哪些软件包以及要删除哪些软件包来解决这个问题。
我个人宁愿保持使用apr软件包的发行版本,因为它是由一堆基于apache的软件使用的。
要看到yum疯狂的详细输出,试图find你的代价,添加-v标志;
# yum -v deplist apr ... pkgsack time: 3.261 rpmdb time: 0.000 Finding dependencies: Searching pkgSack for dep: /sbin/ldconfig Potential match for /sbin/ldconfig from glibc-2.5-65.i686 Potential match for /sbin/ldconfig from glibc-2.5-65.x86_64 ...