[yocto] RPM multilib package installation issue
Mark Hatle
mark.hatle at windriver.com
Fri Sep 2 10:09:46 PDT 2011
On 9/2/11 11:24 AM, McClintock Matthew-B29882 wrote:
> On Fri, Sep 2, 2011 at 10:48 AM, Mark Hatle <mark.hatle at windriver.com> wrote:
>> 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.
>
> One would expect then if I did a:
>
> MULTILIB_IMAGE_INSTALL += "lib64-perl"
>
> I would be a 64bit perl and a slew of 64 bit libraries installed. I'm
> still trying to figure out why this is not happening on my particular
> build.
For everything I see, that should work.
In classes/image.bbclass, RDEPENDS is augmented by the contents of
IMAGE_INSTALL, LINGUAS_INSTALL, MULTILIB_IMAGE_INSTALL, and NORMAL_FEATURE_INSTALL.
The place to start looking for this is within the log.do_rootfs in the rootfs
directory you are working on. You should see something that indicates it's
trying to install the "lib64-perl". (in the case of RPM, it should eventually
rename it to "perl" -- but choose the 64-bit version.)
--Mark
> -M
More information about the yocto
mailing list