  
  [1X2 [33X[0;0YCommands[133X[101X
  
  
  [1X2.1 [33X[0;0YMain commands[133X[101X
  
  [1X2.1-1 InstallPackage[101X
  
  [33X[1;0Y[29X[2XInstallPackage[102X( [3Xstring[103X[, [3Xversion[103X][, [3Xinteractive[103X] ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X[133X
  
  [33X[0;0YAttempts  to download and install a package. The argument [3Xstring[103X should be a
  string containing one of the following:[133X
  
  [30X    [33X[0;6Ythe name of a package;[133X
  
  [30X    [33X[0;6Ythe URL of a package archive, ending in [10X.tar.gz[110X or [10X.tar.bz2[110X;[133X
  
  [30X    [33X[0;6Ythe URL of a git repository, ending in [10X.git[110X;[133X
  
  [30X    [33X[0;6Ythe URL of a valid [10XPackageInfo.g[110X file.[133X
  
  [33X[0;0YThe package will then be downloaded and installed, along with any additional
  packages  that  are required in order for it to be loaded. Its documentation
  will  also  be built if necessary. If this installation is successful, or if
  this  package  is  already  installed, [9Xtrue[109X is returned; otherwise, [9Xfalse[109X is
  returned.[133X
  
  [33X[0;0YBy   default,  packages  will  be  installed  in  the  [10Xpkg[110X  subdirectory  of
  [10XGAPInfo.UserGapRoot[110X  (see [14X'Reference: GAP Root Directories'[114X). Note that this
  location  is  not  the  default user pkg location on Mac OSX, but it will be
  created  on  any  system if not already present. Note also that starting [5XGAP[105X
  with the [10X-r[110X flag will cause all packages in this directory to be ignored.[133X
  
  [33X[0;0YCertain  decisions,  such  as installing newer versions of packages, will be
  confirmed by the user via an interactive shell – to avoid this interactivity
  and  use sane defaults instead, the optional argument [3Xinteractive[103X can be set
  to [9Xfalse[109X.[133X
  
  [33X[0;0YTo  see  more  information  about  this  process  while  it  is ongoing, see
  [2XInfoPackageManager[102X ([14X2.2-1[114X).[133X
  
  [33X[0;0YIf  [3Xstring[103X  is  the  name  of the package in question then one can specify a
  required  package  version  via  a  string as value of the optional argument
  [3Xversion[103X,  which  is  interpreted as described in Section [14X'Reference: Version
  Numbers'[114X. In particular, if [3Xversion[103X starts with [10X=[110X then the function will try
  to install exactly the given version, and otherwise it will try to install a
  version  that  is  not  smaller  than the given one. If an installed version
  satisfies  the  condition  on  the  version then [9Xtrue[109X is returned without an
  attempt to upgrade the package. If the package is not yet installed or if no
  installed  version  satisfies the version condition then an upgrade is tried
  only if the package version that is listed on the [5XGAP[105X webpages satisfies the
  condition.  (The  function will not update a dev version of the package if a
  version number is prescribed; otherwise it could happen that one updates the
  installation  and afterwards notices that the version condition is still not
  satisfied.)[133X
  
  [33X[0;0YIf  installation  fails,  then any new directories that were created will be
  removed.  To override this behaviour, the option [9XkeepDirectory[109X can be set to
  [9Xtrue[109X using, for example, [10XInstallPackage("example" : keepDirectory)[110X, in which
  case such directories will be preserved for debugging.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XInstallPackage("digraphs");[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  [1X2.1-2 UpdatePackage[101X
  
  [33X[1;0Y[29X[2XUpdatePackage[102X( [3Xname[103X[, [3Xinteractive[103X] ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X[133X
  
  [33X[0;0YAttempts  to  update  an  installed package to the latest version. The first
  argument  [3Xname[103X should be a string specifying the name of a package installed
  in  the  user  [5XGAP[105X  root  (for  example,  one installed using [2XInstallPackage[102X
  ([14X2.1-1[114X)),  see  [14X'Reference:  GAP  Root  Directories'[114X.  The  second  argument
  [3Xinteractive[103X  is  optional,  and  should  be  a boolean specifying whether to
  confirm  interactively  before  any  directories  are deleted (default value
  [9Xtrue[109X).[133X
  
  [33X[0;0YIf  the package was installed via archive, the new version will be installed
  in  a  new  directory, and the old version will be deleted. If installed via
  git,  it will be updated using [10Xgit pull[110X, so long as there are no outstanding
  changes. If no newer version is available, no changes will be made.[133X
  
  [33X[0;0YThis  process  will  also  attempt  to  fix the package if it is broken, for
  example  if  it  needs  to  be  recompiled  or if one of its dependencies is
  missing or broken.[133X
  
  [33X[0;0YReturns  [9Xtrue[109X  if a newer version was installed successfully, or if no newer
  version is available. Returns [9Xfalse[109X otherwise.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XUpdatePackage("io");[127X[104X
    [4X[28X#I  io version 4.6.0 will be installed, replacing 4.5.4[128X[104X
    [4X[28X#I  Saved archive to /tmp/tm7r5Ug7/io-4.6.0.tar.gz[128X[104X
    [4X[28XRemove old version of io at /home/user/.gap/pkg/io-4.5.4 ? [y/N] y[128X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  [1X2.1-3 RemovePackage[101X
  
  [33X[1;0Y[29X[2XRemovePackage[102X( [3Xname[103X[, [3Xinteractive[103X] ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X[133X
  
  [33X[0;0YAttempts  to  remove an installed package using its name. The first argument
  [3Xname[103X  should  be  a string specifying the name of a package installed in the
  user  [5XGAP[105X  root,  see [14X'Reference: GAP Root Directories'[114X. The second argument
  [3Xinteractive[103X  is  optional,  and  should  be  a boolean specifying whether to
  confirm certain decisions interactively (default value [9Xtrue[109X).[133X
  
  [33X[0;0YReturns [9Xtrue[109X if the removal was successful, and [9Xfalse[109X otherwise.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XRemovePackage("digraphs");[127X[104X
    [4X[28XReally delete directory /home/user/.gap/pkg/digraphs-0.13.0 ? [y/N] y[128X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  [1X2.1-4 InstallRequiredPackages[101X
  
  [33X[1;0Y[29X[2XInstallRequiredPackages[102X(  ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X[133X
  
  [33X[0;0YAttempts  to  download  and  install  the  latest  versions  of all packages
  required  for  [5XGAP[105X  to  run.  Currently  these packages are [5XGAPDoc[105X, [5Xprimgrp[105X,
  [5XSmallGrp[105X,  and  [5Xtransgrp[105X.  Returns  [9Xfalse[109X  if something went wrong, and [9Xtrue[109X
  otherwise.[133X
  
  [33X[0;0YClearly,  since  these  packages  are  required for [5XGAP[105X to run, they must be
  loaded before this function can be executed. However, this function installs
  the  packages  in  the  [10X~/.gap/pkg[110X directory, so that they can be managed by
  [5XPackageManager[105X  in the future, and are available for other [5XGAP[105X installations
  on the machine.[133X
  
  
  [1X2.2 [33X[0;0YInfo warnings[133X[101X
  
  [1X2.2-1 InfoPackageManager[101X
  
  [33X[1;0Y[29X[2XInfoPackageManager[102X [32X info class[133X
  
  [33X[0;0YInfo  class for the [5XPackageManager[105X package. Set this to the following levels
  for different levels of information:[133X
  
  [30X    [33X[0;6Y0 - No messages[133X
  
  [30X    [33X[0;6Y1  -  Problems  only:  messages  describing  what  went wrong, with no
        messages if an operation is successful[133X
  
  [30X    [33X[0;6Y2 - Directories and versions: also displays informations about package
        versions and installation directories[133X
  
  [30X    [33X[0;6Y3 - Progress: also shows step-by-step progress of operations[133X
  
  [30X    [33X[0;6Y4  -  All: includes extra information such as whether curlInterface is
        being used, and package info validation[133X
  
  [33X[0;0YSet  this  using,  for  example [10XSetInfoLevel(InfoPackageManager, 1)[110X. Default
  value is 3.[133X
  
  
  [1X2.3 [33X[0;0YManual compilation[133X[101X
  
  [1X2.3-1 CompilePackage[101X
  
  [33X[1;0Y[29X[2XCompilePackage[102X( [3Xname[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X[133X
  
  [33X[0;0YAttempts  to  compile  an  installed package. Takes one argument [3Xname[103X, which
  should  be  a  string specifying the name of a package installed in the user
  [5XGAP[105X  root  (for  example,  one  installed using [2XInstallPackage[102X ([14X2.1-1[114X)), see
  [14X'Reference:  GAP Root Directories'[114X. Compilation is done automatically when a
  package  is  installed  or  updated,  so  in  most cases this command is not
  needed. However, it may sometimes be necessary to recompile some packages if
  you update or move your [5XGAP[105X installation.[133X
  
  [33X[0;0YCompilation  is  done  using  the  [10Xetc/BuildPackages.sh[110X  script bundled with
  [5XPackageManager[105X. If the specified package does not have a compiled component,
  this function should have no effect.[133X
  
  [33X[0;0YReturns  [9Xtrue[109X  if  compilation  was  successful  or  if  no  compilation was
  necessary. Returns [9Xfalse[109X otherwise.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XCompilePackage("orb");[127X[104X
    [4X[28X#I  Running compilation script on /home/user/.gap/pkg/orb-4.8.3 ...[128X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
