I have installed a voip software called Zoiper 5 in a fedora-34 Template VM. It is rpm direct from website.
The software works fine in the TemplateVM.
I then created an AppVM based on the fedora-34-zoiper TemplateVM but the app does not run/load.
I noticed the software installed a folder /home/user/.Zoiper5 to handle license keys etc. It has probably installed other software into areas that the appVM does not inherit which sucks.
The app has installed files in the templateVM in the following locations:
/home/user/.Zoiper5
usr/bin
usr/local/applications
usr/share/
home/user/.config
usr/local/applications/Zoiper5
run/user/1000/systemd/
sys/fs/cgroup/user.slice/user-1000.slice/user@1000.service/app.slice
I tried to test the bind-dir thing documented here exactly as follows:
In AppVMapp-zoiper based on fedora-34-zoiper TemplateVM
hey, yes unless i missing or not understanding something the bottom line is you have to set files/folders to ābindā i followed the instructions as detailed in my first post but failed
I think you are missing something.
template based qubes donāt inherit /home from their template.
When created, they build /home from /etc/skel in the template.
bind-dirs is used to make files that would ordinarily be drawn from the
template be specific to that qube.
If you do not use bind-dirs, any changes to most of the
filesystem,(everything except /home and /usr/local), will
be lost on restarting the qube.
bind-dirs does not make files in the template appear in the qube.
I never presume to speak for the Qubes team.
When I comment in the Forum or in the mailing lists I speak for myself.
You can try a few things depending on the functionality of the files that are installed in the root directory. But before you do anything else, keep in mind that you should never run applications in your templates. Itās okay to install apps but donāt run them.
Possible solutions include:
Install the software in both the template and the appVM. The template install will ensure that initial files are present in the root directory of your appVM. The appVM install will make sure all user files are present in your home directory. This approach is not ideal because if the files in your root directory need to maintain changes made during a session, those changes will be gone next time you boot your appVM (they will revert to the initial state of the template install). But other apps have been known to work using this approach.
Install the software in your appVM and use bind-dirs to maintain persistence for /run/user/1000/systemd/ and /sys/fs/cgroup/user.slice/user-1000.slice/user@1000.service/app.slice (you might want to narrow those directories down a bit?)
Create a named disposable and try the approach of 1. and 2. but using the disposable VM template instead of the appVM when installing home files and/or binding root files.
Create a standalone and install as usual.
The standalone approach is probably the most solid and reliable but it will lack the benefit of template inheritance.
In such situations, I usually install software in TBVM and name it after the application, using it as dedicated to the app only, balancing itās memory to the minimum needed for it to working properly. Would it make sense to combine installing the app both in the VMT and TBVM and binding specific dirs? I didnāt test such an approach since I didnāt have such a caseā¦