installi

The installi creates Start menu shortcuts for the specified image set.

Usage: installi <options> <image> -- [run flags...]

<options> available:
      --                        Parameters after -- are added as run flags
      --all-users               Applies the configuration settings to All Users
      --format=VALUE            Use the specified format for output. Supported values: json
  -n, --name=VALUE              Name of installed image
      --no-desktop-integration  Don't integrate with the host machine for installed applications
      --no-desktop-shortcuts    Don't create desktop shortcuts for installed applications
      --no-file-associations    Don't register file associations for installed applications
      --no-fonts                Don't install fonts for installed applications
      --no-send-to-shortcuts    Don't create Send To menu shortcuts for installed applications
      --no-shell-extensions     Don't register shell extensions for installed applications
      --no-start-menu-shortcuts Don't create Start menu shortcuts for installed applications
      --no-url-handlers         Don't register url handlers for installed applications
      --offline                 Allows the images to be installed without a hub connection if all images are present
                                  locally
      --overwrite               Ovewrite existing install
      --overwrite-fonts         Overwrite existing fonts
      --overwrite-shortcuts     Ovewrite existing shortcuts on the host
      --pull                    Pulls images to be installed from the hub if not already present
      --register-services       Register services for installed applications
      --wait-after-error        Leave session open after error
      --wait-after-exit         Leave session open after it exits

Any supplied run flags after -- are passed to the run command when an installed application is executed. For example, turbo installi 7-zip -- --vm=1.2.3.4 --diagnostics will result in shortcuts that have a run command like turbo run 7-zip --vm=1.2.3.4 --diagnostics [additional installation params]. These can be used to customize the installation behavior.

Offline

It is sometimes desired to configure your installed containers to execute completely offline to manage deployment and updates manually. Special planning must be considered if this is your goal.

Before running the installi command, all images must be present. The installi command will fail if any of the required images are not present.

# if using FULL isolation mode
> turbo pull clean

# if using MERGE or WRITE-COPY isolation modes
> turbo pull base

# pull the container vm engine
> turbo pull /xvm

# or if a specific version is desired
> turbo pull /xvm:1.2.3.4

# pull or import your application image
> turbo pull [application]
> turbo import svm c:\path\to\application.svm --name=[application]

Once the images are present, the installi command can be executed.

> turbo installi [application] --offline

# or if a specific version of the container vm engine is required to be locked in
> turbo installi [application] --offline --vm=1.2.3.4

If this is for a multi-user workstation, then additional steps are required to make components available to all users.

# install the client for all users on the machine
> turbo-client.exe --all-users

# configure shared image cache so that multiple copies of the application are not on the machine
# once the image cache path is updated, all future pulls and imports will save images to that location
> turbo config --all-users --image-path=allusers

# install the container for all users
> turbo installi [application] --offline --all-users

Services

Virtual services defined in the images are not installed by default as they will be executed from the user's container automatically or on-demand as configured in the image. Virtual services will be installed to the Windows Service Control Manager and will be run as SYSTEM account by default.

There are a couple ways to organize your images with virtual services:

  • Client application with services that are not shared - If the services are not needed to be shared among all users on the machine but rather are only necessary for the user's session (for example, a local SQL database service), then the services should not be installed.
  • Client application with services that are shared - If the services are to be shared by all users on the machine then the services in the images will need to be installed but must be configured in such a way that they are not automatically started when the user's container is executed. Otherwise when a user runs from an installed container's shortcut, the user container will try to spawn the service as well and fail.
  • Shared services without a client application - If an image contains a service without a client (for example, a web server or SQL database), then can install with the services without changes as no shortcuts will be created.

Specifying an Image Cache Path

To specify a custom image cache path for a particular installation, use the flag --TURBOREPO=<path>. The application will treat the path as the local repository root (the image will be stored in <path>\repo\images). Use --pull to ensure the image is pulled into the location on install.

Fonts

If the image includes fonts that should be installed to the operating system, the installi will automatically install them. The location of the fonts for local user install will be installed to the following registry key and file folder:

  • HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts
  • %localappdata%\Microsoft\Windows\Fonts

The location for all users installs are:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts
  • %windir%\fonts

The fonts will not be removed on uninstall unless the --remove-fonts flag is specified.

It is crucial to keep in mind that if the image requires fonts, it must be pulled before the installation process can proceed, unless the --no-fonts flag is specified. The --no-fonts flag allows the installation process to proceed without installing any additional fonts. However, it is important to note that if fonts are not installed during the installation process, the application will attempt to load the fonts during launch time, which may cause a delay in the launch process.