sage10.8源码部署

一直在用sage9.3写题,这两次比赛发现9.3貌似不够用,sage源码已经到10.x的版本了,没找到教程,只能看着官方文档一步一步来,记录一下

我是部署到Ubuntu里的,Ubuntu的相关教程可以在博客上搜索一下,蛮多的

如果有师傅遇到Ubuntu剪切板问题的话,可以看下面的命令

sudo apt-get autoremove open-vm-tools #卸载旧版本的open-vm-tools

sudo apt-get update #更新软件源

sudo apt-get install open-vm-tools #安装 open-vm-tools

sudo apt-get install open-vm-tools-desktop #桌面组件

命令运行安装完成之后,需要重启Ubuntu虚拟机,然后就更改好了

我部署的是sage10.8版本的,Ubuntu系统版本是24.04.3

为了防止兼容问题出现,我是弄了一个新的Ubuntu系统,单独部署sage

首先,安装依赖项,即构建 SageMath 所需的 Ubuntu 软件包:只需打开终端并输入一行命令即可

命令如下(一次性复制完):

sudo apt install automake bc binutils bzip2 ca-certificates cliquer cmake curl ecl eclib-tools fflas-ffpack flintqs g++ gengetopt gfan gfortran git glpk-utils gmp-ecm lcalc libatomic-ops-dev libboost-dev libbraiding-dev libbz2-dev libcdd-dev libcdd-tools libcliquer-dev libcurl4-openssl-dev libec-dev libecm-dev libffi-dev libflint-dev libfreetype-dev libgc-dev libgd-dev libgf2x-dev libgiac-dev libgivaro-dev libglpk-dev libgmp-dev libgsl-dev libhomfly-dev libiml-dev liblfunction-dev liblrcalc-dev liblzma-dev libm4rie-dev libmpc-dev libmpfi-dev libmpfr-dev libncurses-dev libntl-dev libopenblas-dev libpari-dev libpcre3-dev libplanarity-dev libppl-dev libprimesieve-dev libpython3-dev libqhull-dev libreadline-dev librw-dev libsingular4-dev libsqlite3-dev libssl-dev libsuitesparse-dev libsymmetrica2-dev zlib1g-dev libzmq3-dev libzn-poly-dev m4 make nauty openssl palp pari-doc pari-elldata pari-galdata pari-galpol pari-gp2c pari-seadata patch perl pkg-config planarity ppl-dev python3-setuptools python3-venv r-base-dev r-cran-lattice singular sqlite3 sympow tachyon tar tox xcas xz-utils

为了在使用 SageMath 时获得更多功能(例如将 Jupyter notebook 导出为 pdf),可以安装一些额外的 Ubuntu 软件包,看个人意愿,不安装也不会影响使用

命令如下:

sudo apt install texlive-latex-extra texlive-xetex latexmk pandoc dvipng

然后可以下载 SageMath 10.8 源代码,并通过输入以下命令启动构建(从主目录或希望安装 SageMath 的目录)

命令如下:

复制代码
git clone --branch master https://github.com/sagemath/sage.git   #从github克隆

如果github克隆失败的话可以多试两次,再不行的话就换成国内的镜像源进行,我这里是直接github一次性克隆成功的,国内镜像源地址我就不贴了,有需要的师傅自行查找

cd sage  #进入sage目录

#配置构建系统
make configure 
./configure  

MAKE="make -j8" make #开始编译

最后一条命令会在 8 个线程上并行启动构建(由 指定-j8);根据自己的 CPU 进行调整,通常可以选择 CPU 核心数的两倍作为线程

我这里是四个cpu核心,所以用-j8,同理,如果是3个就用-j6,两个就-j4,只要注意不超过-j12就可以了

如果编译过程中因为内存不足失败的话,可以扩容一下,适当减少线程数,改成4线程(-j4)或者2线程(-j2)

我编译的时候用了两个多小时,中间因为内存不足又扩容了一次,扩到了80g(内存容量根据个人,至少60g),后来转-j6线程了,swap我设置的是12g,编译好的话就是下面的界面

只要出现这个Sage build/upgrade complete!的提示就代表成功了

下一步创建符号链接,确保sage命令全局可用

先导航到你的sage目录下

复制代码
cd ~/sage

创建符号链接(需要sudo权限)

复制代码
sudo ln -sf $(pwd)/sage /usr/local/bin/sage

验证连接

复制代码
ls -l /usr/local/bin/sage

和图片中的反馈一样就证明是连接成功了,文件名不同的自行修改

再测试一下sage命令是否全局可用

复制代码
cd ~  # 回到家目录
sage --version #应该显示版本信息
sage -c "print(2+2)"  # 简单计算测试

这就算是部署成功了

启动 Jupyter命令如下(会自动打开浏览器)

复制代码
sage -n

如果浏览器没有自动打开的,查看输出信息,查找URL

复制代码
http://localhost:8888/?token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

复制URL到浏览器打开即可

内置的就正常使用就行了,使用方法我这里不再过多赘述

也可以选择启动JupyterLab,功能和Jupyter Notebook是一样的,只是界面更现代化一点

复制代码
启动 JupyterLab命令如下
sage -n jupyterlab

sage源码部署完成了,前前后后大概也就三个小时多一点,原本以为会很麻烦,上手才发现蛮简单的

sage部署常见问题解决

1.sage -n报错:

复制代码
# 尝试指定浏览器
sage -n --browser=firefox  # 或 chrome
# 或
sage -n --no-browser
# 然后手动打开浏览器访问显示的URL

2.找不到内核:

复制代码
# 重新注册内核
./sage -i jupyter
# 然后重试

3.端口被占用:

复制代码
# 使用不同端口
sage -n --port=8889

如果有师傅部署过程中遇到别的问题可以在评论区留言讨论或者私信我,我看到会回复

如果文中有误,也欢迎各位师傅进行指正

相关推荐
KingRumn2 小时前
DBUS源码剖析之DBusMessage数据结构
linux·服务器·数据结构
OpenMiniServer2 小时前
JsonKV协议技术文档
linux·服务器·网络
小鹏linux2 小时前
【linux】进程与服务管理命令 - chkconfig
linux·运维·服务器
莓有烦恼吖3 小时前
基于AI图像识别与智能推荐的校园食堂评价系统研究 05-审核机制模块
java·服务器·python
给勒布朗上上对抗呀3 小时前
反序列化之字符串逃逸-0CTF2016-piapiapia
ctf
闻道且行之4 小时前
Linux|CUDA与cuDNN下载安装全指南:默认/指定路径双方案+多CUDA环境一键切换
linux·运维·服务器
Ahtacca4 小时前
Linux环境下前后端分离项目(Spring Boot + Vue)手动部署全流程指南
linux·运维·服务器·vue.js·spring boot·笔记
_w_z_j_4 小时前
Linux----Socket编程基础
linux·运维·服务器
福来阁86号技师5 小时前
2025年第二届Solar应急响应挑战赛
ctf·应急响应