Disabling components of packages
Haiku's package manager presents installed packages as a read-only filesystem, so unlike other systems, it is not possible to just delete or rename a problematic driver or library. However, individual packaged files can be prevented from being exposed at boot time.
In the Boot Options menu, there is a "Disable components" option available to accomplish this. However, this method will only let you disable components of the main (haiku) system package, and only until the next time you reboot.
Let's go through the few steps needed:
- Figure out which package contains the file that you want to disable, and whether the file is in a package located in the system or user file hierarchy. You can find the containing package name with "Get info" from Tracker's context menu on that file; look for
SYS:PACKAGEin its "Attributes" tab. - Next, create a text file named
packagesin/boot/system/settings, or in/boot/home/config/settings. (The first folder is used for disabling components in system packages, the second for user packages.) - Inside the
packagesfile, we put something like:Package package_name { BlockedEntries { path/to/blocked/entry ... } }package_nameis the name of the package without version, for examplehaiku.path/to/blocked/entryis the relative path to the installation location, e.g.add-ons/Translators/FooTranslator.
Any disabled entries will be ignored by packagefs and will no longer appear in the file system, until they are removed from the BlockedEntries list and the system rebooted again.
Example
To disable the intel_extreme driver and the xhci driver, which are both part of the haiku system package, the we create a /boot/system/settings/packages and give it the following content:
Package haiku {
BlockedEntries {
add-ons/kernel/drivers/bin/intel_extreme
add-ons/kernel/busses/usb/xhci
}
}
We then save the file and reboot. Once Haiku starts again, the file will be ignored by packagefs when the package is mounted.



