• wsl2安装百度apollo及其基本配置


    一、 wsl2的开启

    1. 首先 WSL2 gui 需要Windows 11 Build 22000版本以上才支持
    2. 利用管理员权限打开PowerShell 执行
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
    
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    
    Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
    

    执行后重启计算机

    1. 更新wsl内核

    https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi获取WSL2 Linux内核更新包并运行

    或者

    wsl --update //尝试更新
    
    1. 切换成wsl2
    wsl --set-version Ubuntu-18.04 2 //镜像名字需要和已安装的一致
    
    1. 设置默认版本
    wsl --set-default-version 2
    
    1. 查看状态
    wsl -l -v
    #输出
    Name              State            Version
    Ubuntu            Stopped          2
    

    二、Ubuntu的安装(Linux发行版安装)

    ​ 微软商店搜索Ubuntu下载即可,打开下载好的Ubuntu,系统初始化输入用户名和密码

    三、配置Ubuntu

    1. 换国内源  
    
    //备份list文件
    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
    //修改list文件
    sudo vim /etc/apt/sources.list
    

    ​ 删除所有内容替换下面内容(选一)(可在vim的命令模式下,使用gg将光标移到文件首行,使用dG命令清空文件)

    ​ 阿里云

    deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
    

    ​ 中科大

    deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
    deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
    deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
    deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
    deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
    deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
    deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
    deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
    deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
    deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
    

    ​ 清华

    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
    deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
    deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
    deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
    deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
    deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
    

    ​ 华为

    sudo sed -i "s@http://.*archive.ubuntu.com@http://mirrors.huaweicloud.com@g" /etc/apt/sources.list
    sudo sed -i "s@http://.*security.ubuntu.com@http://mirrors.huaweicloud.com@g" /etc/apt/sources.list
    
    1. 更新软件列表
    sudo apt-get update
    sudo apt-get upgrade
    
    1. 解决中文乱码

    ​ (1) 安装相关包

    sudo apt install language-pack-zh-hans
    sudo dpkg-reconfigure locales #这一步要选择en_US.UTF-8和zh_CN.UTF-8, 并且zh_CN.UTF-8为默认语言
    sudo apt install fontconfig
    

    ​ (2) 安装Windows字体

    <?xml version="1.0"?>
    <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
    <fontconfig>
        <dir>/mnt/c/Windows/Fonts</dir>
    </fontconfig>
    

    或者复制windows的字体到/usr/share/fonts/

    sudo cp -r /mnt/c/Windows/Fonts /usr/share/fonts/windows
    

    ​ (3) 刷新字体缓存

    fc-cache -f -v
    

    ​ (4) 重启 wsl 即可

    wsl --shutdown
    
    1. 输入法设置(待定)

      (1) 安装fcitx

    sudo apt install fcitx dbus-x11 im-config fcitx-sunpinyin
    

    (2)编辑/etc/locale.gen文件

    sudo vim /etc/locale.gen
    # 找到 # zh_CN.UTF-8 这一行,取消注释
    zh_CN.UTF-8
    

    (3) 编辑~/.profile文件

    export GTK_IM_MODULE=fcitx
    export QT_IM_MODULE=fcitx
    export XMODIFIERS=@im=fcitx
    export DefaultIMModule=fcitx
    fcitx-autostart &>/dev/null
    

    (4) 刷新~/.profile 或者wsl --shutdown

    source ~/.profile
    

    fcitx 默认输入法切换快捷键是ctrl+space,使用时须先关闭主机输入法

    1. 设置wsl2的cpu和内存

    ​ 按下Windows + R 键,输入%UserProfile%并运行进入用户文件夹,新建文件 .wslconfig

    [wsl2]
    memory=16GB      #内存最大值
    swap=32GB        #虚拟内存最大值
    processors=4   #cpu核最大值
    localhostForwarding=true
    

    ​ 然后运行cmd,输入 wsl --shutdown 来关闭当前的子系统,重新运行bash进入子系统

    1. 一些gui界面
    sudo apt install Nautilus #Nautilus 文件管理
    sudo apt install firefox #firefox 浏览器
    sudo apt install gedit #gedit 文本编辑器
    sudo apt install stacer #stacer linux任务管理器
    sudo apt install timeshift #timeshift linux备份软件
    sudo timeshift-gtk #timeshift 的运行指令
    

    四、备份还原

    1. 查看已安装的Linux发行版
    $ wsl -l --all -v
    
    1. 导出Linux发行版tar文件到D盘
    $ wsl --export Ubuntu-18.04 d:/wsl-ubuntu-18.04.tar
    
    1. 注销当前Linux发行版
    $ wsl --unregister Ubuntu-18.04
    
    1. 重新导入并安装WSL2到D盘
    $ wsl --import Ubuntu-18.04 d:/wsl-ubuntu-18.04 d:/wsl-ubuntu-18.04.tar --version 2
    
    1. 设置默认登录用户为安装时用户名
    $ ubuntu1804 config --default-user USERNAME
    

    五、文件访问

    ​ 在文件夹路径中或者win+R输入

    \\wsl$
    

    wsl访问window

    ​ (1) cd /mnt/盘符 例如进入D盘:

    cd /mnt/d
    

    ​ (2)在对应目录下执行

    explorer.exe .
    

    六、vscode连接

    1. vscode下载Remote - WSL 扩展
    2. 在Linux发行版(Ubuntu)的命令行中输入code .即可在Windows端启动VS Code并自动远程连接到WSL2中。如果首次启动VS Code还会在WSL2中安装一些必要依赖包。
    3. vscode中的终端就是wsl2中的终端

    七、安装docker

    ​ 1.安装Docker Desktop(方便,但是后续需要配置一下端口)

    ​ 点击Install Docker Desktop on Windows | Docker Documentation下载Docker Desktop,专门为wsl2开发的工具,直接默认选项安装完成即可。

    ​ 安装完成后在设置中 Resources-> WSL INTEGRATION 选中自己下载的linux发行版。

    1. 在Ubuntu中安装docker
    curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
    //执行安装时会提示建议安装Docker Desktop,可以忽略,等一下就会自动安装。
    //WSL DETECTED: We recommend using Docker Desktop for Windows.
    //检验安装结果
    docker -v
    
    
    #安装docker-compose
    sudo apt install docker-compose  //安装命令
    docker-compose -v           //验证安装
    #启动docker
    sudo service docker start
    

    八、gitee设置

    1.访问 生成/添加SSH公钥 - Gitee.com

    ssh-keygen -t ed25519 -C "2972795779@qq.com"  #连按三次回车
    cat ~/.ssh/id_ed25519.pub
    
    1. 复制公钥到gitee的仓库进行公钥部署 SSH公钥 - Gitee.com

    2. 首次使用确认

    ssh -T git@gitee.com
    

    九、拉取apollo

    1. 第一次进行编译(内存小于16的先看第二步)
    sudo bash docker.sh
    #进入docker
    cd apollo
    sudo bash docker/scripts/dev_into.sh
    #编译
    bash apollo.sh build
    #开启dreamview
    bash scripts/bootstrap.sh
    #关闭dreamview
    bash scripts/bootstrap.sh stop
    
    1. 内存不够临时开启swap(出现internal compiler error:killed
    #free -m 查看内存低于16g扩大swap交换
    sudo dd if=/dev/zero of=/swapfile bs=1G count=8
    sudo mkswap /swapfile  #通知系统挂载swap;
    sudo swapon /swapfile  #通知系统启用swap;
    sudo swapon -s  #查看信息;
    #移除swap
    sudo swapoff /swapfile && sudo rm /swapfile
    
    1. 打开DreamView 交互系统
    cd ~/apollo 
    #运行docker
    bash docker/scripts/dev_start.sh
    #进入
    sudo bash docker/scripts/dev_into.sh
    #启动dreamview
    bash scripts/bootstrap.sh
    #关闭dreamview
    bash scripts/bootstrap.sh stop
    #如果在wsl2中访问直接打开localhost即可,主机环境打开需把localhost切换成wsl地址,该地址是动态的,每次重启wsl会变#使用ifconfig 查看  eth0 的inet即wsl ip
    ifconfig
    
    1. 如果本地浏览器无法访问是因为docker Desktop不支持,进行如下操作或者安装linux版本docker
    由于 Docker Desktop for Windows 不支持主机网络驱动程序,在这种情况下,apollo docker 脚本将在您无法访问的隔离 netork 命名空间中创建主机网络。您可以查看官方文档:
    
    主机网络驱动程序仅适用于 Linux 主机,在 Docker Desktop for Mac、Docker Desktop for Windows 或 Docker EE for Windows Server 上不受支持。
    
    我使用端口映射来解决问题:
    
    修改 docker/scripts/dev_start.sh:
    将“--net host \ ”替换为“-p 8888:8888 \ ”
    
    修改脚本/引导.sh:
    将 DREAMVIEW_URL=“http://localhost:8888” 替换为 DREAMVIEW_URL=“http://0.0.0.0:8888"
    
    然后按照安装部分进行操作,您可以通过 http://${wsl2实例ip}:8888访问dreamview。
    在我的情况下,我的wsl2实例IP是172.20.88.30,所以我可以通过 http://172.20.88.30:8888/ 来访问Web服务
    
    
    我在Ubuntu里打开火狐使用http://0.0.0.0:8888可以访问,系统外仍不行
    

    附录

    docker.sh的内容

    #!/bin/bash
    
    function install_prepare()
    {
        sudo apt update 
        #sudo apt upgrade -y
        sudo apt install gcc g++ git vim curl make cmake gedit unzip cutecom can-utils net-tools -y
    }
    
    function install_docker() 
    {    
        sudo modprobe overlay
        sudo docker -v 1>/dev/null 2>&1
        if [ $? -eq 0 ]
        then
            id | grep "docker" 1>/dev/null 2>&1
            if [ $? -eq 0 ]
            then
                echo "docker is OK!"
                return 1
            else
                sudo gpasswd -a $USER docker  
                sudo usermod -aG docker $USER
                sudo systemctl restart docker
                echo "please reboot the computer and run the scripts again!"
                return 2
            fi
        else
            curl https://get.docker.com | sh && sudo systemctl --now enable docker
            sudo systemctl restart docker
            sudo gpasswd -a $USER docker  
            sudo usermod -aG docker $USER
            sudo systemctl restart docker
            sudo chmod 777 /var/run/docker.sock
            echo "please reboot the computer and run the scripts again!"
            return 3
        fi
    
        return 0
    }
    
    function clone_apollo()
    {
        cd ~
        git init
        git clone -b edu_sim_contest git@gitee.com:ApolloAuto/apollo.git
        cd ~/apollo
        bash docker/scripts/dev_start.sh -y
    }
    
    function main() 
    {
        install_prepare
        install_docker
        clone_apollo
        
        return 0
    }
    
    main "$@"
    
    
    折叠
  • 相关阅读:
    结构方程模型SEM、路径分析房价和犯罪率数据、预测智力影响因素可视化2案例...
    有目的的脉动调查:有效的员工参与度调查的 5 个考虑因素
    vscode搭建springboot开发环境
    Express:接口设置
    3DEXPERIENCE® DRAFTSIGHT® 新功能
    在EF Core中为数据表按列加密存储
    前后端分离:停车管理系统(Java后端,vue前端)
    redis stream 实现消息队列
    Vue中如何实现动态改变字体大小
    如何解决网站被攻击的问题?
  • 原文地址:https://www.cnblogs.com/yitaiyang/p/16446875.html