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

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

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

相关推荐
凡人叶枫14 分钟前
Effective C++ 条款28:避免使用 handles 指向对象内部
linux·服务器·开发语言·c++·嵌入式开发
风味蘑菇干2 小时前
WTomcat服务器
java·服务器
liulilittle2 小时前
Linux Swap 文件配置与持久化(虚拟内存)
linux·运维·服务器
荒--3 小时前
MSF 使用
linux·运维·服务器
狮子再回头3 小时前
relhat9.1 sshd配置
linux·服务器·网络
不爱编程的小陈4 小时前
深入解析 Go 网络 I/O 的底层引擎:从 epoll 到 netpoll
服务器·网络·golang
烁3474 小时前
liunx命令不完整版
linux·运维·服务器
vsropy4 小时前
cmake版本不对不能直接删/无法source
linux·运维·服务器
火山上的企鹅5 小时前
Codex实战:APP远程升级服务搭建(四)Node 服务端自动识别 APK 信息
android·服务器·git·github·qgc
IT WorryFree5 小时前
ESXi 全维度监控方式完整分类(按使用场景排序)
运维·服务器·网络