install:install

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
install:install [2019/01/26 12:06] – restructuring. oroehriginstall:install [2023/10/06 07:43] (current) – perlbrew benmuell
Line 1: Line 1:
 ===== Installation from Source Code ===== ===== Installation from Source Code =====
 This page describes how to install polymake from the source code. See the [[:download:start|downloads page]] for other ways of installing polymake. In particular, if you are using Ubuntu or Debian, you might want to consider installing our [[:download:start##debian_fedora_gentoo_ubuntu|debian packages]]. This page describes how to install polymake from the source code. See the [[:download:start|downloads page]] for other ways of installing polymake. In particular, if you are using Ubuntu or Debian, you might want to consider installing our [[:download:start##debian_fedora_gentoo_ubuntu|debian packages]].
 +
 +**Warning:** Unfortunately polymake is **not compatible with perl 5.38.0 or newer**. Since several Linux distributions have switched to the new perl version the polymake package had to be removed from their repositories. If you want to continue using polymake you can try our new [[install:jll|jll-based binaries]] or see below to build polymake from source with a [[install:install#Perlbrew|custom perl]].
  
 Usually, following the description in the [[install#quick_summary|quick summary]] should do the job. Please be aware that the installation procedure described on this page works on UNIX systems with the newest version of polymake. If you have special needs, you might find help in other places: Usually, following the description in the [[install#quick_summary|quick summary]] should do the job. Please be aware that the installation procedure described on this page works on UNIX systems with the newest version of polymake. If you have special needs, you might find help in other places:
  
 === Mac === === Mac ===
-We support some versions of MacOS. Please visit the [[mac|Mac installation page]] for detailed instructions.+We support some versions of MacOS. Please visit the [[.macos:source|Mac installation page]] for detailed instructions.
    
 === Windows === === Windows ===
Line 15: Line 17:
  
 ===== Quick summary ===== ===== Quick summary =====
-Installing polymake from sources can usually be accomplished using the following five steps:+Installing polymake from sources can usually be accomplished using the following six steps:
  
 +  * Make sure to have a supported perl version **older** than 5.38. Otherwise check the section on [[install:install#Perlbrew|perl-brew]].
 +  
   * Download a source tarball from the [[download/start|download page]].   * Download a source tarball from the [[download/start|download page]].
  
Line 48: Line 52:
   * GNU Readline & History library v5.0+   * GNU Readline & History library v5.0+
  
-  * Perl 5.16.0+, with all of the following modules:+  * Perl 5.16.0-5.36.x, with all of the following modules:
     * ''ExtUtils::Embed'', which some distributions ship separately as ''perl-ExtUtils-Embed''     * ''ExtUtils::Embed'', which some distributions ship separately as ''perl-ExtUtils-Embed''
-    * ''XML::LibXML'', ''XML::LibXSLT'', and ''XML::Writer''+    * ''XML::SAX'' 
 +    * ''XML::Writer''
     * ''Term::ReadLine::Gnu''     * ''Term::ReadLine::Gnu''
     * ''Term::ReadKey''     * ''Term::ReadKey''
 +    * ''JSON''
  
   * [[http://gmplib.org/|GMP library]] 5.1.0+ . Some Linux vendors split the GMP in two packages, shared libraries and development stuff.  Please install both. You also need to enable/install the C++ bindings for polymake version 2.11+.   * [[http://gmplib.org/|GMP library]] 5.1.0+ . Some Linux vendors split the GMP in two packages, shared libraries and development stuff.  Please install both. You also need to enable/install the C++ bindings for polymake version 2.11+.
   * [[http://www.mpfr.org/|MPFR library]] 3.0.0+ . Again both shared libraries and development stuff are required.   * [[http://www.mpfr.org/|MPFR library]] 3.0.0+ . Again both shared libraries and development stuff are required.
   * [[http://www.boost.org/|boost]] headers. The basic ''libboost-dev'' should suffice, no shared libraries are required for boost.   * [[http://www.boost.org/|boost]] headers. The basic ''libboost-dev'' should suffice, no shared libraries are required for boost.
 +  * [[http://flintlib.org/|FLINT]] 2.5.2+. (This dependency is strongly recommended but can be disabled if it cannot be fulfilled)
  
 +==== Perlbrew ====
 +
 +If your perl version is 5.38 or newer you need to build a custom perl to use with polymake. The easiest way to do this is to install ''perlbrew'' with your package manager (or from https://perlbrew.pl/).
 +
 +Once you have perlbrew installed you need to initialize it with ''perlbrew init'' and add ''source ~/perl5/perlbrew/etc/bashrc'' to your shell rc file as shown in the output.
 +To build a compatible perl use:
 +<code>
 +perlbrew install perl-5.36.1 --as pmperl -Duseshrplib
 +</code>
 +
 +The above command will take a few minutes, once that is done you can (temporarily) switch the perl version for the current shell with ''perlbrew use pmperl''. This change is active until you close that terminal again.
 +
 +To install the required perl modules for this perl installation run:
 +<code>
 +perlbrew use pmperl
 +perlbrew install-cpanm
 +cpanm Term::ReadLine::Gnu Term::ReadKey XML::SAX XML::Writer JSON SVG
 +</code>
 +
 +In this shell you can now run the configure script for polymake and continue with the installation instructions. Make sure to always switch the perl to ''pmperl'' before running ''polymake''.
  
 ==== Recommended software ==== ==== Recommended software ====
Line 65: Line 92:
   * [[http://www.tcs.hut.fi/Software/bliss/|bliss]] for computing automorphism groups of graphs and checking combinatorial equivalence of polytopes. Strongly recommended for the ''-minimal'' package, see also below.   * [[http://www.tcs.hut.fi/Software/bliss/|bliss]] for computing automorphism groups of graphs and checking combinatorial equivalence of polytopes. Strongly recommended for the ''-minimal'' package, see also below.
   * [[http://bugseng.com/products/ppl/|PPL]] for convex hull computations, in many cases faster than the bundled cdd or lrs code.\\ polymake 3.2 requires ppl version at least 1.2.   * [[http://bugseng.com/products/ppl/|PPL]] for convex hull computations, in many cases faster than the bundled cdd or lrs code.\\ polymake 3.2 requires ppl version at least 1.2.
-  * [[http://www.singular.uni-kl.de/|Singular]] for Groebner basis computations.+  * [[http://www.singular.uni-kl.de/|Singular]] for Groebner basis computations. Check the [[installsingular| installation instructions for Singular]].
  
 === Perl modules === === Perl modules ===
Line 88: Line 115:
     * [[http://cs.anu.edu.au/~bdm/nauty/|nauty]] //source// directory (supported since polymake 3.0r2)     * [[http://cs.anu.edu.au/~bdm/nauty/|nauty]] //source// directory (supported since polymake 3.0r2)
  
-As the [[http://www.math.uni-rostock.de/~rehn/software/permlib.html|PermLib]] and [[http://www.math.uni-rostock.de/~rehn/software/sympol.html|SymPol]] librarys polymake uses are not available in most distributions, they are included even in the minimal tarball.+As the [[http://www.math.uni-rostock.de/~rehn/software/permlib.html|PermLib]] and [[http://www.math.uni-rostock.de/~rehn/software/sympol.html|SymPol]] librarys polymake uses are not available in most distributions, they are included even in the minimal tarball.
  
 ===== Configuration ===== ===== Configuration =====
Line 177: Line 204:
  
 **Note:** If you are installing polymake in your home-directory, i.e. you have set ''%%--prefix%%'', you should omit ''sudo'' in the above commands. **Note:** If you are installing polymake in your home-directory, i.e. you have set ''%%--prefix%%'', you should omit ''sudo'' in the above commands.
- 
-==== Building the documentation ==== 
-Finally, to obtain a copy of the reference documentation in HTML format (gathering everything you can get with interactive ''help'' commands a one place), run 
-  sudo make release-docs 
- 
-This will create all files in the documentation directory chosen during the configuration, again omit sudo for a user-install. By default the documentation will be installed into ''/usr/local/share/polymake/doc'' 
- 
-If you have already used polymake and installed extensions to polymake then to include them for the documentation, run 
-  sudo make docs 
- 
-Should you import or create a new extension later, you can also run the polymake script ''generate_docs'' to complete your documentation. 
  
 ===== Dependency lists for common distros ===== ===== Dependency lists for common distros =====
Line 201: Line 217:
  
 === Installation from Source === === Installation from Source ===
-On most recent Ubuntu versions installing the following packages (and their dependencies) should suffice to build ''polymake'' 3.from source:+On most recent Ubuntu versions installing the following packages (and their dependencies) should suffice to build ''polymake'' 4.from source:
 <code>sudo apt-get install ant ant-optional default-jdk g++ libboost-dev \ <code>sudo apt-get install ant ant-optional default-jdk g++ libboost-dev \
-libgmp-dev libgmpxx4ldbl libmpfr-dev libperl-dev libterm-readline-gnu-perl \ +libflint-dev libgmp-dev libgmpxx4ldbl libmpfr-dev libperl-dev libterm-readline-gnu-perl \ 
-libxml-libxml-perl libxml-libxslt-perl libxml-perl libxml-writer-perl +libxml-perl libxml-writer-perl libterm-readkey-perl libjson-perl ninja-build
-libterm-readkey-perl libxml2-dev xsltproc ninja-build+
 </code> </code>
  
 If you are going to use the [[:polydb|polymake Database]], you'll also need to install If you are going to use the [[:polydb|polymake Database]], you'll also need to install
-<code>libmongodb-perl libjson-perl</code>+<code>libmongodb-perl</code>
  
 The following packages are recommended but not strictly necessary: The following packages are recommended but not strictly necessary:
Line 216: Line 231:
 ==== Fedora ==== ==== Fedora ====
  
-The following should suffice to be able to build polymake from source on Fedora 25+The following should suffice to be able to build polymake from source on Fedora
  
 <code>sudo dnf install ant java-1.8.0-openjdk-devel gcc-c++ boost-devel \ <code>sudo dnf install ant java-1.8.0-openjdk-devel gcc-c++ boost-devel \
-gmp-devel mpfr-devel perl-devel perl-XML-LibXML perl-XML-LibXSLT +flint-devel gmp-devel mpfr-devel perl-devel perl-XML-Writer 
-perl-XML-Writer libxml2-devel perl-ExtUtils-Embed perl-Term-ReadKey \ +perl-ExtUtils-Embed perl-TermReadKey perl-Term-ReadLine-Gnu bliss-devel 
-perl-Term-ReadLine-Gnu bliss-devel ninja-build perl-JSON</code>+ninja-build perl-JSON</code>
  
 You might need to specify the path to your java installation with ''%%--with-java=JAVA_HOME%%''. You might need to specify the path to your java installation with ''%%--with-java=JAVA_HOME%%''.
Line 230: Line 245:
  
 <code> <code>
-sudo pacman -S gcc libxml2 libxslt readline perl libxml-perl perl-xml-libxslt +sudo pacman -S gcc readline perl libxml-perl perl-xml-writer perl-json 
- perl-xml-writer perl-term-readline-gnu perl-term-readkey mpfr gmp boost ninja+perl-term-readline-gnu perl-term-readkey mpfr gmp boost ninja flint
 </code> </code>
  
Line 239: Line 254:
 ==== Scientific Linux ==== ==== Scientific Linux ====
 The following packages together with their dependencies should suffice to build polymake on a minimal install of SL7: The following packages together with their dependencies should suffice to build polymake on a minimal install of SL7:
-<code>lbzip2 perl gcc-c++ perl-XML-Writer perl-XML-LibXML perl-XML-LibXSLT \ +<code>lbzip2 perl gcc-c++ perl-XML-Writer perl-Term-ReadLine-Gnu 
-perl-Term-ReadLine-Gnu perl-Term-ReadKey gmp-devel mpfr-devel boost-devel \ +perl-Term-ReadKey gmp-devel mpfr-devel boost-devel perl-ExtUtils-Embed\ 
-libxml2-devel perl-ExtUtils-Embed</code> +ninja-build 
- +</code>
-There does not seem to be a ninja package for Scientific Linux, you can either fetch a generic binary or built it from source, see [[https://ninja-build.org/|here]] for details.+
  
 For visualization via jreality ''java-1.8.0-openjdk-devel'' and ''and-antlr'' are needed, passing ''%%--with-java=/usr/lib/jvm/java%%'' to configure should help with the java detection. For visualization via jreality ''java-1.8.0-openjdk-devel'' and ''and-antlr'' are needed, passing ''%%--with-java=/usr/lib/jvm/java%%'' to configure should help with the java detection.
  
  
  • install/install.1548504388.txt.gz
  • Last modified: 2019/01/26 12:06
  • by oroehrig