I was trying to create qubes based on a template qube having software tools related to bug hunting, specifically Burp Suite Community. But I experienced issues when trying to execute Burp with the app menu shortcuts of the template-based app qubes, which they do nothing.
Burp was installed from its official site using its installation script, which made it visible in the “available apps” of the template without problem and the app menu shortcut of the template triggered Burp also without problem (I know that templates aren’t for running software, I just tested the install of Burp in my first steps using the OS).
After the installation of Burp using the installation script, a directory with the executable was created in a custom directory of my choice, which was possible to make it available in its “child-qubes” by moving the directory to /usr/local.orig/lib/ (after reading online about how /usr/local.orig/ solved a similar problem) hoping that the lib part made sense as software installation from non-default sources (non-package-manager installs).
It worked, but the app menu shortcut of Burp for the app qubes didn’t. They did nothing. I changed the exec= part of its .desktop file thinking that the shortcut was pointing to a location only available in the template qube, but that didn’t work.
“Maybe the problem was trying to use app qubes in a situation where other qube type is more appropriate,” I thought. So I started to read about Standalones and how they are suitable for similar needs, like the “creation of dev environments where you need many custom tools”.
but the standalone qubes I created based on my template qube didn’t contain the files and directories of the template. I tried a kinda prof of concept (POV) creating a text file at /home/user/test.txtin the template and AFTER that, I created a standalone based on that template. I shutdown/restart the template qube BEFORE creating the standalone, but the text file was not present in the standalone filesystem!
What I missed?
What I need
Suggestions for an optimal approach to create qubes packed with tools installed from default (e.g. via package manager) and other sources (e.g. via manually executed install scripts).
Understand why a text file in the home of a template qube is not inherited by a standalone based on it.
I changed the BurpSuiteCommunity directory containing the executable to /opt/ and created a symbolic link called burp pointing to /opt/BurpSuiteCommunity/BurpSuiteCommunity at /bin (which is a symlink included by default pointing to /usr/bin), so I can trigger BurpSuite with burp command from all the standalones based on that template qube.
I don’t know if this is the better approach given the Filesystem Hierarchy Standard or some Qubes OS best practices, but it works!
Feedback is always appreciated.
About docs likely being wrong
What do you recommend in this case?
If the docs are wrong how to proceed and contribute?
I don’t feel an advanced Qubes OS user yet to tweak too much the docs and make a pull request of that size.