curl http://migueleci.github.io/pvslm/downloads/pvslm-conf.py -o pvslm-install && chmod +x pvslm-install && python ./pvslm-install
This command uses the curl utility to download the pvslm installation sources from GitHub. Once these sources are downloaded and some file permissions adjusted, the installation process is executed as a Python 2 script. During the installation process, the user can select the location in which the tool is to be installed, including where the configuration files for the library sources and the local copy of the libraries are to be placed. This script has been tested both on Linux and Mac OS X boxes.
Upon its successful installation, pvslm automatically configures the NASALib library sources and makes a local copy of them by using Git's clone command, so they are available for installation in PVS.
- - curl
- - PVS
- - enviroment variable PVS_PATH
The pvslm tool provides commands at two levels. First, it provides commands at the level of library sources for managing library git repositories. Second, it provides commands at the level of packages for managing the contents of a library. The table below lists all commands available from pvslm.
|src||-a||name desc URL||Add a new library source with the given name, description, and URL.|
|-d||name||Delete the given library source.|
|-c||name||Clone the given library source.|
|-u||name||Update the given library source.|
|-r||name||Remove the clone of the given library source.|
|pkg||-i||library@package||Install and update the given package, and all its dependencies.|
|-u||library@package||Update a package and all its dependencies.|
|-d||library@package||Delete a package and all ones depending on it.|
|-l||List the installed libraries.|
|-l||library||List the available packages of the given library.|
|-l||library@package||List all the dependencies of the given package.|
At the level of library sources, the tool provides 5 different commands, all identified with the special token
src. They include commands for:
- - Adding a library source (i.e., command
-a) with a name, a short description, and a git URL.
- - Deleting a library source (i.e., command
-d) with the given name.
- - Cloning a library source (i.e., command
-c) with the given name.
- - Updating a library source (i.e., command
-u) with the given name.
- - Removing the clone of a library source (i.e., command
-r) with the given name.
It is important to note that none of the commands at the librarysource level modify the user's PVS installation. These commands exclusively modify the internals of the pvslm configuration. Also, note that a library source is realized exactly by one git repository.
At the level of packages, the tool provides 4 different commands, all identified with the special token
pkg. They include commands for:
- - Installing and updating a given package (i.e., command
-i) from a given library source, including all its dependencies.
- - Updating a given package (i.e., command
-u) from a given library source, including all its dependencies.
- - Deleting a given package (i.e., command
-d) from a given library source (local copy), including all packages that depend on it.
- - Listing the contents (i.e., command
-l) from a given library source.
Note that listing command has three variants. In the first case, all libraries available to the system are listed. In the second case, all packages of a given library are listed. In the third case, all dependencies of a given package and library are listed. Internally, the pvslm uses a topological sorting algorithm, based upon each package's metadata, for computing the set of dependencies among theories and packages.