1、包管理器问题
有很多人在拿到一个全新的Linux环境,会下意识地执行yum update
,apt update && apt upgrade
,然而我不建议你在WSL中这么做。
我第一次安装Ubuntu后,执行了升级,在随后的使用中很快遇到了离谱的问题:
dpkg因为依赖问题无法使用,然而唯一解决方法是使用aptitude修复依赖,但是aptitude只能通过apt安装,apt又因为dpkg有问题而无法使用。
遇到这么糟心的问题,我决定直接删除重开,这又浪费了我几个小时。
因此,我建议直接先安装aptitude,这样无论是否遇到问题都有这样一个解决方案。
2、端口冲突问题
在上一篇文章中,我提到要注意端口冲突。
但是WSL的端口冲突不像单纯的Linux/Windows环境,会直接报致命错误然后退出。WSL如果和Windows使用了相同端口,将不会有任何提示。
例如:SSH Server For Windows使用了22端口,WSL的SSH又使用了22端口,这并不冲突,但是访问22端口只能访问到SSH Server For Windows。
因此,当出现访问正确的端口,但返回结果不匹配时,可以尝试排查此问题。
3、Systemd问题
WSL并不是完整的Linux系统,所以会出现一些很奇怪的错误,例如systemctl
完全无法使用。
因此,请将systemctl
替换为service
。注意:两个命令的参数顺序有所不同,例如:
1 | systemctl start ssh service ssh start |
4、软件下载安装问题
因为无法获得系统发行版(或返回的是Microsoft),因此使用pip
下载某些软件(例如:supervisor)会报错,没有对应发行版的版本。
因此,建议直接使用apt安装:
1 | sudo apt install supervisor |
5、Windows防火墙问题
在默认情况下,使用WSL安装软件(例如OpenSSH,Python)会弹出Windows防火墙,询问是否允许软件使用网络。
当直接使用cmd/powershell时,可以直接点击允许访问,但是如果使用SSH连接,往往就不容易注意到这个问题。
因此,当安装软件卡住时,可以远程连接到桌面看看是否有弹出Windows防火墙,或直接禁用。
WSL教程(二)避坑指南
评论