0

My company make a variety of (usually) desktop apps to be used internally to aid the creation/analysis of our datasets.

Recently I created a program which acts as a sort of installation & runtime manager, with the purpose of:

  • Providing users with a consistent means by which to locate and install applications
  • Manage execution of installed apps and provide environments for various interpreted languages so the user doesnt need to know/care about python/R
  • Ensure users are up-to-date with latest versions etc..

The program itself is a desktop GUI which integrates with our in-house software website and grabs applications from a network location.

To run apps, it typically overwrites the users' PATH variable with it's own settings plus what ever the app defines.

Occasionally, this is not enough isolation and a user has a problem running apps.

Is there a way to easily run an app in isolation? Ideally, I could remove all environment variables other than the defaults provided by Windows, but this still leaves the possibility of odd registry values interfering with execution..

The application itself is written in Qt C++

jramm
  • 6,415
  • 4
  • 34
  • 73
  • have you tried looking into py2exe and pyinstaller ? you'll be able to generate distributable standalone exe's of python scripts. – HaseebR7 Jun 03 '15 at 09:34
  • yes, but not a solution. 1. They do nothing to address environment conflicts. They just wrap python packages in an executable. 2. those programs do not address all the bullet points listed above, that my program does address. I.e the 'manager' program is still necessary, which makes usage of py2exe/pyinstaller fairly redundant. – jramm Jun 03 '15 at 10:33
  • 1
    You could run each app in its own VM if you need complete isolation. – Tom Dalton Jun 03 '15 at 10:40
  • @TomDalton ways to do this programatically? (i.e. without the user having to install & run a VM) – jramm Jun 03 '15 at 10:43
  • Depends on the VM tooling you use, but something like `vboxmanage`? https://www.virtualbox.org/manual/ch08.html if you want command line, or the equivalent `pyvbox` or `vbox` python packages. You could pre-build each app in it's own little VM (manual work for you), but it seems you need arbitrary control over the env the apps run in, so I guess you can't avoid this. Then your tooling would allow users to fetch and launch (copies of) the VM images for the apps they want to use. – Tom Dalton Jun 03 '15 at 15:35
  • Incidentally, it sounds like the actual apps that users are running are the problem here, and that making them actually install properly would be the 'right' solution. Not clear what sort of things you mean when you talk about '1. They do nothing to address environment conflicts.'. I understand that the apps themselves may be outside of your control but perhaps you can influence the way they are created in the future to avoid the historical problems? – Tom Dalton Jun 03 '15 at 15:36

0 Answers0