Windows11安装wsl2以及sagemath

本文章主要介绍如何使用wsl2安装sagemath,实际安装的过程中出现一些问题,将基于遇到的问题来补充对应的解决方式。

https://learn.microsoft.com/zh-cn/windows/wsl/install
https://zhuanlan.zhihu.com/p/633782050
https://www.cnblogs.com/ZimaBlue/p/18012277

安装wsl2

必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11 才能使用以下命令。

在管理员模式下打开 PowerShell 或 Windows 命令提示符,方法是右键单击并选择“以管理员身份运行”,输入 wsl --install 命令,然后重启计算机。

1
wsl --install

默认安装的是Ubuntu

需要注意:关键一步是在控制面板-启用或关闭windows功能中勾选适用于Linux的windows子系统

检查正在运行的wsl版本

可列出已安装的 Linux 发行版,并通过在 PowerShell 或 Windows 命令提示符中输入以下命令来检查每个发行版的 WSL 版本:wsl -l -v

查看所安装的 Linux 版本,使用命令: wsl --list

如有需要,使用下面命令将ArchLinux设为默认系统:

1
2
3
wsl --set-default Arch
# 如未修改未默认系统,则使用以下命令
wsl -d Arch

配置pacman

配置pacman镜像源,改为国内的。

1
vim /etc/pacman.d/mirrorlist

后增加以下内容:

1
2
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch

输入下面命令,配置pacman key:

ATTENTION!
此处配置不当会在后续更新系统中,验签出现问题。

参考资料:https://github.com/yuk7/ArchWSL/issues/317

1
2
killall gpg-agent
rm -rf /etc/pacman.d/gnupg/
1
2
3
pacman-key --init
pacman-key --populate archlinux
pacman -Sy archlinux-keyring

更新系统:(非常关键,不更新后续安装 jupyter notebook 会出错)

1
pacman -Syu

配置archlinuxcn镜像源:

1
vim /etc/pacman.conf

增加以下内容:

1
2
3
[archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch

安装archlinuxcn的key:

1
pacman -Sy archlinuxcn-keyring

配置用户

添加用户名以及对应密码即可。

安装sage

使用命令

1
sudo pacman -Sy sagemath

安装即可。
安装完成后,可以使用命令

1
sage

来启动 sage 查看是否安装成功。查看完后使用 exit 退出即可。

安装 JupyterLab

使用命令

1
sudo pacman -S jupyterlab (或者改为 jupyter notebook)

安装即可

在 JupyterLab 中 启动 Sage

在 ArchLinux 中使用命令

1
sage -n jupyterlab --no-browser --allow-root

此时可以使用跳转出来的窗口里面包含的token

使用vscode + jupyter notebook server的形式,从而实现sagemath10的服务器调用。

退出时使用 ctrl+c 即可。

sage中安装第三方库

虽然不知道原理,但是主要使用以下命令进行安装第三方库:

1
2
3
pacman -S python-pycryptdome
pacman -S python-gmpy2
pacman -S netcat(然后默认安装即可)

这样就能把常用的第三方库先安装到sagemath 10

其他有需要再说吧哈哈。

-------------THE END-------------