Package management RFF

From The Neuros Technology Wiki

(Redirected from Package Management Proposal)
Jump to: navigation, search

Contents

[edit] The Problem

Neuros products should be easily extensible. Community add-ons to Neuros products should have a standard method of being added on. Due to size restrictions and the fact that flashing is always risky, this method should not involve reflashing the board.

[edit] One Solution

This solution is still evolving. Please contribute!, see my suggestion: OSD_Ideas#Installation_of_new_features

[edit] Pre-Requisites

  • User-writable configuration directory backed by persistent storage.
  • Access to external persistent storage (i.e. CompactFlash cards).
  • unionfs and squashfs support in the kernel.
  • unionfs-mounted root. (See below.)

[edit] Package Format

Packages are SquashFS images. Metadata is carried in the image in an as-yet-undetermined way. The image contains the files necessary for the package to function, in the full path from device root in which they should be installed. It is recommended that packages be installed in /usr/local whenever possible.

[edit] Package Creation

No automated solution has been proposed, although Gentoo's 'sandbox' may prove useful in this, as well as using the UnionFS overlay in reverse. For now, you will have to create a SquashFS image containing everything that the package needs to run, stored with full paths from the place where it will be installed.

[edit] Package Distribution

TBD.

[edit] Package Installation

Any metadata-related activities will happen. The SquashFS image will be mounted on a loop-back device to a package directory (/media/packages/$PACKAGE-NAME/). UnionFS will be used to merge that package straight into the filesystem, above the on-board root filesystem image, but above the tmpfs mount. A given package's position in the filesystem overlay (what it overlays and what overlays it) is deterministic, but yet to be determined.

[edit] Root as UnionFS

This part is still under consideration. Doing it will require using a small initrd (measured in tens of kilobytes), but having an initrd adds complexity. Whether or not that is necessary is still under consideration.

Personal tools