Differences between revisions 1 and 33 (spanning 32 versions)
Revision 1 as of 2017-03-26 18:49:21
Size: 1511
Editor: saraedum
Comment: initial version
Revision 33 as of 2022-04-25 21:52:34
Size: 3673
Editor: mkoeppe
Comment: replace some info with a link to https://trac.sagemath.org/wiki/Distribution
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
Experimental [[https://conda.io/docs/|Conda]] packages for Linux & OSX are available through [[https://conda-forge.github.io/|conda-forge]]. {{https://conda.io/docs/_images/conda_logo.svg||width=400px}}

[[https://conda.io/docs/|Conda]] packages for Linux & macOS are available through [[https://conda-forge.github.io/|conda-forge]].
Line 5: Line 7:
In short: Install `sage` from conda-forge. In short: Install `sage` from [[https://conda-forge.org|conda-forge]].
Line 7: Line 9:
To install sage on your machine (without the need for root permissions):  * Download and install [[https://github.com/conda-forge/miniforge/#mambaforge|Mambaforge]].
   i.e., open a Terminal,
     `curl -L -O https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-\$(uname)-\$(uname -m).sh`
Line 9: Line 13:
 * Install [[https://conda.io/miniconda.html|Miniconda for Python 3]] (Python 2 version fails to copy "Hängematte" which comes with rw)
 * export your `PATH` (and `hash -r` or `rehash`)
 * Make sure your locale is UTF-8.
 * Add the `conda-forge` channel: `conda config --add channels conda-forge`
 * Update all packages: `conda update --all` (otherwise you get weird errors due to inconsistencies later)
 * create an environment for sage: `conda create -n sage sagelib future`
 * enter your environment: `source activate sage`
 * enjoy: `sage`
     `sh Mambaforge-\$(uname)-\$(uname -m).sh`
 * Create a "sage" environment and pick a version of SageMath, i.e., open a new terminal and `mamba create -n sage sage=9.3`
 * To run SageMath, activate the environment you just created and run SageMath, i.e., `source activate sage` and `sage`
Line 18: Line 17:
= Development = The above instructions are being added to the Sage documentation in https://trac.sagemath.org/ticket/33655
Line 20: Line 19:
The packages necessary to run sage are developed on the github pages of conda-forge. The actual [[https://github.com/conda-forge/sage-feedstock/tree/master/recipe|sage package]] and many of its dependencies are maintained by Isuru Fernando (and a few volunteers). = Conda for Sage Developers =
Line 22: Line 21:
= Open Issues = You can develop Sage without building any of its dependencies (experimental) --- on my machine this takes 5 minutes. Assume you obtained Sage source tree and changed to its root. These instructions have been updated for [[https://trac.sagemath.org/ticket/30845|#30845]] and are being added to the Sage installation guide in [[https://trac.sagemath.org/ticket/33426|#33426]]
Line 24: Line 23:
== General ==
There are still some issues with Conda. Not all tests pass and some things don't work:
 * #20382
 * …
{{{
$ export SAGE_NUM_THREADS=24 # or whatever the meaningful value
                                                         # for your machine is - no more than
                                                         # the number of cores.
Line 29: Line 28:
== MacOS ==
Packages do not exist yet. We are waiting for #12426 to get merged.
$ conda install mamba # This is a recommended optional step.
                                                         # If you skip it, replace "mamba" by
                                                         # "conda" in the following steps.
Line 32: Line 32:
== Windows ==
There is likely not going to be a working package in the near future, see https://groups.google.com/d/msg/sage-devel/wyaV8x5qolI/jVS4DKBvCAAJ.
$ mamba create -n sage-build python=3.9 \
      gettext autoconf automake libtool pkg-config # or replace 3.9 by another version

$ conda activate sage-build

$ ./bootstrap # this generates src/environment.yml
                                                         # used in the next step

$ mamba env update -n sage-build -f src/environment.yml # alternatively, use
                                                         # src/environment-optional.yml
                                                         # for some additional packages
$ conda activate sage-build

$ ./configure --with-python=$CONDA_PREFIX/bin/python \
              --prefix=$CONDA_PREFIX \
              $(for pkg in $(./sage -package list :standard: \
                               --has-file spkg-configure.m4 \
                               --has-file distros/conda.txt); do \
                    echo --with-system-$pkg=force; \
                done)

$ pip install --no-build-isolation -v -v --editable pkgs/sage-conf pkgs/sage-setup

$ pip install --no-build-isolation -v -v --editable src

$ sage -c 'print(version())'
SageMath version 9.6.beta5, Release Date: 2022-03-12
}}}

By using `pip install --editable`, the Sage library is installed in editable mode.
This means that when you only edit Python files, there is no need to rebuild the library;
it suffices to restart Sage.

After editing any Cython files, rebuild by repeating the command
{{{
$ pip install --no-build-isolation -v -v --editable src
}}}

= More information =

see https://trac.sagemath.org/wiki/Distribution#CondaAnacondaMinicondaCondaForge

https://conda.io/docs/_images/conda_logo.svg

Conda packages for Linux & macOS are available through conda-forge.

Setting Up

In short: Install sage from conda-forge.

  • Download and install Mambaforge.

    • i.e., open a Terminal,
      • curl -L -O https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-\$(uname)-\$(uname -m).sh

        sh Mambaforge-\$(uname)-\$(uname -m).sh

  • Create a "sage" environment and pick a version of SageMath, i.e., open a new terminal and mamba create -n sage sage=9.3

  • To run SageMath, activate the environment you just created and run SageMath, i.e., source activate sage and sage

The above instructions are being added to the Sage documentation in https://trac.sagemath.org/ticket/33655

Conda for Sage Developers

You can develop Sage without building any of its dependencies (experimental) --- on my machine this takes 5 minutes. Assume you obtained Sage source tree and changed to its root. These instructions have been updated for #30845 and are being added to the Sage installation guide in #33426

$ export SAGE_NUM_THREADS=24                             # or whatever the meaningful value
                                                         # for your machine is - no more than 
                                                         # the number of cores.

$ conda install mamba                                    # This is a recommended optional step.
                                                         # If you skip it, replace "mamba" by
                                                         # "conda" in the following steps.

$ mamba create -n sage-build python=3.9 \
      gettext autoconf automake libtool pkg-config       # or replace 3.9 by another version

$ conda activate sage-build

$ ./bootstrap                                            # this generates src/environment.yml
                                                         # used in the next step

$ mamba env update -n sage-build -f src/environment.yml  # alternatively, use 
                                                         # src/environment-optional.yml 
                                                         # for some additional packages
$ conda activate sage-build

$ ./configure --with-python=$CONDA_PREFIX/bin/python             \
              --prefix=$CONDA_PREFIX                             \
              $(for pkg in $(./sage -package list :standard:     \
                               --has-file spkg-configure.m4      \
                               --has-file distros/conda.txt); do \
                    echo --with-system-$pkg=force;               \
                done)

$ pip install --no-build-isolation -v -v --editable pkgs/sage-conf pkgs/sage-setup 

$ pip install --no-build-isolation -v -v --editable src

$ sage -c 'print(version())'
SageMath version 9.6.beta5, Release Date: 2022-03-12

By using pip install --editable, the Sage library is installed in editable mode. This means that when you only edit Python files, there is no need to rebuild the library; it suffices to restart Sage.

After editing any Cython files, rebuild by repeating the command

$ pip install --no-build-isolation -v -v --editable src

More information

see https://trac.sagemath.org/wiki/Distribution#CondaAnacondaMinicondaCondaForge

Conda (last edited 2022-04-25 21:52:34 by mkoeppe)