 1
 1 
See also text & comments at
| Did you know ... | Search Documentation: | 
|  | library(prolog_pack): A package manager for Prolog | 
The library(prolog_pack) provides the SWI-Prolog package 
manager. This library lets you inspect installed packages, install 
packages, remove packages, etc. This library complemented by the 
built-in predicates such as attach_packs/2 
that makes installed packages available as libraries.
The important functionality of this library is encapsulated in the app
pack. For help, run
swipl pack help
Options processed:
installed(true).|false)false, do not contact the server. This implies
installed(true). Otherwise, use the given pack server.
Hint: ?- pack_list(''). lists all known packages.
The predicates pack_list/1 
and pack_search/1 
are synonyms. Both contact the package server at https://www.swi-prolog.org 
to find available packages. Contacting the server can be avoided using 
the
server(false) option.
http(s) URL of an archive file name. This URL may 
contain a star (*) for the version. In this case pack_install/1 
asks for the directory content and selects the latest version.file:// URL'.', in which case a relative symlink is created to the 
current directory (all other options for Spec make a copy of 
the files). Installation using a symlink is normally used during 
development of a pack.
Processes the options below. Default options as would be used by
pack_install/1 
are used to complete the provided Options. Note that
pack_install/2 
can be used through the SWI-Prolog command line app
pack as below. Most of the options of this predicate are 
available as command line options.
swipl pack install <name>
Options:
true, install in the XDG common application data path, 
making the pack accessible to everyone. If false, install 
in the XDG user application data path, making the pack accessible for 
the current user only. If the option is absent, use the first existing 
and writable directory. If that doesn't exist find locations where it 
can be created and prompt the user to do so.true (default false), do not perform any 
checks on SSL certificates when downloading using https.true (default false), suppress informational progress 
messages.true (default false), upgrade package if it 
is already installed.if_absent (default, do nothing if the directory with 
foreign resources exists), make (run make) or true 
(runāmake distclean` followed by the default configure and build 
steps).true (default), run the pack tests.true (default false unless URL 
ends with .git), assume the URL is a GIT repository.'1.5' is the same as >=('1.5').'HEAD'.-DCMAKE_BUILD_TYPE=Type. 
Default is the build type of Prolog or Release.true (default), register packages as downloaded after 
performing the download. This contacts the server with the meta-data of 
each pack that was downloaded. The server will either register the 
location as a new version or increment the download count. The server 
stores the IP address of the client. Subsequent downloads of the same 
version from the same IP address are ignored.prolog_pack:server, by default set to
https://www.swi-prolog.org/pack/
Non-interactive installation can be established using the option
interactive(false). It is adviced to install from a 
particular
trusted URL instead of the plain pack name for unattented 
operation.
pack_install(Pack, [upgrade(true)]).true delete dependencies without asking.
?- pack_publish('.', []).
Alternatively, an archive file has been uploaded to a public location. In this scenario we can publish the pack using
?- pack_publish(URL, [])
In both scenarios, pack_publish/2 by default creates an isolated environment and installs the package in this directory from the public URL. On success it triggers the pack server to register the URL as a new pack or a new release of a pack.
Packs may also be published using the app pack, 
e.g.
swipl pack publish .
Options:
true, and Spec is a git managed directory, 
install using the remote repo.git tag -s <tag>.git tag -f <tag>.false (default true), perform the 
installation, but do not upload to the server. This can be used for 
testing.true (default), install and build all packages in an 
isolated package directory. If false, use other packages 
installed for the environment. The latter may be used to speedup 
debugging.true (default), clean the destination directory firstREADME file (if present)TODO file (if present)
 1
 1 
See also text & comments at