在centOS 6上通过yum升级protobuf RPM时出错

在centOS 6上通过yum升级protobuf RPM时出错,centos,protocol-buffers,rpm,yum,package-managers,Centos,Protocol Buffers,Rpm,Yum,Package Managers,我正在尝试升级多台机器,使它们都使用相同的、更新版本的Google protobuf库和编译器。我目前使用的是2.3.0版,希望至少升级到2.4.1版 问题是,在尝试升级时,我有一些包依赖于protobuf,更具体地说,似乎依赖于protobuf-2.3.0rpm提供的底层库libprotobuf.so.6 似乎6是个问题,因为yum认识到,通过升级到protobuf-2.4.1软件包,libprotobuf.so.7将取代libprotobuf.so.7。请参阅以下错误: ---> Pa

我正在尝试升级多台机器,使它们都使用相同的、更新版本的Google protobuf库和编译器。我目前使用的是2.3.0版,希望至少升级到2.4.1版

问题是,在尝试升级时,我有一些包依赖于protobuf,更具体地说,似乎依赖于protobuf-2.3.0rpm提供的底层库libprotobuf.so.6

似乎6是个问题,因为yum认识到,通过升级到protobuf-2.4.1软件包,libprotobuf.so.7将取代libprotobuf.so.7。请参阅以下错误:

---> Package protobuf.x86_64 0:2.3.0-7.el6 will be updated
--> Processing Dependency: libprotobuf.so.6()(64bit) for package: MYPACKAGE-1.1.1-1.el6.x86_64
...
---> Package protobuf.x86_64 1:2.4.1-1 will be an update
...
Error: Package: MYPACKAGE-1.1.1-1.el6.x86_64 (@my-repo)
       Requires: libprotobuf.so.6()(64bit)
       Removing: protobuf-2.3.0-7.el6.x86_64 (@epel)
           libprotobuf.so.6()(64bit)
       Updated By: 1:protobuf-2.4.1-1.x86_64 (my-repo)
           Not found
我想我明白它在说什么。它找不到那个图书馆。但我不希望这样,因为protobuf-2.4.1包含libprotobuf.so.7,正如预期的那样,这就是我想要的库

protobuf-2.3.0在soname上包含一个版本号是错误的吗?这个软件包来自epel回购协议,所以我相信它符合惯例,但我现在不知道如何升级


有办法解决这个问题吗?我怎样才能在满足要求的情况下升级protobuf版本?

输出显示您的包依赖于libprotobuf.so.664bit如果您认为它应该依赖于libprotobuf.so.764bit,那么您的包构建不正确。我不完全确定我是否理解这个错误的意思,因为我以前没有看到确切的输出,但是是的,问题似乎是升级那个包为什么会发生这种情况,你是明确要求的吗?正在导致依赖项错误。@EtanReisner,我知道它当前依赖于libprotobuf.so.6,我希望它接受到libprotobuf.so.7的升级。这将通过将包protobuf-2.3.0升级到protobuf-2.4.1来实现,因此,尽管数字6更改为7,但包上的版本控制似乎指示未中断的更改,因此应该允许此升级。说清楚一点——是的,我是明确要求这样做的。我正在尝试升级protobuf包,以确保多台机器之间的一致性。如果这里涉及的protobuf版本实际上是ABI兼容的,那么负责更改soname/版本的人就犯了错误。这就是soname版本控制的目的。为了防止使用它的软件下面发生这种库更改。如果不在运行时手动链接到库dlopen/etc,则无法处理该细节。。