When you install software in /usr or /opt in the template VM it will be
visible in all the user VM's that use that template. The settings to
automatically launch daemon processes may need to be enabled for each
AppVM depending on both yours and the particular software package
requirements. You may not necessarily need a cron job or a daemon to run
in every AppVM instance, for example.
If you instead install software in the AppVM's /home/user/* or
/usr/local/* (basically any directory automatically remapped from the
private volume /rw/* ), then the software will be available only within
that single AppVM.
Where it makes sense to install a particular third-party software
package depends highly on what that specific software needs in order to
function properly. If the software is installed locally in /usr/local
but then still wants its configuration files to be in /etc, or needs
cron, then you may need to work around that specific problem with either
copying the configuration file separately into the template VM /etc, or
else using some magic scripting during the AppVM startup to copy the
config file into the right location before the software that needs it is
actually started. There is usually a workaround that will get the job
done, but you may need to learn a bit more about how each software
package works than you normally would on some other less secure system.