A basic collection of simple functions for installing and removing GAP packages, with the eventual aim of becoming a full package manager for the GAP system.
Example invocations:
gap> LoadPackage("PackageManager");
gap> InstallPackage("digraphs");
gap> InstallPackage("https://github.com/gap-packages/Semigroups.git");
gap> InstallPackage("https://www.gap-system.org/pub/gap/gap4/tar.gz/packages/mapclass-1.2.tar.gz");
gap> RemovePackage("semigroups");
By default, verbose information about a command's progress is printed to the screen. To see less of this information, try using:
gap> SetInfoLevel(InfoPackageManager, 1);
For more information on the features of PackageManager, see the documentation at https://gap-packages.github.io/PackageManager/doc/chap1.html or enter GAP and call, for example,
gap> ?InstallPackage
It should be possible to install GAP from source, and install all required
packages, using nothing but GAP and PackageManager. The following instructions
attempt to install GAP in your home directory ~
, with the package manager in a
~/.gap/pkg
directory. This should work on a Debian/Ubuntu machine, but might
need some alterations on a Mac.
First, make sure you've got the required dependencies for GAP installed on your computer. On a Debian/Ubuntu machine you can get the required software using:
sudo apt install autoconf build-essential curl git graphviz libtool libgmp-dev texlive-full
On a Mac, you can get the required software by installing Homebrew, and running:
brew install git autoconf automake curl GMP graphviz libtool
Now, to install GAP and PackageManager, open a terminal window and enter the following:
cd ~
git clone git@github.com:gap-system/gap.git
cd gap
./autogen.sh
./configure
make
cd ~/
mkdir .gap
cd .gap
mkdir pkg
cd pkg
git clone git@github.com:gap-packages/PackageManager.git
cd ~/gap
./gap --bare
In the GAP window that opens, enter the following:
LoadPackage("PackageManager");
InstallRequiredPackages();
quit;
Now compile the documentation using:
make doc
You should now be able to load GAP with ./gap
and everything should work
normally. Further required packages can be installed with InstallPackage
when
you need them.
Please cite this package using the following format:
[YouXX] M. Young, PackageManager (GAP package), Easily download and install GAP packages, Version X.Y.Z (20XX), https://github.com/gap-packages/PackageManager.
PackageManager was partly created with funding from the OpenDreamKit project: https://opendreamkit.org | |
This infrastructure is part of a project that has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement No 676541. |