WSL2+Ubuntu 22.04安装ROS2 Humble全流程详解与踩坑指南

发布时间:2026/10/6 13:11:43
WSL2+Ubuntu 22.04安装ROS2 Humble全流程详解与踩坑指南 如果你在Windows上被双系统和虚拟机折腾过一定知道为了跑一个ROS2环境能有多痛苦。我最后长期留在WSL里不是因为图新鲜而是因为它确实解决了我的核心痛点Windows日常办公 Linux开发环境同时在线不用重启、不用切系统拷贝代码、截图、微信发送都无缝衔接。这篇把我从零开始用WSL安装Ubuntu、再装ROS2 Humble的完整过程写下来包括版本选择、磁盘规划、源配置、环境变量原理、VS Code联动以及我在实际使用中踩过的四个比较隐蔽的坑。这篇内容适合两类人一类是刚接触ROS2、手头只有Windows电脑的学生党想低成本快速把环境跑起来另一类是工作机必须留在Windows、但又需要Linux环境做机器人仿真的开发者。看完你可以照着一步步操作不是只给命令我会把每个关键选择背后的原因也讲清楚。1. 为什么是WSL而不是双系统或虚拟机我先对比了三套方案1.1 双系统的重启之痛与磁盘分区问题我最早折腾ROS2是装的Windows Ubuntu双系统Grub引导、分区、显卡驱动一套流程下来大半天过去了。装完确实稳定性能也接近物理机但问题也很现实每次要切到Windows改个文档、回个消息就得重启一次。开发节奏一断灵感也断了。而且双系统对磁盘分区有要求Ubuntu分区预留小了后面/opt、/home不够用扩分区又是一个痛苦的过程。如果你的电脑是公司发的统一管理设备双系统基本是不被允许的修改引导、额外分区都可能在安全策略上踩线。所以让很多人在第一步就放弃了。这也是我后来不再推荐双系统的核心原因。1.2 虚拟机资源隔离过强3D加速和ROS2图形工具受限VMware和VirtualBox是另一条常见路线我之前也认真用过一段时间。虚拟机的思路是在Windows里面再虚拟一套完整硬件Ubuntu跑在虚拟硬件上隔离性很好不怕搞坏宿主机。但做机器人开发时虚拟机的短板就露出来了rviz2、Gazebo这类3D图形工具对GPU有要求虚拟机里的OpenGL性能损耗明显打开一个带点云的rviz2界面卡顿是常事串口和USB设备穿透配置也比较繁琐后面你要是接激光雷达、深度相机、IMU在虚拟机里做设备映射挺折腾。虚拟机还有一层开销在系统资源上内存和CPU都被虚拟化层吃掉一截编译大型工作空间时速度差一截。1.3 WSL2的真正形态轻量虚拟机但体验接近原生WSL2其实是一个运行在Hyper-V轻量虚拟机里的真实Linux内核微软没有像传统虚拟机那样提供完整虚拟硬件而是做了深度整合。它把整个文件系统放在一个虚拟磁盘里ext4.vhdx内核由Windows侧管理、自动更新启动只需要一两秒内存按需分配不用像虚拟机那样预先固定占用。对ROS2开发最关键的差异是网络与图形WSL2支持WSLgLinux的GUI程序可以直接弹窗显示rviz2能直接打开Windows上运行了NVIDIA驱动之后WSL2里还能直接调用CUDA做GPU加速。这套组合拳下来绝大多数ROS2开发场景都能覆盖而且比双系统省事太多。1.4 什么情况下我仍然建议你别用WSLWSL不是万能的我得先说清楚它的边界免得你装完发现某个功能缺失又回头骂我。第一如果你要做大量底层Linux内核相关的开发比如自定义内核模块、直接操作硬件寄存器、做RT_PREEMPT实时性测试WSL2的内核受微软管理改内核不方便这时候应该用原生Linux。第二如果你的机器人需要直接插多个USB设备且要求严格的实时通信某些情况下WSL2对USB的透传虽然已经支持usbipd-win但中高级的实时控制和复杂外设场景还是原生Linux更稳。第三如果你对Linux桌面的完整性有执念比如要用GNOME/KDE的完整桌面环境WSLg只是一个轻量远程显示方案不是完整的桌面你用惯了原生Ubuntu桌面的那种体验会觉得WSL有点拧巴。对我来说WSL2恰好覆盖了90%的ROS2开发场景写代码、编译、跑仿真、看话题数据、调试节点全部够用。剩下的10%我再去找一台Linux机器或服务器解决。2. 动手之前WSL版本、Ubuntu版本与磁盘位置三个决策点2.1 先确认你的Windows版本和WSL2依赖安装WSL2前要先确认Windows版本。Windows 10 2004及以上、Windows 11都支持。如果你还在用很老的Windows 10版本建议先更新系统再折腾不然会遇到组件缺失的问题。确认方法很简单命令行里敲winver弹出的窗口里会显示具体的系统版本号。然后我建议直接上WSL2而不是WSL1两者区别有点大WSL1是API翻译层没有真正的Linux内核部分二进制兼容性有问题WSL2是轻量虚拟机带完整内核ROS2里很多二进制包和内核相关调用在WSL1下容易出问题。所以结论很明确直接WSL2。启用WSL2需要两个Windows功能“适用于Linux的Windows子系统”和“虚拟机平台”可以这样开启dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart然后重启电脑。或者你直接在“启用或关闭Windows功能”弹窗里勾选这两个选项效果一样。如果你的Windows版本比较新也可以直接用wsl --install它会自动启用所需功能并下载默认的Ubuntu发行版。我第一次装的时候就是这么干的确实省事但要注意这个命令默认装的Ubuntu可能是最新版这会影响你后面选ROS2版本具体对应关系我下一节讲。2.2 Ubuntu版本和ROS2版本怎么搭配一步选错步步错这一步特别关键ROS2的每个发行版都有对应的Ubuntu版本不是随便装的。常见的对应关系是这样的ROS2发行版对应Ubuntu版本长期支持状态Foxy20.04已停止维护不推荐Humble22.04LTS维护到2027年Iron23.04非LTS已停止维护Jazzy24.04LTS维护到2029年Kilted25.04非LTS尝鲜用我推荐的核心组合是Ubuntu 22.04 ROS2 Humble。原因有两个第一Humble是目前内容生态最成熟的版本绝大多数教材、源码、GitHub项目都基于Humble开发碰到的坑基本都有前人趟过第二22.04是LTS版本系统支持周期长适合做长期开发环境。如果你手头有Ubuntu 24.04wsl --install默认装的可能是这个那就用ROS2 Jazzy它是2024年的新LTS也稳定但教程相对Humble少一些。我建议新手别追新因为有些第三方的包比如某些驱动和相机SDK可能还没适配到Jazzy到时候排查起来头大。热词里我看到“ubuntu26.04安装ros2”这样的搜索这里提醒一句Ubuntu 26.04对应的ROS2版本还太新生态里很多包没跟上现阶段别在主力环境上尝鲜。踩过这个坑的都知道环境装好了结果编译不过心态真的会崩。2.3 把WSL发行版从C盘挪到D盘一次配置后半生清静wsl --install默认把发行版装到C盘但C盘通常是最金贵的。WSL2发行版的虚拟磁盘文件是一个ext4.vhdx文件会随着你安装的包越来越多而膨胀ROS2桌面版装完加上依赖轻松超过10GB后续工作空间和仿真模型再多点C盘分分钟告急。所以我的建议是装完系统后第一时间迁移到其他盘。有两种常见做法。一种是在全新安装时就指定位置但这对新版WSL来说不算太直接更稳的办法是用--import的方式迁移一个已经装好的发行版。操作流程是这样的先关闭WSLwsl --shutdown然后把当前发行版导出为一个tar包wsl --export Ubuntu-22.04 D:\wsl-backup\ubuntu2204.tar注销掉原来的发行版注意这会删除原发行版的配置和数据但我们已经导出了不用担心wsl --unregister Ubuntu-22.04再用import的方式导入到新目录wsl --import Ubuntu-22.04 D:\wsl\Ubuntu22.04 D:\wsl-backup\ubuntu2204.tar导入完成之后发行版会以root用户作为默认用户这是个坑我后面会专门讲怎么改回来。迁移完之后原来的ext4.vhdx就跑到D:\wsl\Ubuntu22.04目录里了C盘一下子就干净了。另外还可以在C:\Users\你的用户名\.wslconfig文件里做一些全局配置比如限制内存占用[wsl2] memory8GB swap2GB processors4我的工作机是32GB内存日常跑Gazebo体验还行我限制WSL最高用16GB内存避免它把Windows内存吃满了导致宿主机卡顿。如果你的电脑配置一般建议在.wslconfig里限制一下memory比如4GB或6GBGazebo和rviz2还是能跑的。2.4 wsl --install太慢的应对思路热词里有人说“wsl --install 太慢”这确实常见。新版wsl --install会从微软服务器拉取组件和发行版镜像网络状况不好的时候进度条会一直卡着不动。我实际用下来有几个对策。第一单独指定发行版名称安装比如wsl --install Ubuntu-22.04比裸wsl --install更明确有时能避开默认下载源卡顿。第二如果wsl --install一直卡可以手动去Microsoft Store搜“Ubuntu 22.04.3 LTS”安装Store安装走的是另一个通道有时反而快。第三如果两个都慢可以先把WSL2的内核更新包手动下载安装微软官网有wsl_update_x64.msi然后再用Store装Ubuntu发行版拆开来做很多问题是出在内核更新上而不是发行版下载上。3. 进入Ubuntu的第一小时换源、中文输入法、基础配置三件事3.1 换源这一步apt和pip都要处理装好发行版、进入Ubuntu终端之后我做的第一件事就是换源。WSL的Ubuntu默认用的是archive.ubuntu.com在国内环境下下载速度非常难受。换源不是玄学就是把Ubuntu的软件源地址改成国内镜像站的地址。Ubuntu 22.04的源文件在/etc/apt/sources.list需要编辑它。这里有个细节22.04及之后的版本引入了deb822格式但/etc/apt/sources.list里的传统格式仍然可用。我习惯直接改传统格式方便。做法是先备份sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak然后用sed直接替换成中科大或阿里云的镜像地址。以中科大为例sudo sed -i s//.*archive.ubuntu.com//mirrors.ustc.edu.cng /etc/apt/sources.list sudo sed -i ssecurity.ubuntu.commirrors.ustc.edu.cng /etc/apt/sources.list接着sudo apt update更新速度会有质的飞跃。如果你用的是Ubuntu 24.04源管理方式变了是在/etc/apt/sources.list.d/ubuntu.sources里里面是deb822格式用suites:和uris:字段替换思路类似把URIs换成镜像地址就行。很多人容易漏掉pip源。后面我们装ROS2开发工具时会用到pip如果pip默认走官方PyPI速度也不行。改一下pip配置pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/simple或者直接写配置文件也行。这一步建议和apt换源一起做掉不然等你想起来的时候某个pip包已经下载到一半了。3.2 WSLg下的中文输入法设置热词里有人搜“ubuntu中文输入法怎么设置”说明很多人都卡在这里。WSLg支持GUI程序显示所以中文输入法也能在WSL里跑起来。我用的是fcitx5比ibus在WSLg下的兼容性更省心。安装sudo apt install fcitx5 fcitx5-chinese-addons然后设置输入法环境变量编辑~/.bashrc追加export XMODIFIERSimfcitx export GTK_IM_MODULEfcitx export QT_IM_MODULEfcitx重新打开终端运行fcitx5 然后在fcitx5的配置界面里添加“拼音”输入法。如果你发现GUI程序里调不出输入法多半是环境变量没生效或者fcitx5进程没起来。在WSL里因为可以通过Windows侧的中文输入法直接往WSL的程序里输入中文Windows剪贴板和输入焦点共享所以我实际用的时候发现很多时候直接在Windows输入中文然后粘贴到WSL里反而更顺手。如果你觉得配置fcitx5太麻烦可以用这个土办法开发效率也不低。3.3 两个容易被忽略的配置文件/etc/wsl.conf和.wslconfigWSL在Linux侧有一个配置文件/etc/wsl.confWindows侧有一个.wslconfig。这两个文件职责不同/etc/wsl.conf配置当前发行版的行为比如默认用户.wslconfig配置整个WSL2虚拟机的资源与网络参数。我通常在/etc/wsl.conf里加上这些内容[network] generateResolvConf true [interop] enabled true appendWindowsPath true [user] default myname其中[user] default myname就是在你忘了指定默认用户时改回普通用户的关键。修改这个文件后需要执行wsl --shutdown再重新进WSL才生效。.wslconfig里我前面提过可以限制内存和CPU。如果你遇到WSL里程序启动变慢、Windows侧又卡检查一下是不是之前没设置memory限制WSL默认会吃掉宿主机50%甚至更多的内存。给WSL设个上限对宿主机和WSL都友好。4. ROS2 Humble安装全流程从添加软件源到跑通第一个话题4.1 添加ROS2源与密钥的正确姿势ROS2不在Ubuntu默认源里第一步是把ROS2的软件源加进来。我记得官方文档的方法是先安装一些基础工具然后下载ROS2的GPG密钥并写入keyringsudo apt update sudo apt install curl gnupg lsb-release sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg然后添加源echo deb [arch$(dpkg --print-architecture) signed-by/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main | sudo tee /etc/apt/sources.list.d/ros2.list /dev/null这里有一个常见的坑raw.githubusercontent.com在你当前的网络环境下可能访问不稳定导致ros.key下载不下来。如果卡在这一步我建议直接改用国内镜像站的key和源。比如中科大镜像sudo curl -sSL https://mirrors.ustc.edu.cn/rosdistro/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg echo deb [arch$(dpkg --print-architecture) signed-by/usr/share/keyrings/ros-archive-keyring.gpg] https://mirrors.ustc.edu.cn/ros2/ubuntu $(lsb_release -cs) main | sudo tee /etc/apt/sources.list.d/ros2.list /dev/null这里解释一下这个地址的结构https://mirrors.ustc.edu.cn/ros2/ubuntu是ROS2二进制包的镜像根路径$(lsb_release -cs)会自动解析成jammy代表Ubuntu 22.04最终拼出的地址就是.../ubuntu jammy main。这条规则对所有Ubuntu版本通用所以就算你换到24.04也是自动适配的。添加完源之后sudo apt update如果能正常拉到ros2相关的包列表说明源配置成功了。4.2 装desktop还是ros-base第一步选择决定体验ROS2的包很多Ubuntu源里并没有统一的“一键安装ROS2”包而是拆成了几百个独立包但官方提供了几个聚合包。最常见的两个ros-humble-desktop完整桌面版包含rviz2、GazeboROS2里叫ignition或gazebo classic、demo节点、可视化工具等。体积很大依赖多安装时间也长但装了就能看图形界面新手建议装这个。ros-humble-ros-base精简版只有通信核心、客户端库和基础命令没有GUI工具。适合服务器部署和嵌入式环境。我建议你直接装desktop除非你确认自己不需要图形工具。因为新手阶段学话题、服务、动作这些概念时rviz2是直观理解数据流的最好工具而且desktop里带的demo包可以用来验证环境是否正常。安装命令sudo apt install ros-humble-desktop这一步会下载不少东西建议在换完源之后再执行不然下载速度会让人怀疑人生。desktop装完大概需要3-5GB磁盘空间这也是我前面让你迁移WSL到D盘的原因不然C盘一下就满了。除了ROS2主体我还会顺便装另外两个东西一个是colcon这是ROS2的工作空间编译工具sudo apt install python3-colcon-common-extensions另一个是rosdep用来解析和安装依赖包sudo apt install python3-rosdep4.3 理解source命令为什么每次都要加载setup.bash装完ROS2之后官方文档都会让你执行echo source /opt/ros/humble/setup.bash ~/.bashrc很多新手照做就完了但不知道这句在干什么。我稍微展开讲一下。ROS2的安装目录是/opt/ros/humble/里面有一套完整的库、工具、可执行文件。这套东西不是装到系统PATH里的而是通过一个setup.bash脚本在每次终端启动时动态注入环境变量。这个脚本主要做三件事把/opt/ros/humble/bin加入PATH让你能直接敲ros2命令设置AMENT_PREFIX_PATH让ROS2能定位到已安装的功能包设置LD_LIBRARY_PATH让动态链接库能被找到。不执行source的话你敲ros2会提示command not found或者就算找到命令也找不到包。所以echo到~/.bashrc的意义是每次新开终端自动source不用手动重复。我补充一个更完整的配置把下面这段加到~/.bashrc里会更好用source /opt/ros/humble/setup.bash source /usr/share/colcon_cd/function/colcon_cd.sh export _colcon_cd_root~/ros2_wscolcon_cd是一个小工具装colcon的时候可选作用是快速跳转到工作空间目录开发时很爽。4.4 跑通talker和listener验证环境而不只是看版本号安装完成后不要只敲ros2 --version看个版本号就以为装好了。我最推荐的环境验证方式是跑一个话题通信demo。开一个终端ros2 run demo_nodes_cpp talker再开一个终端ros2 run demo_nodes_py listener如果talker那边一直输出Publishing: Hello World: Nlistener那边能收到并打印说明ROS2的底层通信已正常工作。注意这里不需要额外启动master节点ROS2是去中心化DDS架构节点之间自动发现这一点和ROS1有本质区别很多老ROS1玩家第一次用ROS2会被这个变化搞懵。再验证一下话题列表ros2 topic list ros2 topic info /chatter能看到/chatter话题以及它的发布者、订阅者信息就说明这个环境是真实可用的不是只报个版本号。5. 打通Windows侧VS Code、rviz2图形界面与文件系统性能5.1 在VS Code里无缝操作WSLROS2开发体验直接提升一档很多ROS2教程建议在Linux终端里用vim或gedit写代码但我实际开发主要用VS Code因为Remote-WSL插件把Windows和WSL的边界抹掉了。在Windows侧装好VS Code再装插件Remote - WSL然后命令行里输入code .VS Code就会以一个“连接到WSL”的模式打开当前目录左下角会显示“WSL: Ubuntu-22.04”。在这个模式下编辑的文件是Linux文件系统的实际文件终端默认就是Ubuntu的bash调试器能直接调试WSL里的C和Python程序。这个体验比在WSL里跑一个Linux版VS Code更流畅因为VS Code的界面进程跑在Windows侧、扩展和语言服务器跑在WSL侧兼顾了Windows的性能优势与Linux的编译环境。我编译ROS2工作空间时就是直接按CtrlJ开终端然后colcon build好用的很。5.2 WSLg让rviz2直接弹窗3D显示实测WSL2配WSLg之后Linux GUI程序可以直接显示到Windows桌面上不需要额外装X Server。装完ROS2 desktop之后执行rviz2如果正常的话一个rviz2窗口就会弹出来可以用它加载机器人模型、查看点云和地图。我第一次在WSL里跑出rviz2窗口的时候还是挺惊喜的毕竟以前做这个要么开机进Linux要么在虚拟机里忍受图形卡顿。不过要诚实地说WSLg的3D性能比原生Linux弱一些复杂场景下旋转视角会有迟滞感。如果你主要做的是重仿真比如Gazebo加载复杂场景多传感器建议降低显示分辨率或者把环境变量LIBGL_ALWAYS_SOFTWARE去掉让它走硬件加速。NVIDIA显卡用户可以在WSL里直接跑nvidia-smi确认GPU可见新版本WSLg对CUDA的OpenGL互操作做得不错大部分情况能自动走硬件加速。5.3 为什么不要在/mnt/c下编译代码文件系统性能差距巨大这是我在开发过程中印象最深的一个坑也是很多WSL新手最容易忽视的。WSL2里Windows的盘符被挂载在/mnt/c、/mnt/d等路径下。刚上手的时候我习惯直接把Git仓库放D盘然后从WSL里访问/mnt/d/project来编译。结果发现colcon build慢到令人抓狂。我去查了原因WSL2访问/mnt/c或/mnt/d本质上是走了一个名为9P的网络文件系统协议这是跨VM边界的文件访问性能比访问Linux原生文件系统位于ext4.vhdx内部差一个数量级大量小文件的编译场景差异尤其明显。CMake编译会产生成千上万个临时文件、缓存文件、对象文件每个都走9P协议时间就全浪费在文件I/O上了。这里给出我的建议代码全部放到WSL内部文件系统比如~/ros2_ws用VS Code的Remote-WSL模式打开它Windows侧根本不直接碰代码文件。代码的Git仓库也放在WSL里日常用VS Code和WSL终端操作大文件互传偶尔用/mnt路径完全够用。如果你确实有Windows侧和WSL侧代码同步的刚需也尽量把Windows侧项目放在SSD上并把Windows Defender的实时扫描对WSL的ext4.vhdx路径添加白名单能缓解一部分I/O损耗。这个操作在“Windows安全中心 → 病毒和威胁防护 → 排除项”里加路径就行。6. WSLROS2的四个隐藏坑对照我的排查思路排一遍6.1 WSL2的NAT网络导致DDS节点发现失败怎么定位这是我遇到过的比较难排查的一个问题现象是WSL2里的两个ROS2节点能通信但Windows宿主机上运行的ROS2节点或同一局域网里其他ROS2设备怎么都发现不了WSL2里的节点。根本原因在WSL2的网络模式。默认情况下WSL2走的是NAT网络自带一个虚拟交换机WSL2里的IP和Windows主机不在同一个网段而ROS2的DDS协议默认依赖UDP组播做节点发现NAT模式会过滤掉外部网络的组播包所以节点发现自然失败。关键解法有两个。一是对于不需要跨机器通信的场景让所有节点只在localhost通信设置export ROS_LOCALHOST_ONLY1这样DDS限制在loopback接口WSL2本机内的多节点通信会更快也避开了NAT网络问题。但这解决不了跨设备通信。第二个更根本的解法是使用WSL2的mirror网络模式在.wslconfig里加[wsl2] networkingModemirror之后执行wsl --shutdown再重新进入WSLWSL2会共享Windows的网络接口IP地址与Windows主机一致组播、广播和外连都变得跟原生进程一样。这个方式对ROS2多机通信效果很好也是我目前主力使用的方案。6.2 Windows防火墙拦住了WSL进程跨网段通信失败在默认NAT模式下你可能会遇到另一个现象WSL里的ROS2节点能往局域网发数据但局域网另一端收不到或者在Windows宿主机上跑wsl -l -v能看到发行版但其他机器连不上WSL里的ROS2服务。很多时候是Windows防火墙拦住了WSL的虚拟交换机流量。WSL通过vEthernet (WSL)这块虚拟网卡和外部交互默认情况下Windows防火墙会对这个网卡应用入站拦规则。你可以去“Windows Defender防火墙 → 允许应用通过防火墙”里面确认或者更省事的方式是直接在高级安全里放行vEthernet (WSL)的入站连接。坦白讲如果只是自己开发调试没必要把防火墙搞得千疮百孔。我建议在mirror网络模式下做跨机器通信因为这时WSL里的程序走的就是Windows主机的网络栈防火墙规则和普通Windows程序一致很好理解也不会有虚拟网卡跳来跳去的奇奇怪怪问题。6.3 导入发行版后默认用户变成root随手解决用wsl --import方式迁移过发行版的人都会遇到这个问题重新进去之后直接是root用户~变成了/root原来安装时创建的普通用户还在但不再自动登录。我当时第一反应是重新创建一个用户后来发现WSL有一个发行版专属命令可以设置默认用户。如果你装的是Ubuntu-22.04这个发行版在Windows PowerShell里执行ubuntu2204 config --default-user yourname如果发行版的命令名不叫这个可以先跑wsl -l查看发行版的启动命令名。也有一个不依赖发行版命令的通用办法就是修改/etc/wsl.conf[user] defaultyourname然后wsl --shutdown再重新进入。两个方法都行但注意修改wsl.conf对root用户也生效改完重新进入就自动切到普通用户了。用root开发ROS2虽然也能跑但后面产生的文件所有权限都是root开VS Code和调试时会有各种权限问题建议尽早改回来。6.4 版本不对导致安装失败Ubuntu 24.04别硬装Humble最后讲一个大家很容易踩的坑就是在错误的Ubuntu版本上安装ROS2。如果你装的是Ubuntu 24.04却照着22.04的教程去装ros-humble-desktop你会发现apt里根本找不到这个包。这不是源配置错误而是Humble的二进制包只发布了针对jammy22.04的版本不提供24.04noble的构建。Ubuntu 24.04只能用Jazzy命令是sudo apt install ros-jazzy-desktop源里的版本代号是noble如果之前的ros2.list源还在直接执行sudo apt update后安装ros-jazzy-*即可。所以我一直强调装系统之前先确定Ubuntu版本再倒推ROS2版本。如果你想用Humble内容和资料最丰富就老老实实装Ubuntu 22.04如果你想用最新Ubuntu就接受Jazzy的生态现状。别到最后一步才发现版本不匹配白折腾半天。最后再分享一个实际使用的小技巧WSL2的虚拟磁盘会自己增长但不会自动缩水你卸载了一堆包之后ext4.vhdx还是那么大。发现C盘空间紧张的时候可以在PowerShell里执行wsl --shutdown diskpart # 选中虚拟磁盘文件后执行 compact vdiskdiskpart里的具体操作是select disk找到vhdx挂载的虚拟磁盘如果没有挂载就先mount再找到对应的volume并执行shrink。或者更简单一点用WSL目录里的ext4.vhdx直接执行Optimize-VHD如果你有Hyper-V管理模块。这个操作能把空洞回收C盘会多出几个GB。我在WSL里把ROS2从装到日常开发用了很长一段时间整体体验超出我的预期。如果你也想在Windows上低成本把ROS2跑起来别犹豫按这套流程走一遍。中间遇到卡点回看前面对应的章节大概率能直接绕过我踩过的坑。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询