[yocto] Installation order question with RPM backend

Xu, Dongxiao dongxiao.xu at intel.com
Wed Apr 11 08:51:14 PDT 2012


On Wed, 2012-04-11 at 10:45 -0500, Mark Hatle wrote:
> 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.

I checked the dbus.spec and base-passwd.spec.
For dbus.spec, there is a line:

%package -n dbus-1
Requires: base-passwd

And for base-passwd, there is no dbus exists in base-passwd.spec.

Thanks,
Dongxiao

> 
> (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