目录
前言:
刚开始安装win10时,发现win10自带 linux子系统。由于之前在win系统下使用VMware虚拟机linux时,体验不太顺畅,主要是文件共享、网络配置以及操作反应慢,且窗口大小问题。因此尝试使用WSL系统,刚开始使用时,感觉非常不错。主要的优点有一下几点:
- 配网简单,启用安装好WSL后,不需要配置网络环境,就可以直接上网。
- 文件共享方便,WSL下,可轻松访问win下的所有磁盘内容,在"/mnt/" 目录下就是对应的各个磁盘。
- linux系统内的文件查找方便,由于linux的文件都在C盘,大致路径如下所示,为linux的跟目录,可使用everthing工具非常方便快捷的查找系统中的文件。
C:\Users\Administrator\AppData\Local\Packages\
CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs
- 系统操作灵敏,默认的终端环境不太友好,可使用ssh远程登陆工具登陆,反应比虚拟机中要快。
使用一段时间后,总结一下WSL的缺点:
- nfs 文件服务有很多问题。
- 在WSL上使用buildroot 编译程序时,由于工程较大,需要编译和下载很多的东西,一运行编译脚本就会导致主机很卡。这个原因还不太清楚,估计时WSL 运行时,可完全使用主机的所有CPU资源,导致主机使用也很卡。
- SYSV IPC 进程间通信问题。 -- https://stackoverflow.com/questions/45469650/error-while-building-rootfs-system-for-raspberry-pi-3-using-buildroot-lack-of
- 很多正常的问题解决方式,在WSL上解决方式不一样。比如文章后面介绍的64位系统上运行32位程序的问题。这个排除了很长一段时间才找到解决方法,晚上说的很多方法对于虚拟机和一般的linux是可行的,但对WSL不生效。类似的问题可能会很多。
- 其他问题待发现。。。
但在进行实际开发过程中,遇到的问题较多,本文主要作用在于记录我在使用WSL 实际开发中的问题以及对应的解决办法,方便以后查找,同时也希望能给使用WSL开发的朋友们也一些帮忙。
WSL 官方帮助文档: https://docs.microsoft.com/zh-cn/windows/wsl/troubleshooting
问题记录:
1. ubuntu 64位系统上运行32位程序
可参考该文档的配置:https://www.jianshu.com/p/3df082840b40。
在网上找了很多资料都不行,这个可能时WSL和一般的linux不一样的地方。
怎样判断你的系统是多少位的?
方法1: 终端敲命令: getconf LONG_BIT
方法2:uname -a
怎样看linux 程序是多少位的?
file + 文件:
2. WSL 不支持 SYSV IPC 问题
实际使用buildroot工具编译程序时,出现一下报错,可参考本链接。
fakeroot, while creating message channels: Function not implemented
This may be due to a lack of SYSV IPC support.
修改buildroot->fs目录下的common.mk 文件,如下所示:
# 将以下
PATH=$$(BR_PATH) $$(HOST_DIR)/bin/fakeroot -- $$(FAKEROOT_SCRIPT)
# 修改为:
if [ `uname -r | grep "Microsoft"` ] ; then \
cp -f `which fakeroot-tcp` $$(HOST_DIR)/bin/fakeroot ; fi
未完,待续...