[yocto] Installation order question with RPM backend

Mark Hatle mark.hatle at windriver.com
Wed Apr 11 08:45:10 PDT 2012


On 4/11/12 10:37 AM, Xu, Dongxiao wrote:
> On Wed, 2012-04-11 at 10:25 -0500, Mark Hatle wrote:
>> On 4/11/12 10:14 AM, Xu, Dongxiao wrote:
>>> Hi Mark,
>>>
>>> I met a strange issue while using RPM to generate the rootfs.
>>>
>>> In the installation list, if we have 2 RPM packages, say A.rpm and
>>> B.rpm. package A RDEPENDS on package B. While installing the two
>>> packages? Does RPM ensures to install B first and then install A?
>>>
>>> The real issue is: we have certain packages that need to run
>>> useradd/groupadd at rootfs time, for example, the dbus. However the
>>> useradd/groupadd bbclass RDEPENDS on base-files, which provides
>>> the /etc/group file. While installing the final image, sometimes we saw
>>> it installs dbus firstly and then base-files, causing the
>>> useradd/groupadd script error since it could not find /etc/group file.
>>
>> it does enforce install order, however the /etc/group, /etc/passwd files (last
>> time I checked) were being put into place by the post install scripts.  The
>> scripting order is handled somewhat independently of the package install order.
>>    (post install scripts get delayed intentionally for performance reasons.
>> There is a way to hint a dependency for them as well...)
>>
>> The passwd/group files are fairly unique files, and generally are installed
>> -first- (individually) before any other packages on most RPM installations.
>> After that the methods and install ordering works...
>>
> But does the following log indicates the dbus-1 is installed before
> base-passwd?
>
> dbus-1                ##################################################
>   Adding system startup
> for /distro/sdb/build-basic/tmp/work/qemux86-poky-linux/hob-image-hob-basic-1.0-r0/rootfs/etc/init.d/dbus-1.
> kernel-module-uvesafb ##################################################
> libusb-compat         ##################################################
> base-passwd           ##################################################

Certainly appears that way.. but we'd need to look into the packages and 
understand the requirements as they are defined and trace them to see if there 
is a problem w/ the ordering or if the packages have a problem.

You will often see mysterious reordering when there is a circular dependency. 
RPM has to break this dependency in some way, and it does it by simply choosing 
one or the other.  (There is a hint mechanism for circular dependencies, but 
we've never used it.)

My suggestion is lets look at the package runtime dependenices and manually 
trace them..  Focus on dbus-1 and base-passwd... and see if the order is right 
or wrong or if there is a circular dependency.

(Also our version of RPM 5 is a bit old, and there are some known bugs in it.. 
as far as I know, none of them with the dependency resolution or code paths we 
follow.)

--Mark

> Thanks,
> Dongxiao
>
>> --Mark
>>
>>> I tried ipk and it doesn't have problem since it ensures to install
>>> base-files firstly.
>>>
>>> Any comment is welcome.
>>>
>>> Thanks,
>>> Dongxiao
>>>
>>
>
>




More information about the yocto mailing list