sage_conf: Configuration module for the SageMath library (distributable version)
Description
This distribution package provides:
-
a single Python module, sage_conf
, providing configuration information
to the SageMath library at the time of its installation and at its runtime
-
a console script sage-config
, for querying the variables of sage_conf
from the shell
-
a sourcable shell script sage-env-config
, providing additional configuration
information in the form of environment variables
The sage_conf
distribution package is polymorphic: It has several implementations.
sage_conf sdist on PyPI
This implementation of the sage_conf
distribution package comes from
https://github.com/sagemath/sage/issues/29039, which added the directory
pkgs/sage-conf_pypi <https://github.com/sagemath/sage/tree/develop/pkgs/sage-conf_pypi/>
_.
To install, use pip install -v sage_conf
. Using -v
ensures that diagnostic
messages are displayed.
On installation (or building a wheel), it invokes sage_bootstrap
to establish
a build tree (SAGE_ROOT
) and installation tree (SAGE_LOCAL
) for
the SageMath distribution. By default, it uses a subdirectory of $HOME/.sage
that is specific to the version of the distribution and the version of Python in
use. If several virtual environments over the same version of Python install
sage_conf
, they will share these trees.
After installation of sage_conf
, a wheelhouse containing wheels of
various libraries is available; type ls $(sage-config SAGE_SPKG_WHEELS)
to list them and pip install $(sage-config SAGE_SPKG_WHEELS)/*.whl
to install them. After this, you can install the Sage
library, for example, using pip install sagemath-standard
.
sage_conf wheels
Prebuilt binary wheels of the sage_conf
distribution package are available
at https://github.com/sagemath/sage-wheels/releases/
This implementation of sage_conf
comes from https://github.com/sagemath/sage/issues/31396,
which adds the directory pkgs/sage-conf_relocatable/
.
On building a wheel, it invokes sage_bootstrap
to establish a
build and installation tree (SAGE_ROOT
, SAGE_LOCAL
) in a
subdirectory of the directory /var/tmp/
, whose name is specific to
the version of the distribution and the version of Python in use.
The wheel distributes a copy of the prebuilt SAGE_ROOT
and
SAGE_LOCAL
. Importing sage_conf
(or using the installed
sage-config
script), makes sure that a symlink from the
/var/tmp
location to the actual persistent installation location
is created. As the relocated libraries and programs contain the
hardcoded path SAGE_LOCAL
in various ways (including as rpaths),
this symlink is necessary for the prebuilt libraries and programs to
work.
/var/tmp
is a sticky directory on all Linux distributions
following the Filesystem Hierarchy Standard, as well as on macOS.
On multi-user systems, only one user can use a given
version of the distribution; other installation schemes are recommended
for systems with multiple Sage users.
sage_conf in the SageMath distribution
The original version of the distribution package sage_conf
is used
internally in the SageMath distribution. It is provided in the directory
pkgs/sage-conf <https://github.com/sagemath/sage/tree/develop/pkgs/sage-conf/>
_.
This version of the package is generated by the Sage distribution's ./configure
script.
sage_conf for conda
The version of the distribution package in the directory
pkgs/sage-conf_conda <https://github.com/sagemath/sage/tree/develop/pkgs/sage-conf_conda/>
_
may be used in an installation method of SageMath, where all packages
are provided by conda. This method is described in
https://doc.sagemath.org/html/en/installation/conda.html#using-conda-to-provide-all-dependencies-for-the-sage-library-experimental
sage_conf in downstream distributions
Downstream packagers and advanced developers and users may want to provide
their own implementation of the distribution package to support the intended
deployment of the SageMath library.
License
GNU General Public License (GPL) v3 or later
Upstream Contact
https://www.sagemath.org
This package is included in the source code of the Sage distribution,
in pkgs/sage-conf* <https://github.com/sagemath/sage/tree/develop/pkgs/>
_.