[poky] RPM vs IPK
Stewart, David C
david.c.stewart at intel.com
Thu May 19 08:28:49 PDT 2011
> From: poky-bounces at yoctoproject.org [mailto:poky-
> bounces at yoctoproject.org] On Behalf Of Gary Thomas
> Sent: Thursday, May 19, 2011 7:26 AM
>
> On 05/19/2011 08:17 AM, Mark Hatle wrote:
> > On 5/19/11 9:05 AM, Gary Thomas wrote:
> >> Building Poky for various targets, I see some striking differences
> >> based on the packaging. I'm building for the beagleboard (RPM) and
> >> my own OMAP/3530 (IPK), so everything is the same for these packages
> >> (same compiler, architecture, etc), only the package method differs.
> >> This was built on an otherwise idle box
> >> 4-way (Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz), with
> >> BB_NUMBER_THREADS ?= "4"
> >> PARALLEL_MAKE ?= "-j 4"
> >>
> >> Each of these tests are a complete build of the package, with all
> >> dependencies already built. For example, I use this sequence:
> >> % bitbake perl
> >> % bitbake perl -c clean
> >> % rm sstate-cache/sstate-perl-arm*
> >> % time bitbake perl
> >>
> >> perl - RPM IPK
> >> real 12m15.520s real 9m43.228s
> >> user 5m42.988s user 4m40.692s
> >> sys 3m56.636s sys 2m19.860s
> >>
> >> eglibc RPM IPK
> >> real 32m19.984s real 23m52.124s
> >> user 15m32.732s user 20m48.214s
> >> sys 17m28.087s sys 9m3.936s
> >>
> >> Bottom line - it seems to take 20-30% longer to package via RPM.
> >>
> >> I know there are reasons and tradeoffs for different packaging
> >> methods, but 30% extra?
> >>
> >
> > This matches my expectations for the most part. RPM creates and
> > processes a lot more metadata then IPK. IPK is well optimized for
> > small systems, and certainly I would advise someone generating a small
> system to use IPK.
> >
> > For medium and (especially) large systems, RPM starts to give more
> > abilities that IPK due to the additional meta data. This includes
> > individual file type information, file checksum generation and
> > evaluation on install, sparse file support, conflict detection and
> > resolution [for multilib systems], ACID style upgrade, repackaging
> > abilities for rollback, etc.. (Some of the items for RPM are not yet
> > enabled in oe-core, but could be by individual developers.)
> >
> > (I also wouldn't be surprised if we've got integration optimizations
> > in the RPM backend in oe-core that could help with those numbers. The
> > numbers seem to be much worse on packages with large numbers of files,
> > vs the typical package with only a few to a hundred or so files.)
> >
> > Downside of RPM for small systems is the Berkley DB and the amount of
> meta data.
> > If you will be doing on-device upgrades the space required to handle
> > the berkley DB and related items is quite large.. Also many of the
> > advanced features available in RPM simple are not needed in small
> systems.
>
> Fair enough. Perhaps the packaging type should be chosen based on the
> target, e.g. the BeagleBoard probably would be best served by IPK.
>
> Certainly, these data/tradeoffs should be made clear somewhere in the
> documentation.
I agree - hey Gary, can you please file a Bugzilla to add this to the Reference Manual? Thanks...
More information about the poky
mailing list