[BusyBox] the ideal packaging solution? (rpm or dpkg?)
Rob Landley
rob at landley.net
Wed Nov 12 20:57:42 UTC 2003
On Wednesday 12 November 2003 07:49, Robert P. J. Day wrote:
> since i started the thread on whining about how BB's "rpm" command
> couldn't install an apache rpm on a PPC system, i have a more general
> question (again, this is from a newbie so consider the source).
>
> i have a base system up and running on a PPC system (embedded
> system based on a download from timesys.com). one of the requirements
> is to be able to use a simple packaging tool to install/upgrade/remove
> packages, a la rpm (which i know) or perhaps dpkg (which i don't know
> but am willing to learn).
>
> what's the consensus for packaging systems? should i use BB's
> internal rpm or dpkg, or download separate utilities. i notice that
> BB's rpm command doesn't support things like upgrade or remove,
> so it's of limited use to me.
>
> any other options i should look at? thanks for any pointers.
>
> rday
The last server system I put together ran off a loopback mounted zisofs image
for its root partition. (With a big ramdisk mounted on /var and some
symlinks ala /etc->/var/etc and /tmp->/tmp/var.) It effectively had the
whole system in firmware, so when you wanted to upgrade just fling a new
zisofs image up there, update lilo to point to the new one, and reboot into
it. (It was actually fancy enough that it would use like -R to conditionally
boot into the new firmeware once and then the new firmware would make that
permanent once it had successfully booted and run a self-diagnostic. If it
didn't work, power cycling the box would boot back up in the old firmware.
Hence firmware upgrades couldn't easily result in a brick.)
Another guy I know put together a system where every package was installed in
its own directory under /opt, and the root filesystem was just symlinks into
opt. (This guy loved /opt, I don't know why. I never put ANYTHING in opt, I
think the existence of that directory is a bad idea.) His uninstall method
ws rm -rf the appropriate directory and run a command that killed all dead
symlinks in the tree. (Pretty simple, actually, a script that started with
"find / -type l -xdev" and then tested each one (readlink, access) and zapped
the dead ones (rm).)
These days, if you're going to use anything more advanced than that, you might
want to check out apt-get. Don't just install this package, install the
background crap this package needs to run...
Rob
More information about the busybox
mailing list