The Haiku/BeOS Tip Server
Tips and tricks for Haiku/BeOS users

Application storage locations

Contributed by: Scot Hacker
This tip is valid for: Both BeOS and Haiku

There seems to be a good bit of confusion over the question of where to install applications under BeOS. For the most part, people disagree over whether to install 3rd-party apps under /boot/apps or under /boot/home/apps.

Unlike Windows, BeOS doesn’t care where your apps live, and you’re free to drag them to any location after installation without breaking them. However, that doesn’t mean there aren’t recommended locations. If you read the tip The right way to find system paths you’ll find that the system preserves an internal list of “known locations” for certain system objects, the home folder, preferences, and applications, and that you can learn these locations via the finddir command in conjunction with global constants defined in the Storage Kit. If you type:

finddir B_APPS_DIRECTORY

the shell returns:

/boot/apps

Note that this is distinct from:

finddir B_BEOS_APPS_DIRECTORY

which returns:

/boot/beos/apps

As savvy users know, BeOS maintains a distinction between user-level and system-level paths throughout the system. However, part of the confusion stems from the fact that many users are confused over which directories belong to the system and which belong to the user. As you know, the home folder and its subdirectories belong to you, and Be promises never to mess with them. However, this doesn’t mean that home is the only folder you’re allowed to touch. In truth, the system owns the /boot/beos hierarchy, and you own everything else. This means that, contrary to popular belief, /boot/apps is indeed a user-level directory.

Note also that when you download a SoftwareValet package, the default location of the installation points to /boot/apps, since it’s using the B_APPS_DIRECTORY constant to find the location. This is further evidence that Be considers /boot/apps (or a subdirectory hierarchy you create below that folder) to be the preferred location for 3rd-party / user-level applications.

There’s another good reason not to store your apps under the /boot/home hierarchy: BeOS may one day go multi-user, at which point your home folder will not be accessible to other users logged onto your system. Since you probably want to have your apps available to all users of your system, you want them to live in a shared location not specific to any particular user. Of course, that’s fairly academic, since BeOS isn’t currently multi-user and if/when it ever does become so, you’ll be able to drag your apps to a new location without breaking them, but it’s worth considering. I also personally think its cleaner to use the home folder for data and to keep the apps separate, for the same kind of reason you wouldn’t install applications under C:My Documents in Windows.

Conclusion: Yes, of course you’re free to install your apps wherever you want. But in the controversy over where one should install them, I believe that /boot/apps is the better choice. It’s defined as the preferred location in a system-wide global constant, SoftwareValet points to that location, it’s multiuser-safe, and it keeps your apps and your data clearly separated.

Posted in Applications


(comments are closed).