Embedded package managers sucks

Years ago someone wrote IPKG in pure shell. It can be still found in some distributions. Then it was rewritten into C and this version we used in OpenEmbedded derived systems. It had some bugs, we patched some of them, from time to time there was even upstream development done for it.

Then Openmoko arrived and forked IPKG — new project got OPKG name. It was written by OpenedHand and Openmoko developers. Their main goals were:

  • callbacks for GUI package managers
  • GPG signed repositories
  • fixing bugs

Many things got changed, OE patches got merged, new bugs was added. Those who use CLI version of opkg (so far the only usable client) lost some functionalities — for example there is no progress bar when packages are fetched.

For last few months OPKG is in unmaintained mode again and I think that this is some kind of curse on embedded market package managers.

Some time ago I discovered that when many (>50) packages needs to be upgraded then opkg segfaults during process and this is not a matter of going out of RAM as I have ~400MB free. Today it did not gave value of PATH for post install scripts… I wonder what else can be found ;(

What are other options? So far I know two — dpkg + apt or rpm + yum. First one costs few megabytes of space, second one require also Python so it is not acceptable for most of our targets. Both also require rebuilding of everything :(

9 thoughts on “Embedded package managers sucks

  1. Sven

    I had the problem with PATH while doing an opkg upgrade within a GNU Screen session.

  2. Gustavo Sverzut Barbieri

    I have to agree that the situation is bad and options are maybe worse.

    I’d not go with deb. Format is not bad, but implementations on top (dpkg-buildpackage and like) are PITA. We could generate packages from OpenEmbedded directly, but still we’d drag those somehow.

    RPM is quite easy and simple, but as you say YUM is a beast. It requires python and is damn slow.

    I remember “smart” package manager, it is fast but it is Python as well (with some parts in C).

    Also legacy but maybe work is the urpmi, which is/was? used by Mandrake, but is written in Perl… so not that better.

    There is apt-rpm as well, but no idea if it behaves or not.

    1. Marcin Juszkiewicz

      Debian packages are sane — ipkg/opkg packages are the same format. Tools like “dpkg-buildpackage” etc are integrated already in OpenEmbedded build system so our users do not have to care how to build those (same situation for RPMs).

      I would not go RPM way as we do not have recipe for RPM 5.x yet so our 4.4.2.3 has big set of patches from misc projects just to get functionality of Debian packages format. And like you wrote — there is no lightweight package fetchers for RPM.

  3. detru

    simple step back to IPKG…ever wondered why they wanted OPKG…IPKG works, so why change it?

  4. Tom (TAsn)

    There have been discussions in #openmoko-cdevel@freenode about creating a new package manager (actually an opkg rewrite). I think this should be done, I thought about lifting the glove on this matter, though I lack of time at the moment, though I think this is the way to go. And sa Marcin said, debian packages are a good idea, especially since opkg uses deb version 2 as well. We really need a client for embedded environments since we need it to work on our low memory environment (Although I gotta say, the FreeRunner has a lot of memory, at least enough for a “real” package manager).

    Tom.

  5. Misc

    apt-rpm is not maintened any more. Urpmi is still used by mandriva, but not suitable. I think that fixing opkg is the best solution. And I have also seen the memory problem on opkg, since some weeks on shr unstable. I suspect either a leak, or there i something that cause a big memory consumption.

  6. Daniel "NeoStrider" Monteiro

    Whats so bad about DEB? I kind of like it. So far I’ve also tried PKG for EZX devices, but its a non-sanctioned format and vanilla Motorola phones doesnt know how to handle it. (belive me, I had this frustation a few hours ago, when I tried to copy a .pkg of a new game Im working on to a non-hacker and it didnt worked).

    You might say that this is a political issue, not a technical issue – but so far, every Debian based device I’ve seen takes a .deb with no tears. The matter of having a standard base worth more than having a wonderful compression scheme or great dependence calculations.

    Sure building a .deb can be a PITA as Gustavo said (It took me quite a while to understand how to do it – specially for Maemo), but I guess is the best we have right now.

  7. spaetz

    I agree, the SHR project has been bitten by opkg crashes and deficiencies for quite some time now. Going for apt might be a good way. have you looked at other package managers, such as pacman from arch linux. On a search this looked like a very decent package manager to me.

Comments are closed.

No Trackbacks.