@Chapter Introduction

@Section What does the <Package>PackageManager</Package> package do?

This package provides the ability to install or remove a package using a single
command: <Ref Func="InstallPackage" /> or <Ref Func="RemovePackage" />.  The
user can specify a package to install using its name, or using a URL to an
archive, a repository, or a <C>PackageInfo.g</C> file.  When installing,
<Package>PackageManager</Package> also attempts to compile the package, build its documentation if
necessary, and ensure that its dependencies are also installed.

@Section What does the <Package>PackageManager</Package> package not do?

At present, <Package>PackageManager</Package> is fairly basic, without many of the advanced
features available in package managers such as pip or apt.  For instance, the
user cannot update all packages in one command.  Removing a package
will not remove any of its dependencies, since we do not track how packages were
installed.  When a package is installed, no tests are run to ensure that it is
compatible with the installed version of GAP.  Any of these features might be
added in the future.  Other feature requests can be posted on the issue tracker
at <URL>https://github.com/gap-packages/PackageManager/issues</URL>.

@Section A quick example

To install the latest deposited version of the <Package>Digraphs</Package>
package, use the following:

@BeginExample
LoadPackage("PackageManager");
InstallPackage("digraphs");
@EndExample

To uninstall it later, use the following:

@BeginExample
LoadPackage("PackageManager");
RemovePackage("digraphs");
@EndExample

<Package>PackageManager</Package> also supports version control repositories.  To install the
latest version of the <URL Text="curlInterface package from GitHub">https://github.com/gap-packages/curlInterface.git</URL>, use the following:

@BeginExample
LoadPackage("PackageManager");
InstallPackage("https://github.com/gap-packages/curlInterface.git");
@EndExample

@Chapter Commands
