• WSL2 打造顶级开发环境


    背景

    Linux 桌面容易崩溃,通常没有主流的办公软件

    Mac 刚换ARM架构有些兼容性问题,《不能玩游戏,刘海太丑》

    Windows 啥都能干,但是powershell 太复杂配置个环境变量都费劲,国内服务器一般使用Linux,powershell 操作起来不太习惯,一些语言都是从类Unix平台移植过来的,运行速度和编译速度没有 Linux 快

    WSl介绍

    微软近些年一改从前对开源的态度,开始积极拥抱开源,然后就在windows上内置了一个linux子系统简称wsl

    wsl1 是一个仿真的系统不支持某些内核特性,比如 namespace,唯一的优点就是跨文件系统访问速度几乎没有开销

    wsl2 是基于hyper-v技术的轻量级虚拟机,完整的 linux 内核,启动只需要几秒

    以下操作均在win11 22000下操作

    安装

    powershell(管理员)

    wsl --install

    该命令会自动启用子系统功能并安装ubuntu

    常用配置

    全局配置 

    配置文件 %UserProfile% .wslconfig

    [wsl2]
    # wsl虚拟机cpu核数
    processors=8
    
    # wsl虚拟机内存
    memory=4GB
    
    swap=1GB
    
    # 开启localhost 访问
    localhostforwarding=true
    
    # 关闭嵌套虚拟化
    nestedVirtualization=false

    分发配置

    配置文件/etc/wsl.conf

    [automount]
    # window 分区挂载文件权限掩码
    options = "metadata,umask=022,fmask=033"
    
    [interop]
    # 是否开启互操作,也就是在linux使用win命令
    enabled = true
    appendWindowsPath = true
    
    [boot]
    # 开机启动命令一些想开机启动的命令可以放进来
    command = sudo /etc/init.d/start.sh

    配置支持中文

    # 安装中文包
    sudo apt install language-pack-zh-hans -y
    # 勾选选en_US.UTF8 zh_CN.UTF8 并设置zh_CN.UTF8为默认
    sudo dpkg-reconfigure locales
    # 安装字体配置工具
    sudo apt install fontconfig # 拷贝windows字体
    sudo cp -r /mnt/c/Windows/Fonts /usr/share/fonts/windows # 或者安装文泉字体,感觉没有windows字体看着舒服
    sudo apt-get install fonts-wqy-zenhei
    # 刷新字体 fc
    -cache -f -v

     

    安装GUI应用

    sudo apt update
    
    # 安装常用软件
    sudo apt install gedit nautilus -y
    
    # 安装输入法
    sudo apt install fcitx fcitx-googlepinyin -y
    
    # 启动语言检查,可以完整一下中文环境
    sudo echo "sudo /etc/init.d/dbus start" >> /etc/init.d/start.sh
    sudo /etc/init.d/dbus start
    sudo gnome-language-selector
    
    # 安装edge浏览器
    curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
    sudo install -o root -g root -m 644 microsoft.gpg /usr/share/keyrings/
    sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/microsoft.gpg] https://packages.microsoft.com/repos/edge stable main" > /etc/apt/sources.list.d/microsoft-edge.list'
    sudo rm microsoft.gpg
    sudo apt install microsoft-edge-stable -y

    装好的应用会自动出现在windows的开始菜单,直接在开始菜单启动即可,除了分辨率有点不对,使用起来很流畅

     

    配置中文输入法

    wsl不支持systemd,要想自动启动fcitx 可以在 ~/.bashrc 加入

    export GTK_IM_MODULE=fcitx
    export XMODIFIERS=@im=fcitx
    export QT_IM_MODULE=fcitx
    
    if [ $(ps -ef |grep fcitx-dbus-watcher |wc -l) -eq 1 ]; then
      fcitx-autostart >/tmp/fcitx.log 2>&1
    fi

    打开 Fcitx 配置 (Ubuntu)

    改一下快捷键

     

     

     

    安装Docker

    # 安装docker
    sudo apt-get install \
        ca-certificates \
        curl \
        gnupg \
        lsb-release
    
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    
    echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
      $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
    sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io
    
    # 自动启动
    sudo echo "sudo /etc/init.d/docker start" >>/etc/init.d/start.sh

     

    设置固定IP

    powershell(管理员)

    netsh interface ip add address "vEthernet (WSL)" 192.168.128.254 255.255.255.0

    wsl

    sudo ip addr add 192.168.128.1/24 broadcast 192.168.128.255 dev eth0 label eth0:1
    
    # 开机自动设置
    sudo echo "sudo ip addr add 192.168.128.1/24 broadcast 192.168.128.255 dev eth0 label eth0:1" >>/etc/init.d/start.sh

    网络访问

    win 访问 wsl

    telnet localhost 3306

    wsl 访问 win

    telnet 192.168.128.254 3306

    win 局域网远程访问,假设你的局域网IP为192.168.1.1

    netsh interface portproxy add v4tov4 listenport=3306 listenaddress=192.168.1.1 connectport=3306 connectaddress=192.168.128.1
    
    # 远程主机
    telnet 192.168.1.1 3306

    环境变量配置

    • /u

    win 环境变量传入 linux,这个很好用,即使 wsl 不加载任何用户环境配置也会传入

    • /w

    linux 变量传入 win

    • /p

    相互转换win和linux路径

    •  /l

    相互转换win和linux路径列表

    IDE使用WSL

     VS Code

    打开WSL远程窗口

     

     

     Jetbrains 全家桶

    目前 (2022.1)Jetbrains 家的IDE基本上都支持WSL,下面演示一下怎么用Goland + WSL 进行Golang 开发

    下载sdk并配置环境变量

    cd /data
    wget  https://go.dev/dl/go1.18.1.linux-amd64.tar.gz
    tar -zvxf go1.18.1.linux-amd64.tar.gz

    环境变量推荐使用 WSLENV

    powershell

    [System.Environment]::SetEnvironmentVariable("GO111MODULE","on","User")
    [System.Environment]::SetEnvironmentVariable("GOPATH","\\wsl$\Ubuntu\home\zhangsen\go","User")
    [System.Environment]::SetEnvironmentVariable("ENV_NAME","dev","User")
    
    [System.Environment]::SetEnvironmentVariable("WSLENV","GOPATH/p:GO111MODULE/u:ENV_NAME/u","User")

    新建项目

     

  • 相关阅读:
    常见数据结构图文详解-C++版
    求单链表中环的起点,原理详解
    Qt Creator 整合 python 解释器教程
    Qt 共享库(动态链接库)和静态链接库的创建及调用
    qt creator 中的"提升为..."功能简介
    QT 操作 excel 教程
    网易2017校园招聘算法题c语言实现源码
    c语言版贪吃蛇小游戏
    mysql语法结构
    Spring MVC rest接收json中文格式数据显示乱码
  • 原文地址:https://www.cnblogs.com/37yan/p/16169564.html
Copyright © 2020-2023  润新知