[yocto] RPM multilib package installation issue

Mark Hatle mark.hatle at windriver.com
Fri Sep 2 08:03:00 PDT 2011


On 9/2/11 2:33 AM, Xu, Dongxiao wrote:
> Hi Mark and Richard,
> 
> I am trying to setup a RPM multilib system that, it is a qemux86-64 base
> image with MULTILIB_IMAGE_INSTALL = "lib32-connman-gnome". With several
> fixes, the build can pass.
> 
> However in run time testing I met a problem that, for those libraries whose
> base/multilib versions packages will be both built out (like libgtk, it has
> "libgtk-2.0-2.22.1-r2.x86_64.rpm" and "libgtk-2.0-2.22.1-r2.x86.rpm"), the
> rpm will only installs the lib32 version of it.

During filesystem construction the system uses dependencies to decide what to
install.  If you build a 32-bit connman-gnome and it requires other 32-bit
libraries the dependency scanner will either pick them up and install them, or
error due to missing dependencies.

In the manual case you would use "rpm -Uhv <path>" manually specifying which one
you want.  RPM will detect a multilib package and will allow installation of
both versions.  (Note always use rpm -U and not rpm -i..  rpm -i just blindly
installs the software with no checking if an existing version exists.)

> Therefore one question is, if there are two rpm packages with the same PN,
> PV, PR, but different architecture (like our multilib case), then we run
> command "rpm -ivh libgtk", which version of libgtk will be installed? Or does
> rpm have any parameter to force installing them both? Actually multilib
> requires to install them both with certain order.

No specific order should be necessary on a multilib system.  As long as the end
dependencies are satisfied the resulting filesystem will work.  (Exceptions to
this are when there are pre and post install scripts that have their own unique
dependencies.. but those are not the normal case for OE-Core/Yocto.)

--Mark

> Thanks, Dongxiao
> 




More information about the yocto mailing list