在 WSL2 上安装 Ubuntu:全面指南
在 Windows 上运行 Linux 应用程序的需求一直存在,而 Windows Subsystem for Linux (WSL) 的出现极大地简化了这一过程。随着 WSL2 的推出,其性能和兼容性得到了显著提升,使得在 Windows 上运行完整的 Linux 发行版变得更加可行。本文将详细讲解如何在 WSL2 上安装 Ubuntu,包括概念讲解、代码示例、应用场景以及注意事项,帮助读者全面掌握这一技术。
一、WSL2 与 Ubuntu 的基础概念
(一)WSL 的发展与作用
Windows Subsystem for Linux (WSL) 是微软推出的一项技术,它允许用户在 Windows 操作系统上运行 Linux 二进制可执行文件。WSL 的出现打破了 Windows 和 Linux 之间的壁垒,为开发者和 Linux 爱好者提供了一个无需虚拟机或双系统即可体验 Linux 环境的途径。WSL 经历了多个版本的迭代,其中 WSL2 是目前的主流版本,具有更好的性能和兼容性。
(二)WSL2 的核心特点
-
完整的 Linux 内核 :WSL2 配备了一个完整的 Linux 内核,这意味着它能够支持更多的 Linux 系统调用和功能。这使得许多对内核要求较高的 Linux 应用程序能够在 WSL2 上正常运行。
-
文件系统性能提升 :与 WSL1 相比,WSL2 在文件系统性能方面进行了优化。它采用了虚拟化技术,使得 Linux 文件系统能够以接近原生 Linux 系统的性能运行,这对于需要频繁读写文件的应用程序尤为重要。
-
与 Windows 的集成 :WSL2 仍然保持了与 Windows 的良好集成。用户可以在 WSL2 和 Windows 之间共享文件,使用 Windows 的工具和应用程序打开 Linux 文件,反之亦然。这种无缝的集成使得用户可以在一个熟悉的环境中同时使用 Windows 和 Linux 的工具。
(三)Ubuntu 的优势
Ubuntu 是一个广受欢迎的 Linux 发行版,以其用户友好的界面、强大的软件包管理和良好的社区支持而闻名。在 WSL2 上安装 Ubuntu 可以让用户享受到 Ubuntu 的以下优势:
-
丰富的软件生态系统 :Ubuntu 拥有庞大的软件包库,用户可以轻松安装各种应用程序和开发工具。从文本编辑器到复杂的开发环境,从数据库管理系统到机器学习框架,几乎所有的开源软件都可以在 Ubuntu 上找到。
-
稳定性与安全性 :Ubuntu 以其稳定性和安全性而著称。它定期发布更新和补丁,修复安全漏洞和系统错误。这使得用户可以在一个安全可靠的环境中运行应用程序。
-
社区支持与资源丰富 :Ubuntu 拥有活跃的社区和丰富的文档资源。用户在遇到问题时,可以轻松地在社区论坛、博客和文档中找到解决方案。这种强大的社区支持为用户提供了学习和解决问题的平台。
二、在 WSL2 上安装 Ubuntu 的详细步骤
(一)准备工作
-
确保 Windows 版本支持 WSL2 :WSL2 仅支持 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11。可以通过在命令行中输入
winver
命令来检查 Windows 的版本号。 -
启用虚拟机平台 :WSL2 依赖于虚拟机技术。在 Windows 功能中启用“虚拟机平台”功能。可以通过以下步骤完成:
-
打开“控制面板”,选择“程序”>“程序和功能”>“启用或关闭 Windows 功能”。
-
在弹出的窗口中,勾选“虚拟机平台”选项,然后点击“确定”。
-
重启计算机以完成安装。
-
-
安装适用于 Linux 的 Windows 子系统 :以管理员身份打开 PowerShell,运行以下命令来安装 WSL:
powershell复制
wsl --install
该命令将自动安装适用于 Linux 的 Windows 子系统和 Ubuntu 发行版。如果想安装特定版本的 Ubuntu(例如 Ubuntu 22.04),可以使用以下命令:
powershell复制
wsl --install -d Ubuntu-22.04
系统会提示用户创建一个默认的 UNIX 用户账户和密码。完成设置后,Ubuntu 将自动安装。
(二)初始配置
-
启动 Ubuntu :安装完成后,可以在命令行中输入
wsl
命令或通过 Windows 搜索结果菜单启动 Ubuntu。 -
更新系统 :首次启动 Ubuntu 后,建议更新系统以确保所有软件包都是最新版本。在 Ubuntu 终端中运行以下命令:
bash复制
sudo apt update && sudo apt upgrade
这将更新系统的软件包列表,并升级所有已安装的软件包。
-
安装常用软件 :根据个人需求,安装常用的软件包。例如,安装开发工具、文本编辑器、版本控制系统等:
bash复制
sudo apt install build-essential vim git
(三)迁移 Ubuntu 到其他磁盘
默认情况下,WSL2 将 Ubuntu 安装在系统盘(通常为 C 盘)。为了节省系统盘空间,可以将 Ubuntu 迁移到其他磁盘。以下是迁移步骤:
-
导出 Ubuntu :使用以下命令将 Ubuntu 导出为 tar 文件:
powershell复制
wsl --export Ubuntu "D:SubLinuxUbuntu.tar"
请确保替换目标路径为实际的非系统盘路径。
-
取消注册 Ubuntu :在 PowerShell 中运行以下命令取消注册当前的 Ubuntu 发行版:
powershell复制
wsl --unregister Ubuntu
-
导入 Ubuntu :将导出的 tar 文件导入到新的位置:
powershell复制
wsl --import Ubuntu "D:SubLinux" "D:SubLinuxUbuntu.tar"
其中
D:SubLinux
是 Ubuntu 的新安装位置。
(四)高级配置
-
配置 WSL2 性能 :创建或编辑位于用户主目录下的
bash.wslconfig
文件,添加以下内容以优化 WSL2 的性能:复制
[wsl2] memory=8GB processors=4 swap=16GB
这将为 WSL2 分配 8GB 的内存、4 个虚拟处理器和 16GB 的交换空间。根据实际需求调整这些值。
-
启用 systemd :systemd 是 Linux 系统中的一个系统和服务管理器。在 Ubuntu 的默认 WSL2 配置中,systemd 不启用。如果需要使用 systemd 功能(例如管理服务和守护进程),可以按照以下步骤启用它:
-
创建或编辑
ini/etc/wsl.conf
文件,添加以下内容:复制
[boot] systemd=true
-
在 PowerShell 中运行以下命令重新启动 WSL2:
powershell复制
wsl --shutdown
然后重新启动 Ubuntu。
-
-
启用 SSH 服务 :如果需要通过 SSH 远程访问 Ubuntu,可以安装和配置 SSH 服务:
bash复制
sudo apt update sudo apt install openssh-server sudo systemctl enable ssh sudo systemctl start ssh
三、WSL2 上 Ubuntu 的应用场景
(一)软件开发环境
-
使用 Linux 开发工具 :许多开发工具和编程语言在 Linux 环境下具有更好的支持和更丰富的社区资源。在 WSL2 上安装 Ubuntu 后,开发者可以使用 Linux 版本的 GCC、Clang、Python、Node.js 等工具进行开发。例如,Python 开发者可以在 Ubuntu 上使用 pip 安装各种 Python 库,运行 Django 或 Flask 框架进行 Web 开发。
-
容器化开发与 Docker :Docker 是一个流行的容器化平台,允许开发者将应用程序及其依赖打包到一个可移植的容器中。在 Ubuntu 上安装 Docker 比较方便,通过 WSL2 的集成,开发者可以在 Windows 上使用 Docker 进行容器化开发。这使得在不同环境中保持开发和部署的一致性变得更加容易。
(二)系统管理与服务器管理
-
管理 Linux 服务器 :对于系统管理员和 DevOps 工程师来说,WSL2 上的 Ubuntu 提供了一个熟悉的 Linux 环境来管理远程 Linux 服务器。可以使用 SSH 工具从 Windows 上直接连接到远程服务器,执行配置管理、监控和故障排除任务。例如,使用 Ansible 等自动化工具进行批量服务器配置和管理。
-
本地服务测试与开发 :在本地开发环境中模拟 Linux 服务器环境,测试和开发网络服务。例如,搭建 Apache 或 Nginx 服务器,配置 MySQL 数据库,开发和测试基于 LAMP(Linux、Apache、MySQL、PHP)或 LNMP(Linux、Nginx、MySQL、PHP/Python)架构的应用程序。
(三)教育与培训
-
学习 Linux 操作系统 :对于想要学习 Linux 的用户来说,WSL2 上的 Ubuntu 提供了一个无需安装虚拟机或双系统的途径。可以在 Windows 环境中体验 Linux 的命令行界面、文件系统和系统管理工具,学习 Linux 的基础知识和技能。例如,练习文件权限管理、进程管理、Shell 脚本编写等。
-
教学与演示 :教师和培训师可以在 Windows 上使用 Ubuntu 进行 Linux 相关课程的教学和演示。通过共享屏幕或录制教程,向学生展示 Linux 的操作和概念,帮助他们更好地理解和掌握 Linux 系统。
(四)运行 Linux 应用程序与游戏
-
运行 Linux 软件 :许多应用程序(如 GIMP、Inkscape、Blender 等)在 Linux 上具有更好的性能和功能支持。通过 WSL2 上的 Ubuntu,可以在 Windows 上直接运行这些 Linux 应用程序,无需在 Windows 上寻找替代软件或进行复杂的兼容性设置。例如,使用 GIMP 进行图像编辑,使用 Blender 进行 3D 建模和动画制作。
-
游戏体验 :虽然 WSL2 不是运行游戏的最佳选择,但一些 Linux 游戏可以在 Ubuntu 上顺利运行。对于轻度游戏玩家或想要体验开源游戏的用户来说,WSL2 提供了一个额外的选择。可以安装 Steam 客户端,通过 Proton 技术运行一些 Windows 游戏,或者直接运行 Linux 版本的游戏。
四、注意事项与常见问题解决
(一)性能优化
-
调整内存和处理器分配 :根据系统资源和实际需求,合理调整 WSL2 分配的内存和处理器数量。在
.wslconfig
文件中修改memory
和processors
参数,避免分配过多资源导致系统运行缓慢,或分配过少资源影响 Ubuntu 性能。 -
磁盘空间管理 :Ubuntu 的安装和使用可能会占用一定量的磁盘空间。定期清理不必要的文件和软件包,释放磁盘空间。可以使用
apt-get autoremove
命令清理不再需要的依赖包,使用rm
命令删除大文件(如日志文件、临时文件等)。如果将 Ubuntu 安装在非系统盘上,确保该磁盘有足够的剩余空间以避免性能问题。
(二)网络配置
-
网络连接问题 :如果在 Ubuntu 中遇到网络连接问题(如无法访问互联网、DNS 解析失败等),可以尝试以下解决方法:
-
检查 Windows 系统的网络连接是否正常。
-
在 Ubuntu 中运行
sudo systemctl restart NetworkManager
命令重启网络管理服务。 -
编辑
/etc/resolv.conf
文件,设置正确的 DNS 服务器地址(如nameserver 8.8.8.8
)。
-
-
端口转发与外部访问 :默认情况下,WSL2 的网络模式是 NAT(网络地址转换),Ubuntu 内部运行的服务只能在 Windows 主机上访问。如果需要从外部设备(如其他计算机或移动设备)访问 Ubuntu 上运行的服务(如 Web 服务器、SSH 服务等),可以配置端口转发。以 Windows 防火墙为例,添加入站规则,允许特定端口的流量通过,并将该端口的流量转发到 Ubuntu 的 IP 地址和端口上。Ubuntu 的 IP 地址可以通过在 Ubuntu 终端中运行
hostname -I
命令获取。
(三)文件系统与数据共享
-
文件系统权限问题 :在访问和编辑位于 WSL2 文件系统中的文件时,可能会遇到权限问题。这是因为 Windows 和 Linux 的文件系统权限模型不同。可以使用
chmod
和chown
命令在 Ubuntu 中修改文件权限和所有权。例如,使用chmod 755 filename
命令授予文件读写执行权限,使用chown username:groupname filename
命令更改文件的所有者和所属组。 -
数据共享最佳实践 :虽然可以在 WSL2 和 Windows 之间共享文件,但频繁地跨文件系统操作可能会导致性能下降和权限问题。建议将频繁访问和修改的文件存储在 Linux 文件系统中,并在 Ubuntu 内部进行操作。如果需要在 Windows 和 Ubuntu 之间共享大量数据,可以使用网络共享(如 Samba 服务)或云存储服务,确保数据的一致性和访问效率。
(四)升级与维护
-
定期更新 Ubuntu :保持 Ubuntu 系统和软件包的更新是确保安全性和性能的关键。定期运行
sudo apt update
和sudo apt upgrade
命令,安装最新的安全补丁和软件更新。同时,关注 Ubuntu 官方发布的重大更新和新版本信息,及时进行系统升级。 -
备份数据 :在进行系统升级、配置更改或安装新软件之前,备份重要的数据和配置文件。可以使用
tar
命令创建数据的压缩备份,将备份文件存储在外部存储设备或云存储中,以防止数据丢失。
五、案例分析:在 WSL2 上搭建 Ubuntu 开发环境
(一)需求分析
一位 Web 开发者需要在 Windows 11 电脑上搭建一个 Ubuntu 开发环境,用于开发基于 Node.js 和 React 的 Web 应用程序。他希望能够在 Ubuntu 中使用与生产环境一致的开发工具和依赖包,同时充分利用 Windows 上的代码编辑器(如 Visual Studio Code)和调试工具。
(二)环境搭建步骤
-
安装 WSL2 和 Ubuntu :按照前面介绍的方法,在 Windows 11 上安装 WSL2 和 Ubuntu 22.04。在安装过程中,创建一个默认的 UNIX 用户账户,并设置密码。
-
更新 Ubuntu 系统 :启动 Ubuntu 后,运行以下命令更新系统:
bash复制
sudo apt update && sudo apt upgrade
-
安装开发工具和依赖 :安装 Node.js、npm 和其他必要的开发工具:
bash复制
sudo apt install nodejs npm build-essential
验证 Node.js 和 npm 是否安装成功:
bash复制
node -v npm -v
-
配置 Visual Studio Code :在 Windows 上安装 Visual Studio Code,并安装 Remote - WSL 扩展。通过 Remote - WSL 扩展,可以直接在 Ubuntu 环境中打开和编辑项目文件,使用 Visual Studio Code 的调试功能对 Node.js 应用程序进行调试。
-
创建项目目录并启动开发 :在 Ubuntu 中创建项目目录,并使用 VS Code 打开:
bash复制
mkdir -p /mnt/d/projects/mywebapp code /mnt/d/projects/mywebapp
在项目目录中,初始化一个新的 Node.js 项目,安装 React 依赖,并开始开发:
bash复制
cd /mnt/d/projects/mywebapp npm init -y npm install react react-dom
(三)应用效果
通过在 WSL2 上搭建 Ubuntu 开发环境,开发者能够在一个熟悉的 Windows 界面中使用 Ubuntu 的开发工具和环境。他可以充分利用 Ubuntu 上的软件包管理和 Linux 生态系统,同时享受 Visual Studio Code 的强大编辑和调试功能。这种集成的开发环境提高了开发效率,减少了因环境差异导致的开发和部署问题,使得开发流程更加顺畅和高效。
六、总结与展望
在 WSL2 上安装 Ubuntu 为用户提供了在 Windows 环境中体验和使用 Linux 的强大能力。通过本文的详细讲解,读者可以了解到 WSL2 和 Ubuntu 的基础概念、安装步骤、配置方法、应用场景以及注意事项。无论是在软件开发、系统管理、教育学习还是娱乐应用中,WSL2 上的 Ubuntu 都能够为用户提供各种可能性和便利。
随着技术的不断发展,WSL2 和 Ubuntu 的集成将更加紧密和高效。未来,我们可以期待以下方面的改进和拓展:
-
性能优化 :进一步提升 WSL2 的性能,特别是在文件系统性能和系统调用兼容性方面,使其更接近原生 Linux 系统的性能表现。
-
功能增强 :增加更多的功能支持,如更好地集成 Windows 和 Linux 的图形界面应用程序,提供更丰富的系统管理工具和实用程序。
-
社区与生态建设 :随着 WSL2 和 Ubuntu 的用户群体不断扩大,社区将发挥越来越重要的作用。更多的教程、案例和开源项目将有助于用户更好地学习和应用这一技术,推动其在更多领域的普及和发展。
通过在 WSL2 上安装 Ubuntu,用户可以在 Windows 和 Linux 之间实现无缝切换和协同工作,充分发挥两种操作系统的优点。这不仅提高了工作效率,还为技术创新和探索提供了更广阔的平台。希望本文能够帮助读者成功搭建和使用 WSL2 上的 Ubuntu 环境,开启在 Windows 上的 Linux 之旅。
另外:
在 WSL2 上安装 Ubuntu
Install Ubuntu on WSL2 - Ubuntu on WSL documentation
查看所有当前安装的发行版以及它们正在使用的 WSL 版本:wsl -l -v
-
保证当前 Linux 版本支持CUDA. 在命令行中输入
uname -m && cat /etc/*release
,应当看到类似的输出
x86_64 DISTRIB_ID=Ubuntu DISTRIB_RELEASE=22.04
-
检查是否安装了
gcc
. 在命令行中输入gcc --version
,应当看到类似的输出
gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
本文地址:https://www.vps345.com/6246.html