前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >wsl2开发环境搭建

wsl2开发环境搭建

作者头像
Heeler-Deer
发布2023-07-24 20:27:52
5990
发布2023-07-24 20:27:52
举报
文章被收录于专栏:HD-学习笔记

本篇内容主要涉及:

  1. windows安装wsl2以及wsl2安装Arch
  2. Arch搭建node/conda/java/flutter/c++等开发环境
  3. Android Studio使用连接windows的手机设备

wsl2安装

为什么是wsl2

nvidia对linux的相关驱动已经越来越完善,越来越多的人使用linux/mac系统作为日常开发环境——而windows相较unix系系统,本身的快捷键、命令行等相关支持并不完善,所幸经过几年的完善,wsl2已经发展的比较完善了,而使用wsl2的优点在于:存在于wsl2的整个环境都可以打包,迁移方便,可以轻松管理开发环境。在我看来,这是wsl2最大的优点,尽管wsl2目前的gui程序还存在一些问题,但作为个人开发者,wsl2已经可以满足大多数开发场景了——你不需要像使用纯linux一下配置驱动、配置各种应用程序(尽管有些程序确实比windows下相应的程序好)

安装wsl2

可以参考:wsl2+archlinux+kde+tigerVNC图形化配置: 漫长的折腾以后完成了wsl2下archlinux的安装和kde桌面的图形化显示。以此记录。 (gitee.com)

在微软商店中,直接搜索wsl安装即可获得wsl1,这个时候,我们以管理员模式打开powershell,输入:

1

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

重启wsl,再次输入:

123

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestartdism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestartwsl --set-default-version 2

即可设置为wsl2.

这个时候,在微软商店中安装arch即可。注意,我们不需要为wsl2配置图形化界面,只需要安装好中文即可。按照我的体验,不建议使用vnc作为图形界面,不如直接终端启动wsl2的图形化程序。

wsl的迁移与基础配置

由于Arch上要装许多开发环境,占用空间越来越大,建议将wsl迁移到其他盘,可以参考WSL的安装和位置迁移 - 知乎 (zhihu.com)

首先powershell中关停wsl:

1

wsl --shutdown

之后导出:

1

wsl --export Arch D:/export.tar

最后注销原来的虚拟机器卸载并导入:

12

wsl --unregister Archwsl --import Arch D:\export\ D:\export.tar --version 2

配置代理

首先假设你的host机器能够科学上网,且在127.0.0.1:7890开了端口。那么我们在wsl2里面需要做的就是把流量引导到windows中,而我们就需要获取windows的ip:

1

export hostip=$(cat /etc/resolv.conf |grep -oP '(?<=nameserver\ ).*')

之后,可以通过命令设置https_proxy以及http_proxy的值,注意引号中的内容需要根据自己使用的协议选择http或者socks5

12

export https_proxy="http://${hostip}:7890";export http_proxy="http://${hostip}:7890";

参考 代理上网,可以在.bashrc/.zshrc中添加 :

123

export hostip=$(cat /etc/resolv.conf |grep -oP '(?<=nameserver\ ).*')alias setss='export all_proxy="socks5://${hostip}:7890";'alias unsetss='unset all_proxy'

这个时候,尽管我们可以通过setss让终端科学上网,但无法让wsl2的其他程序上网,这里可以使用proxychains4,配置后即可通过proxychains4 program来让程序也科学上网。

Arch开发环境搭建

建议先使用pacman安装yay,之后使用yay安装其他软件即可:

123456789101112

# 初始化## 设置root密码passwdpacman-key --initpacman-key --populatepacman -S archlinuxcn-keyring # 更新pacman -Syyu # 安装基本软件pacman -S base base-devel git curl wget zsh yay neofetch net-tools dnsutils inetutils

Android Studio相关配置

首先,在wsl2中使用gui程序,有时是会直接卡死的,因此要做好心理准备😃

安装的android studio的话,非常简单,官网下载包就行,执行文件在./AndroidStudio/bin下的studio.sh。我的做法是将该路径添加到/etc/profile的path环境变量中,这些source /etc/profile后就可以在任意路径执行studio.sh了。

Android Studio的使用和windows/mac基本一致,不在详述。

关于安卓代码调试,在我的环境中,Android Studio不支持创建虚拟设备,因此只能选择物理真机调试,此时需要做一个网络端口转发才能让wsl2的android studio连接到物理机。

首先,windows安装adb并将其添加到环境变量中,将手机连接后,在powershell中执行

1

adb devices

可以看到连接windows的设备。

此时,在wsl2的arch中安装adb,执行:

1

adb devices

这个时候应该看不到手机(该终端未执行setss时)

而为了让wsl2能够看到手机,我们需要主机的ip,由于在前述中,我们设置了hostip用于保存windows的ip,因此此时我们可以通过执行:

12

setssadb devices

来看到手机,或者通过修改proxychains4的配置文件,执行:

1

proxychains4 adb devices

来看到手机。而要想让Android Studio在device manager中看到手机,只需要执行:

1

proxychians4 studio.sh

即可。注意,这里不推荐手动填写配置AS的代理设置,通过proxychains4更加方便。

这里可能会出现问题,由于使用了proxychains4做代理,笔者在开发flutter项目时,发现尽管通过proxychains4启动Android Studio可以使其识别设备,在编译运行安卓时却会由于代理混乱导致无法编译成功,报错类似:

1

A new daemon was started but could not be connected to: pid=DaemonInfo{pid=4632, address=[85bbb456-d4ea-4e7e-9e29-5b7f8dc768e8 port:35581, addresses:[/127.0.0.1]], state=Busy, lastBusy=1687741775718, context=DefaultDaemonContext[uid=dcfbca72-8331-4ca2-a9b9-8c64eabd7832,javaHome=/home/heelerdeer/Desktop/android-studio/jbr,daemonRegistryDir=...

目前我的解决方案是,不开代理启动studio.sh,编译生成apk,在另一个终端开启代理,使用adb install test.apk解决。

调试

关于如何在wsl2调试安卓,我目前的解决办法与上文刚好相反。首先,手动在命令行编译成安卓apk(不使用代理),然后使用adb安装到手机上(使用代理运行adb),在android studio的logcat查看运行的日志(使用代理打开android studio)。即在windows下打开一个arch终端,手动编译成apk,

这时候在使用代理开启adb,安装apk,并使用代理开启android studio(使其可以扫描到手机),打开其logcat,输入对应的安装包包名,即可看到手机上app的运行日志

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023年6月25日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • wsl2安装
    • 为什么是wsl2
      • 安装wsl2
        • wsl的迁移与基础配置
        • Arch开发环境搭建
        • Android Studio相关配置
          • 调试
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档