Installing and uninstalling🔗

Component and license packages can be installed and uninstalled graphically through the Engine’s management interface. Another option is to use the va-pkg command-line tool, which we’ll be using here.

Setup🔗

On Windows, va-pkg is in the bin directory of the VisionAppster installation. To use it, first open VisionAppster command prompt from the start menu.

In a user-scope Linux installation, va-pkg will be placed in $HOME/bin or $HOME/.local/bin. If this directory is in your PATH, this command will give you basic usage instructions:

va-pkg

If you installed the Flatpak version to the system scope on Linux, you may want to set up an alias first:

alias va-pkg="flatpak run --command=va-pkg com.visionappster.Builder"

Installing from the VisionAppster Store🔗

To install component packages from the VisionAppster Store you need to create an account first. You can then log in to the Store from the command line:

va-pkg login

This fetches an authorization token from VisionAppster’s server and saves it locally. If you are familiar with the sudo command, the authorization token works analogously: it is valid for a limited period of time only and will be automatically refreshed whenever you use it. You need to log in again after a period of inactivity. If you don’t explicitly log in or if the token expires, commands that require authorization will ask your login credentials. To explicitly log out, type va-pkg logout.

To install the newest version of a component from the store:

va-pkg install com.example.component

Install the newest version within a specific major version:

va-pkg install com.example.component/1

Install a specific version:

va-pkg install com.example.component/1.2.3

Install to system-scope service:

va-pkg install --system com.example.component

Note that you can download and install all components that are not cloud-only. Unless the component is free, you will however not be able to run it without a valid license. To install your purchased licenses locally:

va-pkg license refresh

Installing other packages🔗

Install a downloaded package:

va-pkg install com.example.component-1.2.3.vapkg

Install Python modules:

va-pkg install python:numpy python:opencv-python

NOTE! You need to install Python extension first to enable Python module support:

va-pkg install com.visionappster.extensions.python

Install a component package to a remote computer running a VisionAppster Engine instance in the default port (2015):

va-pkg install --remote 192.168.1.23 com.example.component-1.2.3.vapkg

Install from VisionAppster Store to a remote computer using a non-standard port:

va-pkg install --remote http://192.168.1.23:2016 com.example.component

Uninstalling🔗

Uninstall the only installed version of a component:

va-pkg uninstall com.example.component

Uninstall a specific major version of a component:

va-pkg uninstall com.example.component/1

Uninstall a Python module:

va-pkg uninstall python:opencv-python

Uninstall from a remote computer:

va-pkg uninstall --remote 192.168.1.23 com.example.component

Installation scopes🔗

va-pkg lets one to install components in three different scopes:

  • --local: Install to user’s home directory. This is the default. On Linux, these components will be available in the Builder and in an Engine service that is run in the user scope. There are no user-scope services in Windows, so --local means the Builder only.

  • --system: Install to a system-wide component directory that is used by the VisionAppster Engine service. This works for system-scope services on both Linux and Windows. Installing to the system scope requires administrator (root) privileges. On Linux, use the sudo command. On Windows, run the command prompt as Administrator.

  • --remote: Install to a remote computer. The installation ends up in either local or system scope depending on who is listening to the target TCP port on the server. By default, the VisionAppster Engine service listens port 2015, and that is also what the --remote switch uses unless specified otherwise. Note that disabling remote management (e.g. by using api_init.qml) makes it impossible to install packages remotely.

Caveats🔗

va-pkg cannot make changes that would cross a container border. Practical consequences:

  • When va-pkg is run inside Flatpak, it cannot make changes to the system scope (--system command-line flag).

  • If the VisionAppster Engine service runs in a container, va-pkg run in the same machine but outside of the container may not be able to make changes to the component database used by the container. This depends on the way you mounted volumes to the container. In this case, the preferred way is to manage the component database in the container through its HTTP interface using the --remote flag.

Raw HTTP API🔗

Using va-pkg requires installing the VisionAppster runtime. Sometimes, this is not feasible. Luckily, using the HTTP interface of the Engine is simple enough to be used from the command line:

# Address of remote host
remote=localhost:2015
# Name of package file
package_file="com.example.component-1.2.3.vapkg"
# Upload file using HTTP PUT
curl -T "$package_file" "http://$remote/packages/$package_file"
# Install
curl "http://$remote/componentdb/functions/installUploadedPackage?$package_file"
# Uninstall
curl "http://$remote/componentdb/functions/uninstallComponent?com.example.component/1"