SageMath10.x最新版安装指引
前言
由于懒人安装在windows11
上面,最高只能获取到Sagemath9.3
的版本,在wsl2+ubuntu22.04
上面最新的也才sagemath9.5
好像,不会升级,有些exp
跑不了,遂安装了Sagemath10.x
版本
在网上找了一圈,发现都没有教程是使用WSL2+ubuntu22.04+sagemath10.x
的,很多都是在Arch Linux
里面装的
特此,安装好了,可以运行了,写下了这篇博客
闲来无事,去敲打了一下Kimi
SageMath 10.x 版本推荐使用 Arch Linux 的原因主要有以下几点: |
我的评价是,Arch Linux
能用最新版!
本来是想参考师兄的,发现还是做不到啊,死在了conda
上,原因未知
安装wsl2+Arch Linux
wsl2
的安装的话,参考网上的教程,一大堆
然后,在微软商城下载Arch WSL
,打开之后就是用户名密码的配置
非默认系统的情况下,wsl -d Arch
进入Arch Linux
wsl --list
可以看到当前有什么适用于 Linux 的 Windows 子系统分发
设为默认子系统,可以将Arch
换成别的,比如Ubuntu-22.04
wsl --set-default Arch
配置pacman
(很强大的包管理器)
配置pacman镜像源,也就是换源(因为自身的源太慢了,或者因为是国外的,用不了,得换成国内的镜像源,比如阿里源、清华源等)
sudo su
进入root
模式
vim /etc/pacman.d/mirrorlist
在顶部增加
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch |
更新系统,输入pacman -Syu
,不知道梯子有没有影响(有时候开梯子很慢),看情况是否把梯子关闭吧
配置pacman key
,输入以下命令
pacman-key --init |
更新系统pacman -Syu
,为什么这里又更新呢,因为这一步是必须的,上一步如果配置pacman key
出现网络问题,更新系统就能解决,如果没有就不用更新系统了
如果源用不了(换了源之后的情况),比如Could not resolve host
,可能是DNS
出了点问题(?),经验告诉我是这样的,vim /etc/resolv.conf
,增加nameserver 8.8.8.8
,这个是谷歌的DNS
服务器,也可以再加多一个nameserver 114.114.114.114
,可以把原来的那个本地的删了,应该没有什么问题()
出现了个问题,在Arch Linux
里面配置禁止重启自动更新的话是有问题的(同样的操作在ubuntu是没有任何问题的),表现为/etc/resolv.conf
文件不存在。。。所以在Arch Linux
里面就不要配置这个了,有问题再加谷歌的DNS
服务器
配置archlinuxcn
镜像源,vim /etc/pacman.conf
,增加以下内容
[archlinuxcn] |
安装archlinuxcn
的key
,pacman -Sy archlinuxcn-keyring
这两个key
吧,我也不知道有没有配置成功,输入命令之后好像没反应,总感觉没有成功一样的(?)
继续安装后面的sage
,完成之后既然没有出现问题,那就不管它了
安装sage
sudo pacman -Sy sagemath
请耐心耐心耐心等待,好几个G呢
运行sage
,看看是否安装成功
可以看到都是最新版,这下好玩了
如果需要管理sage
,它的文件路径是Arch\usr\lib\python3.12\site-packages\sage
安装JupyterLab(推荐)
sudo pacman -S jupyterlab
在JupyterLab中启动Sage
sage -n jupyterlab --allow-root
按道理来说不指定浏览器,你点击它之后会自动跳到默认浏览器的,但是我这里跳到了Edge
浏览器,不是我默认的火狐浏览器
也懒得改了,直接浏览器输入http://localhost:8888/lab
通常我们是不记指令的,那么我们来搞一个bash
脚本快速启动,其实就是把这条指令丢进去
在工作目录下,比如我的/mnt/d/desktop
sudo su |
保存退出之后
# 赋予执行权限 |
所以,平时我们需要使用sagemath
的时候,在我们的工作目录下面./sage.sh
即可启动
导入一些库
# sudo pacman -S python-<package_name> [python-<package_name>] |
后续还有python
其他的库需要安装,可以参考上面的格式python-xxxx
,也可以去整个pip
,目前来说这些是够了的(只打ctf crypto方向,应该够),好像它内置就挺多了的
最舒服的就是,你在windows
下面下载的pwntools
,可能过了一阵子,等你又安装了别的什么什么东西,可能是一些依赖项冲突了,会导致你from pwn import *
无法使用
所以我的解决方案是在Linux
里面下载pwntools
(环境隔绝),在Linux
里面执行python
脚本就好了,就像这里Arch Linux
的pwntools
就不会起冲突,可以正常使用
有的萌新可能第一次接触crypto
方向的容器题,可能有点难上手,现提供一个板板
密码学方向环境题(通俗一点来说,就是打远程)的交互脚本模板如下
from pwn import * |
需要注意的是接收和发送的数据类型都是字节数据,比如b'hello'
安装flatter(可以加速格基规约)
sudo pacman -S gmp mpfr eigen base-devel gcc git cmake |
flatter -h
查看是否能正常使用
代码补全功能
路径:Setting->Setting Editer->Code Completion
感觉函数解释是不需要的,有点碍眼睛
测试发现可运行
参考
https://shinichicun.top/posts/arch下的sage安装/
https://zhuanlan.zhihu.com/p/633782050