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)