Does the recently introduced Haiku Package Manager support modular, self-contained applications? By this I mean applications whose files are ALL hosted within their own directory (instead of being scattered all over the filesystem, as is the norm in the *nix world). As a parallel case to this I have in mind Windows’ portable applications (although these are usually not tracked or managed by any package manager) or TinyCore Linux’s self-contained extensions.
I vaguely remember reading that Haiku does support this feature, or that it was planned.
I would be thankful if you could tell me whether this feature has already been implemented, and how it works.
Thanks in advance to all of you, and kudos to the developers.
Our applications are never scattered accross the file system, because the package is never extracted. Instead, they are mounted by our package filesystem.
This makes installing apps as easy as copying the package file to /system/packages, and removing them as easy as moving the package file out of that directory.
There is no rule as far as the package contents come. So your application package can have all its files in a single folder in that package (probably apps/AppName to follow Haiku conventions).
Distributing apps as plain old zip files is of course still an option, and we can still use BeOS apps this way.
Excellent, this makes Haiku apps perfectly modular and self-contained!
What about the settings of an app? Where are they stored?
Since the contents of the package are not extracted to a directory, there is no directory where the setting files could be stored.
Is there perhaps a directory containing all the .ini files of the various applications?
Settings are usually put into “finddir B_USER_SETTINGS_DIRECTORY”, i.e. ~/config/settings/.
So, in that sense, an app package isn’t completely self-contained. But on the other hand, you may want to keep your settings after (temporary) uninstalling or when updating a package.