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 thesudo
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 usingapi_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"