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

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

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

相关推荐
skywalk816316 分钟前
unbound dns解析出现问题,寻求解决之道
运维·服务器·dns·unbound
酉鬼女又兒17 分钟前
零基础入门Linux指南:每天一个Linux命令_pwd
linux·运维·服务器
云飞云共享云桌面20 分钟前
高性能图形工作站的资源如何共享给10个SolidWorks研发设计用
linux·运维·服务器·前端·网络·数据库·人工智能
skywalk816321 分钟前
走近科学:unbound dns域名服务器自己本地解析出现问题,寻求解决之道
运维·服务器·dns·unbound
choke23322 分钟前
Python 基础语法精讲:数据类型、运算符与输入输出
java·linux·服务器
AZ996ZA36 分钟前
自学linux的第二十一天【DHCP 服务从入门到实战】
linux·运维·服务器·php
Web极客码43 分钟前
WordPress博客关键词
服务器·wordpress·网站加速
神梦流2 小时前
GE 引擎的非标准数据流处理:稀疏张量与自定义算子在图优化中的语义保持
linux·运维·服务器
郝学胜-神的一滴3 小时前
深入浅出:使用Linux系统函数构建高性能TCP服务器
linux·服务器·开发语言·网络·c++·tcp/ip·程序人生
Doro再努力3 小时前
【Linux操作系统12】Git版本控制与GDB调试:从入门到实践
linux·运维·服务器·git·vim