WSL
本章主要介绍了在 Windows 系统下运行 Linux 系统的方法。
由于截至 2020 年 6 月,大部分系统尚未安装 Windows 10 2020 年 5 月更新(内部版本 19041),本章仅介绍 WSL。
引言
As we all know,现在大部分学校的竞赛练习环境都是构建 XP 等 Windows 系操作系统,但是在 NOI 系列赛中,早已用上了 NOI Linux 这个 Ubuntu 操作系统的阉割版。
虽然 NOI 的官网已经放出了 NOI Linux 的 ISO 镜像,但是如果跑虚拟机的话,配置也相当麻烦,包括激活 VMware,用 VMware 装系统开虚拟机等步骤,且 NOI Linux 默认自带图形界面,无法保证在低配系统上流畅运行。
Windows 10 在一周年更新时推出了 Linux 子系统(WSL),在 2020 年 5 月更新中升级到了 WSL 2。截至 2020 年 6 月 1 日,WSL 已支持安装 Ubuntu、openSUSE Leap、Kali、Debian……等主流 Linux 分发版。但 WSL 并不支持 NOI 评测用的 Arbiter。
适用于 Linux 的 Windows 子系统(英语:Windows Subsystem for Linux,简称 WSL)是一个为在 Windows 10 和 Windows Server 2019 上能够原生运行 Linux 二进制可执行文件(ELF 格式)的兼容层。
WSL 可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生虚拟机开销。
WSL 仅在版本 1607 之后的 64 位版本的 Windows 10 中可用。它也可在 Windows Server 2019 中使用。
WSL 还是 WSL 2
启用 WSL
若要启用到 WSL 2,需要运行 Windows 10。
- 对于 x64 系统:版本 1903 或更高版本,采用 内部版本 18362 或更高版本。
- 对于 ARM64 系统:版本 2004 或更高版本,采用 内部版本 19041 或更高版本。
- 低于 18362 的版本不支持 WSL 2。 使用 Windows Update 助手更新 Windows 版本。
在安装适用于 WSL 的任何 Linux 分发版之前,必须在下述两种方法中选择一种,以确保启用“适用于 Linux 的 Windows 子系统”可选功能:
使用 Powershell
-
以管理员身份打开 PowerShell 并运行:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
-
出现提示时,重启计算机。
使用 GUI
-
打开“控制面板”
-
访问“程序和功能”子菜单“打开或关闭 Windows 功能”
-
选择“适用于 Linux 的 Windows 子系统”
-
点击确定
-
重启
安装与使用 Ubuntu
本章以 Ubuntu 长期更新版为例。
安装
进入 Microsoft Store,搜索“Ubuntu”,然后选择“Ubuntu”,点击“安装”进行安装。也可打开 Ubuntu 的商店页面。
Microsoft Store 中的 Ubuntu 的 LTS 版本是稳定的 Ubuntu 长期支持版,亦可选择安装。
运行 Ubuntu
打开“开始”菜单找到 Ubuntu 并启动,或使用 wsl
命令从 Windows 命令行启动。
初始化
第一次运行 Ubuntu,需要完成初始化。
等待一两分钟时间,系统会提示创建新的用户帐户及其密码,请确保选择一个容易记住的密码。
基础配置
初次安装好的系统不附带任何 C/C++ 编译器,需要手动配置环境。
更换为国内软件源
Ubuntu 默认的软件源在国外。可以换成国内的软件源以加快速度,如 清华 TUNA 的软件源。
请在页面中寻找与自己系统版本相配的源(可使用 sudo lsb_release -a
查看 Ubuntu 版本)。
使用以下命令更新软件和软件源:
sudo -i
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vim /etc/apt/sources.list
# 删除内容可以按【Ctrl + A】
# (按 i 之后将上文的源右键粘贴进去,编辑完后按 Esc,再输入 :wq 和回车)
sudo apt update
sudo apt upgrade -y
安装中文环境
sudo apt install language-pack-zh-han* -y
sudo locale-gen zh_CN.GB18030 && sudo locale-gen zh_CN.UTF-8
sudo apt install fontconfig -y
sudo apt install ttf-mscorefonts-installer -y
# 通过Tab键,同意 EULA
# 下面的再执行一遍以防万一
sudo apt install -y --force-yes --no-install-recommends fonts-wqy-microhei
sudo apt install -y --force-yes --no-install-recommends ttf-wqy-zenhei
sudo dpkg-reconfigure locales
使用 sudo dpkg-reconfigure locales
进入菜单,按空格选择带 zh_CN
的选项(推荐 zh_CN, UTF-8 UTF-8
),选完后回车,
下一个菜单中选择 zh_CN.UTF-8
回车。
之后关闭 Ubuntu 并重启,系统就会变成中文。
再依次输入下列命令,把 man
帮助页替换为中文。[^ref6]
sudo apt install manpages-zh
sudo sed -i 's|/usr/share/man|/usr/share/man/zh_CN|g' /etc/manpath.config
可以用 man help
测试。
安装编译环境
sudo apt install -y build-essential vim ddd gdb fpc emacs gedit anjuta lazarus
以下为一个示例程序:
vim text.cpp
g++ text.cpp -o text
./text
Linux 环境下可执行文件可不带扩展名,实现方式看上方命令。
进阶操作
安装图形环境,并使用远程桌面连接
推荐图形环境用 xfce4,不臃肿。
sudo apt install xfce4 tightvncserver -y
# 或使用
sudo apt install xubuntu-desktop -y
# xubuntu 安装的软件多,基础环境可用第一种
图形环境文件较大,下载解包需要一定时间。
配置 xrdp:
sudo apt install xrdp -y
echo "xfce4-session" >~/.xsession
sudo service xrdp restart
为了防止和计算机本来带的远程桌面冲突,最好换一下端口。
sudo sed 's/port=[0-9]{1,5}/port=qwq/' /etc/xrdp/xrdp.ini
# 其中 `qwq` 为其他端口(如 `3390`)。
sudo nano /etc/xrdp/xrdp.ini
按【Ctrl + X】输入Y,回车(保存退出)。
运行 sudo service xrdp restart
,然后去开始菜单,搜索远程桌面连接,用 localhost: 配置的端口
来访问。
使用你之前注册的用户登录。
完成。
与 Windows 内原硬盘分区交互
硬盘分区作为文件夹在 /mnt/
里存放,因此可以直接交互,如直接编译二进制文件,或者往 Ubuntu 里传文件。