wiki:Obsolete/MovedToTree/PackageManagement/DirectoryStructure

Version 2 (modified by bonefish, 8 years ago) (diff)

Removed common/share and added a comment.

Boot Volume Directory Structure

This is the directory layout of the boot volume:

common
	add-ons
	apps
	bin
	boot
	cache*
	data
	develop
	documentation
	etc
	include
	lib
	non-packaged*
	packages*
	preferences
	settings*
	var*

home/config
	<like common>

system
	add-ons
	apps
	bin
	boot
	data
	demos
	develop
	documentation
	lib
	packages*
	preferences
	servers

	haiku_loader**
	kernel_<arch>
	runtime_loader

trash

apps -> common/apps
preferences -> common/preferences

The structure mostly equals the pre-package management directory structure with the following changes:

  • The develop directory has been removed and it's contents has been moved to the system/develop and common/develop directories as appropriate.
  • optional has been removed. Optional features can just be installed via the package manager.
  • common/share has been removed. It's contents goes to common/data or common/documentation.
  • apps and preferences have been moved to common for consistency, though symlinks remain for convenience.
  • common, home/config and system each sport a packages directory, which contains the activated packages.
  • common, home/config and system themselves are mount points for three instances of the packagefs, i.e. each contains the virtually extracted contents of the activated packages in the respective packages subdirectories. The directories marked with * are "shine-through" directories. They are not provided by the packagefs, but are the underlying directories of the boot volume. Unlike the other directories they are writable.
  • common and home/config each contain a directory non-packaged which has the same structure as their parent directory minus the shine-through directories. In the non-packaged directories software can be installed the traditional -- non-packaged -- way.
  • haiku_loader requires special treatment. While it is contained in the system package, it also needs to be extracted to the boot volume (also to system), since otherwise the stage one boot loader wouldn't be able to load it (that would theoretically be possible, but there's just not enough space in the boot block for the code dealing with the package format).