Haiku: Package Manager – Doing Things Right
The Haiku community is living a very peculiar moment these days. They are witnessing the creation of its Package Manager. Generally considered as the last missing piece before the Beta, Haiku Inc. was recently awarded two contracts to allow full-time work on this sub-project.
Meanwhile, here is a presentation of how it is expected to work:
First of all, to answer a potentially frequently asked question (PFAQ?), no, it isn’t reusing another package format from the open-source world. Following the Haiku (and BeOS) philosophy, they thrive to do things right. « It would have been faster » isn’t really an argument here. Actually, a lot of decisions would have actually been made differently if it was only for time considerations. Instead, a file system based solution was devised which is both elegant and simple.
So, how does the Package Manager work? It’s fairly simple. Like many systems, Haiku allow processes to watch the content of given directories. Thus, the Package Manager watches the content of several per-determined directories, and receive events when files are either added or removed from them. You would place the package file into /boot/common/packages for a system-wide installation, or /boot/home/config/packages for a single user installation (by the way, the latter might not make much sense yet since Haiku is still a single user OS, but it’s future-proofing).
So, when a package is moved into one of those directories, the Package Manager takes notice. It looks if there are any missing dependencies and the content is then virtually extracted into the adequate directories. Virtually, yes, because /boot/common is a mount point of a filesystem called packagefs and its content is actually the union of all the package files in its package sub-directory. In other words, in /boot/common, you will see the files contained in every HPKG files sitting in /boot/common/packages, and the same can be said for /boot/home/config.
This installation process can either be done manually by placing those files using the file explorer (copy-paste, download directly to that location), or with the help of a tool. Either way, the “behind the scene mechanism” is alike.
Also, as you could guess, to remove a package, one would simply remove that package file from its “packages” directory (either by deleting the file, or moving it in another folder). The package manager daemon will manage cases where dependencies that were installed with the removed package are no longer required and offer to clean your system.
If you are interested to learn more about this new Package Manager, the definitive source of information on the matter is the Wiki. From there, you will find links to the repository where the code is being worked on, the specifications of the file format, and policies about how to build a package. It’s already testable, and the list of available packages is growing. It should hopefully help 3rd party developers to try to port their software and package it for Haiku.
Like us on Facebook
This week Top Posts
- Top Things To Do After Installing Ubuntu 13.10 'Saucy Salamander' : Ubuntu 13.10 Saucy Salamander will be released on coming October 17th with many new salient featur...0 comments |
- Manage Databases And Hosted Servers Remotely With DbNinja : Database administration via command line is bit difficult for newbie system and database administrat...0 comments |
- Setup IT And Asset Management System With GLPI On Debian/Ubuntu : GLPI is the Information Resource-Manager with an additional Administration Interface. You can use it...0 comments |
- How To Configure Linux Clients To Authenticate Using OpenLDAP : This is the continuation of our previous tutorial. In our previous tutorial we learned how to instal...0 comments |
- Install FrostWire 5.6.9 In Elementary OS 'Luna'/ Ubuntu / Linux Mint : FrostWire is a peer-to-peer file sharing program for the gnutella and BitTorrent protocols. FrostWir...0 comments |
- How To Upgrade From Ubuntu 13.04 Raring To Ubuntu 13.10 Saucy Salamander : Ubuntu 13.10 Saucy will be released on October 17th. Hope it will come with lot of improvements and ...0 comments |
- How To Install Linux Kernel 3.12.4 In Ubuntu
- Firefox 26 Has Been Released, How To Install It In Ubuntu And Its Derivates
- How To Install Brasero In Elementary OS ‘Luna’
- Install Sayonara Player In Elementary OS / Ubuntu / Linux Mint
- Manage Databases And Hosted Servers Remotely With DbNinja
- Install FrostWire 5.6.9 In Elementary OS ‘Luna’/ Ubuntu / Linux Mint
- Setup IT And Asset Management System With GLPI On Debian/Ubuntu
- How To Configure Linux Clients To Authenticate Using OpenLDAP
- How To Install Netflix In Ubuntu
- cowsay And fortune Combined Together
This work by unixmen.com is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.
Copyright © 2008-2013 Unixmen.com .