原文链接: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-[imath:0](uname)-[/imath:0](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-[imath:0](uname)-[/imath:0](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=[imath:0]CONDA_PREFIX/bin/python \
--prefix=[/imath:0]CONDA_PREFIX \
[imath:0](for pkg in [/imath:0](./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的方式。