[yocto] RPM multilib package installation issue

Mark Hatle mark.hatle at windriver.com
Fri Sep 2 08:48:19 PDT 2011


On 9/2/11 10:40 AM, McClintock Matthew-B29882 wrote:
> On Fri, Sep 2, 2011 at 10:03 AM, Mark Hatle <mark.hatle at windriver.com> wrote:
>>> 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.
> 
> Some you are saying since we do not build an actual binary that
> depends on the 64bit library we just drop the libraries we requested
> to be installed?
> 
> -M

The normal OE approach is to resolve all items by run-time dependencies.  That
is why a lot more is built then installed.

So if you want a system capable of running bash, you would create a task (and
related image) that simply has a RDEPENDS on "bash".  Everything else is
determined automatically.  So even if you build ncurses for 32-bit and 64-bit,
only the one needed by bash will be installed.

If you change this and specify that your task RDEPENDS is "bash lib64-ncurses".
 Then the system will determine the dependencies based on both bash and the
64-bit ncurses.  This will result in a system (likely 32-bit in this example)
that includes bash and lib64-ncurses and all of it's dependencies...

The point is, if you explicitly tell the system to install something it is
expected to be installed.  If you don't the automatic resolution is used to
determine install components and not everything you want may be installed.

--Mark



More information about the yocto mailing list