The user data and config can often be made portable too, further easing the pressure on the
changes folder. For example, all AppImages can have adjacent AppImage.home and AppImage.config see
https://docs.appimage.org/user-guide/portable-mode.html. Another example are web browsers that can specify the Profile folder location, e.g.,
Code: Select all
/P/Zen/zen-bin -profile "/P/ZenProfile"
where
P is defined in
rc.local as:
Code: Select all
#source /etc/profile.d/porteus.sh
#mkdir /P
mount --bind $BASEDIR/portable /P
and is a
constant path for the portable apps. Whereas
Interestingly, many apps (for example, Firefox) resolve their true path through a symbolic links and discover they are run from a different location. That's why it has to be a
mount --bind type "hard" link.
As you can see I've chosen the portable folder to be next to the
porteus folder on my USB/HDD. But it's also next to the
porteux that I sometimes boot into! Thus, my portable installations, not only are taken out of xzm modules and out of the changes folders, but are also easily accessible from both
porteus and
porteux -- truly portable!
Code: Select all
ls $BASEDIR/
portable/
porteus/
porteux/
The example of a web-browser (Firefox, Zen, etc.) illustrates the advantages of portable installations. They are constantly updating the user Profile folders, and quite often they self-update in-place! The alternative up to now has been (for a human!) to constantly produce newly updated .xzm modules for Firefox itself and keep constantly changing the rather heavy Profile folder inside /changes.
In the next post I'll talk about the system and desktop integration of portable apps.