【2023】Windows11安装Linux子系统(Ubuntu22.04LTS)+安装ROS

目录

一、准备工作

二、安装Ubuntu 22.04.1 LTS

1. 下载Ubuntu 22.04.1 LTS

2. 移动到非系统盘

三、启动Ubuntu遇到的报错及解决方案

四、换源

五、安装ROS

1. 设置编码

2. 添加源

3. 安装ROS

4. 设置环境变量

5. 测试



一、准备工作

控制面板——程序——程序和功能——启动或关闭Windows功能

 

开启如图所示三项重启电脑

二、安装Ubuntu 22.04.1 LTS

1. 下载Ubuntu 22.04.1 LTS

打开Microsoft Store,搜索并下载Ubuntu 22.04.1 LTS

(安装Windows Subsystem for Linux前一定要先安装Ubuntu,否则移动Ubuntu位置会报错)

2. 移动到非系统盘

ps:默认安装在C盘,可以移动安装位置,建议移动到其它盘

三、启动Ubuntu遇到的报错及解决方案

报错:

WslRegisterDistribution failed with error: 0x800701bc

解决方案:

下载安装适用于 x64 计算机的最新 WSL2 Linux 内核更新包

下载链接

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

安装后

报错:

adduser: Please enter a username matching the regular expression configured

via the NAME_REGEX[_SYSTEM] configuration variable.  Use the `--force-badname'

option to relax this check or reconfigure NAME_REGEX.

解决方案:

把大写的首字母,改成小写即可

ps:输入的密码不显示

四、换源

Ubuntu默认的软件源在国外,可能会造成下载软件卡顿,因此需要换源,这里我选择更换为阿里源。

1.双击Ubuntu22.04 LTS图标,在命令行中输入

# 备份原来的软件源

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

# 编辑软件源

sudo nano /etc/apt/sources.list

2.将原来的内容替换为阿里源

deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse

Ctrl + O保存, enter, Ctrl + X退出

3.更改后

4. 更新升级软件

在Ubuntu命令行中依次执行如下命令:

# 更新软件源

sudo apt-get update -y

# 升级所有软件

sudo apt-get upgrade -y

五、安装ROS

1. 设置编码

sudo apt update

sudo apt install locales

sudo locale-gen en_US en_US.UTF-8

sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8

export LANG=en_US.UTF-8

2. 添加源

1.通过检查此命令的输出,确保已启用Ubuntu Universe存储库。

apt-cache policy | grep universe

正常情况

​ 

若没有看到像上面这样的输出行,依次执行如下命令:

sudo apt install software-properties-common

sudo add-apt-repository universe

2.继续执行如下命令:

sudo 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 $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

正常情况

报错:curl: (7) Failed to connect to raw.githubusercontent.com port 443 after 0 ms: Connection refused

解决

sudo nano /etc/hosts

加上一行

199.232.28.133 raw.githubusercontent.com

Ctrl + O保存, enter, Ctrl + X退出

3. 安装ROS

sudo apt update

sudo apt upgrade

安装桌面版

sudo apt install ros-humble-desktop

安装时间较长,慢慢等待

4. 设置环境变量

source /opt/ros/humble/setup.bash

echo " source /opt/ros/humble/setup.bash" >> ~/.bashrc

5. 测试

通过以下命令启动一个数据的发布者节点:

ros2 run demo_nodes_cpp talker

启动另一个终端,通过以下命令启动一个数据的订阅者节点

ros2 run demo_nodes_py listener

### 配置两台 Linux 服务器上的 Samba 实现高可用性热备方案 #### 构建双机热备份架构 为了构建一个可靠的Samba服务热备份系统,建议采用类似于Linux-HA Heartbeat的解决方案。在这个体系结构下,Server A和Server B共同组成了一组互为冗余的服务器群集,其中一台担任主要角色而另一台则处于待命状态准备接管任何可能出现的服务中断情况[^1]。 #### 安装必要的组和服务 确保每台机器都已经正确安装并配置了Heartbeat以及其他依赖项如Corosync或Pacemaker等集群资源管理器。这些工具能够帮助监控点健康状况并且自动执行故障转移过程中的各项任务。 #### 设置共享存储机制 对于Samba来说,最为重要的一环就是数据同步问题。可以通过网络附加存储(NAS)或者分布式文系统(DFS)等方式建立统一的数据源供两个实例访问。这一步骤旨在防止因本地磁盘差异而导致的数据不一致现象发生。 #### 编写心跳检测脚本与资源配置文 编写适当的心跳监测逻辑来判断当前活动端点的状态变化,并据此调整相应的IP地址绑定关系和其他必要参数。同时定义好当主服务器出现问题时备用服务器应采取的动作序列,在此期间保持业务连续性和用户体验不受影响。 #### 测试切换流程的有效性 完成上述准备工作之后,务必进行全面的功能验证测试以确认整个系统的稳定可靠程度。模拟各种异常场景下的表现形式,观察是否能顺利实现无感知迁移目标。 ```bash # Example of enabling and starting the necessary services on both nodes. systemctl enable pacemaker corosync pcsd samba smb nmb winbind systemctl start pacemaker corosync pcsd samba smb nmb winbind ``` #### 自动化部署与维护策略 考虑到长期运维成本和技术难度因素的影响,尽可能利用Ansible、SaltStack之类的自动化平台来进行批量化的初始化设定工作。这样不仅提高了效率还降低了人为失误的风险概率。
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

QomolangmaH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值