WSL2 Ubuntu 22.04 开发环境配置指南

在上一期文章中,我们已经完成了 WSL(Windows Subsystem for Linux)的安装以及 Ubuntu 22.04 操作系统的安装。本期将继续深入,对刚安装好的 Ubuntu 环境进行一系列基础配置,包括新建用户、设置默认登录用户、修改主机名、查看安装位置、切换镜像源、资源配置以及 pyenv 安装等,帮助你将 WSL 环境打造为一个高效、安全的开发工作区。


一、新建用户并配置权限

默认安装完成后,系统只有一个 root 用户,直接使用 root 账户进行操作存在安全风险。建议创建一个普通用户,并将其加入 sudo 组以便在需要时提权。

1. 创建新用户

在 WSL 终端中执行以下命令,创建用户 “myname” 并自动创建其家目录:

adduser myname

系统会提示设置密码及填写用户信息,按提示完成即可。

2. 添加 sudo 权限

将新用户加入 sudo 组,使其拥有管理员权限:

usermod -aG sudo chen

此后,该用户在执行需要管理员权限的命令时,只需在命令前加上 “sudo” 即可。


二、设置 WSL 默认登录用户

安装完成后,每次打开 WSL 终端默认以 root 用户登录。我们可以将其修改为刚才创建的普通用户。

编辑配置文件

在 WSL 终端中执行:

sudo vim /etc/wsl.conf

在文件中写入以下内容并保存:

[user]
default=myname

重启 WSL

修改完成后,需要重启 WSL 使配置生效。在 Windows PowerShell 中执行:

wsl --shutdown

三、修改主机名

默认情况下,WSL 的主机名可能不够直观,且每次重启可能被自动覆盖。我们可以通过修改配置文件来固定主机名。

第一步:配置 wsl.conf 锁定主机名

在 WSL 终端中执行:

sudo vim /etc/wsl.conf

如果文件为空,直接粘贴以下内容:

[network]
hostname = myhostname
generateHosts = false
generateResolvConf = false

如果文件已有内容,请将其中的 hostname 修改为期望的名称,并确保 generateHosts = false 存在。

第二步:修改 hosts 文件

由于关闭了自动生成(generateHosts = false),需要手动将回环地址映射到新的主机名,否则 sudo 命令可能会变慢或报错。

执行:

sudo vim /etc/hosts

找到包含 127.0.0.1 和 ::1 的两行,将行尾的主机名改为你的主机名,例如:

127.0.0.1       localhost myhostname
::1             localhost myhostname

保存退出后,执行 wsl --shutdown 重启 WSL 使配置生效。


四、查看 Ubuntu 安装位置

了解 Ubuntu 系统文件存储在哪个磁盘分区,有助于后续进行磁盘空间管理和迁移操作。

方法一:使用 PowerShell 命令查看(推荐)

以管理员身份打开 PowerShell,执行以下命令查看已安装的发行版列表:

wsl -l -v

记下输出中 NAME 一栏显示的发行版名称(如 Ubuntu 或 Ubuntu-22.04)。

接着,运行以下命令查看该发行版的具体安装路径:

(Get-ChildItem HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss | Where-Object { $_.GetValue("DistributionName") -eq 'Ubuntu-22.04' }).GetValue("BasePath")

如果返回的路径以 C:\ 开头,说明系统安装在 C 盘。

方法二:迁移到 D 盘

如果 Ubuntu 安装在 C 盘且 C 盘空间紧张,可以将其迁移到 D 盘。

使用 wsl --manage --move 直接移动(推荐,适用于 Windows 11 22H2 及以上版本)

首先关闭 WSL:

wsl --shutdown

然后执行迁移命令,将发行版名称和目标路径替换为实际值:

wsl --manage Ubuntu-22.04 --move D:\WSL\Ubuntu

该命令会自动将整个发行版移动到指定位置,耗时较短且操作简便。


五、切换清华源

默认的软件源可能下载速度较慢,切换为清华大学镜像源可以显著提升软件包的安装速度。

执行以下命令,备份原配置文件并写入清华源:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak && sudo tee /etc/apt/sources.list > /dev/null <<EOF
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
EOF

切换完成后,建议执行 sudo apt update 更新软件包列表以验证源是否生效。


六、查看 WSL2 资源配置

WSL2 的资源配置直接影响开发体验,了解当前资源使用情况有助于进行合理调优。

1. 查看配置文件(你设置的值)

WSL2 的全局配置文件位于 Windows 侧:

C:\Users\你的Windows用户名\.wslconfig

可以在 WSL 终端中通过以下命令查看:

cat /mnt/c/Users/你的Windows用户名/.wslconfig

或在 Windows 文件资源管理器中直接进入该目录打开查看。

文件若不存在可以直接新建

内容示例:

[wsl2]
memory=24GB
processors=6
swap=16GB

2. 查看 WSL 实际生效的限制(运行时的值)

在 WSL 终端内部执行以下命令:

  • 查看当前可用内存和总量free -h,输出中的 total 列显示 WSL 当前被允许使用的最大内存。
  • 查看 CPU 核心数限制nproc,显示 WSL 当前可用的处理器核心数。
  • 查看交换分区大小swapon --show,显示当前激活的交换文件路径和大小。

3. 查看 WSL 全局状态

在 Windows PowerShell 中执行:

wsl --status

会列出 WSL 2 的内核版本和当前配置摘要。


七、32GB 内存电脑的内存分配建议

对于配备 32GB 物理内存的电脑,WSL2 的内存分配需要权衡 Windows 主机和 Linux 子系统之间的资源分配。

设置值后果分析推荐度
32GB(全给)极其危险。Windows 主机本身需要内存运行系统、杀毒软件、显卡驱动等。如果 WSL 占满 32GB,Windows 会因无内存可用而直接卡死、蓝屏或强制结束 WSL 进程。❌ 禁止
20GB安全且充裕。为 Windows 预留了 12GB,足够运行 Chrome、IDE、后台服务。WSL 编译大型项目(如 Linux 内核、LLVM)也基本够用。✅ 推荐(保守型)
24GB性能最佳点。为 Windows 预留 8GB 是绝大多数 32GB 用户的黄金比例。WSL 能获得 75% 的物理内存,跑大型容器(Docker)和 AI 模型都很顺畅。✅ 推荐(激进型)
16GB如果你发现编译或运行大程序时卡顿,可以提高到 20~24GB。当前 8GB 确实偏低。⚠️ 偏低(建议提高)

结论:强烈不建议设置 32GB,推荐设置 20GB~24GB 之间。

在 .wslconfig 文件中添加以下配置即可限制 WSL2 的最大内存使用:

[wsl2]
memory=20GB

八、pyenv 安装

pyenv 是一个 Python 版本管理工具,可以方便地在多个 Python 版本之间自由切换,并支持为不同项目创建独立的虚拟环境。本节介绍在 WSL Ubuntu 22.04 环境中安装和配置 pyenv 的完整步骤。

1. 安装依赖

在安装 pyenv 之前,需要先安装编译 Python 所需的系统依赖包:

sudo apt update
sudo apt install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev \
libffi-dev liblzma-dev

2. 下载 pyenv

使用 git 将 pyenv 克隆到当前用户的家目录 ~/.pyenv 下。这里使用 Gitee 镜像源以加速下载:

git clone https://gitee.com/mirrors/pyenv.git ~/.pyenv

3. 安装 pyenv-virtualenv 插件

pyenv-virtualenv 是 pyenv 的虚拟环境管理插件,安装后在进入含有虚拟环境的目录时会自动显示前缀,方便区分当前使用的 Python 环境。

mkdir -p ~/.pyenv/plugins
wget https://codeload.github.com/pyenv/pyenv-virtualenv/zip/refs/heads/master
mv master master.zip && unzip master.zip
mv pyenv-virtualenv-master ~/.pyenv/plugins/pyenv-virtualenv

4. 配置环境变量

将 pyenv 的路径和初始化命令添加到 ~/.bashrc 文件中,使 shell 能够识别 pyenv 命令:

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
source ~/.bashrc

5. 使用虚拟环境

安装指定版本的 Python 并创建虚拟环境。这里以 Python 3.9.23 为例,使用清华镜像源下载源码包以加速安装:

mkdir -p ~/.pyenv/cache
wget https://mirrors.tuna.tsinghua.edu.cn/python/3.9.23/Python-3.9.23.tar.xz -P ~/.pyenv/cache/
# 以对应python版本创建一个虚拟Python环境ohos
pyenv virtualenv 3.9.23 ohos-env
# 设置当前目录的python环境,会生成.python-version
pyenv local ohos-env

6. 验证安装

执行以下命令验证 Python 版本是否正确:

python3 --version  # 必须输出 Python 3.9.23

九、结语

本文对 WSL 安装 Ubuntu 22.04 后的基础配置进行了系统性的梳理,涵盖了用户管理、主机名设置、安装位置查看与迁移、镜像源切换、资源配置以及 pyenv 安装等核心配置步骤。完成以上配置后,你的 WSL 开发环境将更加安全、高效且易于管理。

在下一期文章中,我们将在此基础上进一步安装常用开发工具(如 Git、Vim、Docker 等),打造完整的开发工作流。敬请期待!

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐