原文链接:https://tover.xyz/p/SageMath-10-1-Installation/

看到SageMath发布了10.1版,但没有了以前即下即用的binary版本,遂记录一下安装过程(Linux版本)。

首先需要下载几个工具

懒人包:如果你是Linux 64bits的话

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
curl -L -O https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-$(uname)-$(uname -m).sh
wget https://mirrors.aliyun.com/sagemath/src/sage-10.0.tar.gz

然后Miniconda3和Mambaforce下载下来的都是个安装脚本,直接运行然后按照引导安装即可

建议先安装Conda,安装完后需要激活一下bashrc,或者重启一下终端也行(其他shell的source换成对应的rc文件)

sh Miniconda3-latest-Linux-x86_64.sh
source ~/.bashrc
conda --version

如无意外应该可以运行conda了,但是终端执行命令会出现个烦人的(base),可以参考这里解决:

echo "conda deactivate" >> ~/.bashrc
source ~/.bashrc

然后安装Mamba

sh Mambaforge-$(uname)-$(uname -m).sh
source ~/.bashrc
mamba --version

解压源码压缩包

tar xf ./sage-10.0.tar.gz
cd ./sage-10.0

在build之前先换一下Conda的源,可以参考这里,比如我换阿里的源,就把~/.condarc改成:

channels:
  - defaults
show_channel_urls: true
default_channels:
  - http://mirrors.aliyun.com/anaconda/pkgs/main
  - http://mirrors.aliyun.com/anaconda/pkgs/r
  - http://mirrors.aliyun.com/anaconda/pkgs/msys2
custom_channels:
  conda-forge: http://mirrors.aliyun.com/anaconda/cloud
  msys2: http://mirrors.aliyun.com/anaconda/cloud
  bioconda: http://mirrors.aliyun.com/anaconda/cloud
  menpo: http://mirrors.aliyun.com/anaconda/cloud
  pytorch: http://mirrors.aliyun.com/anaconda/cloud
  simpleitk: http://mirrors.aliyun.com/anaconda/cloud

最后就是按照官网最下面的教程一顿操作了,build的时候需要在sage-10.0目录下执行:

export SAGE_NUM_THREADS=16
./bootstrap-conda
mamba env create --file src/environment-dev.yml --name sage-dev
mamba activate sage-dev
./bootstrap
./configure --with-python=$CONDA_PREFIX/bin/python             \
              --prefix=$CONDA_PREFIX                             \
              $(for pkg in $(./sage -package list :standard:     \
                               --exclude rpy2                    \
                               --has-file spkg-configure.m4      \
                               --has-file distros/conda.txt); do \
                    echo --with-system-[imath:0]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())'

mamba deactivate

PS:SAGE_NUM_THREADS可以根据自己电脑的线程数设置。然后最好分开执行,方便观察报错(虽然我这好像没报错

PPS:建议安装时使用“好”一点的网络(你懂的)

然后每次运行的时候都需要先mamba activate一下,执行完要mamba deactivate

mamba activate sage-dev
# run sage ... ...
mamba deactivate

其实有点麻烦,

如果想一键启动的话可以把以下脚本放到PATH的某个目录中,如果你电脑原本没sage的话甚至可以命名为sage,或者想区分版本的话命名sage10之类的,然后下面的bash需要换成你自己的shell

#!/usr/bin/env bash
source ~/mambaforge/etc/profile.d/conda.sh
source ~/mambaforge/etc/profile.d/mamba.sh
mamba activate sage-dev
sage [/imath:0]*
mamba deactivate

PS:那两行source主要用于解决mamba无法在shell脚本中运行的问题,参考这里
PPS:如果代码里面显示[/imath:0]的话,请把它换成英文的¥,不知道论坛的转义问题修了没

然后运行的时候执行sage ...sage10 ...就好了,就是相比于之前的binary版本会多了conda/mamba的启动时间,建议需要多次执行脚本时还是用activate/deactivate的方式。

© 2018-2025 0xFFFF