Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
install:install [2019/06/18 09:11] – [Fedora] typo fixed oroehrig | install: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 [[: | This page describes how to install polymake from the source code. See the [[: | ||
+ | |||
+ | **Warning: | ||
Usually, following the description in the [[install# | Usually, following the description in the [[install# | ||
=== 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: |
=== Windows === | === Windows === | ||
Line 15: | Line 17: | ||
===== Quick summary ===== | ===== Quick summary ===== | ||
- | Installing polymake from sources can usually be accomplished using the following | + | Installing polymake from sources can usually be accomplished using the following |
+ | * Make sure to have a supported perl version **older** than 5.38. Otherwise check the section on [[install: | ||
+ | | ||
* Download a source tarball from the [[download/ | * Download a source tarball from the [[download/ | ||
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: |
* '' | * '' | ||
- | * '' | + | * '' |
+ | * '' | ||
* '' | * '' | ||
* '' | * '' | ||
+ | * '' | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
+ | * [[http:// | ||
+ | ==== 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 '' | ||
+ | |||
+ | Once you have perlbrew installed you need to initialize it with '' | ||
+ | To build a compatible perl use: | ||
+ | < | ||
+ | perlbrew install perl-5.36.1 --as pmperl -Duseshrplib | ||
+ | </ | ||
+ | |||
+ | The above command will take a few minutes, once that is done you can (temporarily) switch the perl version for the current shell with '' | ||
+ | |||
+ | To install the required perl modules for this perl installation run: | ||
+ | < | ||
+ | perlbrew use pmperl | ||
+ | perlbrew install-cpanm | ||
+ | cpanm Term:: | ||
+ | </ | ||
+ | |||
+ | 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 '' | ||
==== Recommended software ==== | ==== Recommended software ==== | ||
Line 177: | Line 204: | ||
**Note:** If you are installing polymake in your home-directory, | **Note:** If you are installing polymake in your home-directory, | ||
- | |||
- | ==== Building the documentation ==== | ||
- | Finally, to obtain a copy of the reference documentation in HTML format (gathering everything you can get with interactive '' | ||
- | sudo make release-docs | ||
- | |||
- | This will create all files in the documentation directory chosen during the configuration, | ||
- | |||
- | If you have already used polymake and installed extensions to polymake then to include them for the documentation, | ||
- | sudo make docs | ||
- | |||
- | Should you import or create a new extension later, you can also run the polymake script '' | ||
===== 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 '' | + | On most recent Ubuntu versions installing the following packages (and their dependencies) should suffice to build '' |
< | < | ||
- | libgmp-dev libgmpxx4ldbl libmpfr-dev libperl-dev libterm-readline-gnu-perl \ | + | libflint-dev |
- | libxml-libxml-perl libxml-libxslt-perl | + | libxml-perl libxml-writer-perl libterm-readkey-perl libjson-perl ninja-build |
- | libterm-readkey-perl | + | |
</ | </ | ||
Line 216: | Line 231: | ||
==== Fedora ==== | ==== Fedora ==== | ||
- | The following should suffice to be able to build polymake from source on Fedora | + | The following should suffice to be able to build polymake from source on Fedora |
< | < | ||
- | gmp-devel mpfr-devel perl-devel perl-XML-LibXML perl-XML-LibXSLT | + | flint-devel |
- | perl-XML-Writer libxml2-devel | + | perl-ExtUtils-Embed perl-TermReadKey perl-Term-ReadLine-Gnu bliss-devel |
- | perl-Term-ReadLine-Gnu bliss-devel ninja-build perl-JSON</ | + | ninja-build perl-JSON</ |
You might need to specify the path to your java installation with '' | You might need to specify the path to your java installation with '' | ||
Line 230: | Line 245: | ||
< | < | ||
- | sudo pacman -S gcc libxml2 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 flint |
</ | </ | ||
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: | ||
- | < | + | < |
- | 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</ | + | 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 '' | For visualization via jreality '' | ||