wsl已知问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wsl已知问题相关的知识,希望对你有一定的参考价值。

参考技术A npm全局安装报错,无法用npm install -g进行全局安装

内存泄漏,wsl2的内存会越用越大,无法回收

跨文件系统的文件访问和传输速度低下(跨文件系统指的是win中的文件(在wsl就是/mnt/下的文件)与wsl中的文件(wsl中非/mnt/下的文件)

热重载只能检测wsl中的文件变化,也就是说如果项目是在/mnt/下的话就无法热重载,保存修改之后必须重新npm run dev

以上问题直至目前为止(20201210)找不到解决方案

我也不知道我一个写前端的到底是哪根筋抽了要去用Linux。。。。

更新:第一个问题貌似有解决方案(https://github.com/Microsoft/WSL/issues/1375里面edjroot的方案):

wsl下运行sudo chown -R $(whoami) /mnt/c/Users/edjroot,(edijroot换成自己Windows的用户名),然后再sudo npm install -g

WSL + Docker 文件权限问题

【中文标题】WSL + Docker 文件权限问题【英文标题】:WSL + Docker file permission issues 【发布时间】:2021-12-29 20:08:54 【问题描述】:

我在 WSL 环境中使用 docker-compose。目前 Wordpress 在 docker composer 中运行。 Projects 文件夹中的所有文件都位于 www-data 组和用户中,这允许 Wordpress 创建所有内容并上传插件。 但是一旦我想编辑文件,vs-code就会出现文件权限错误。

切换用户和 www-data 组允许 vs-code 编辑文件,但 Wordpress 在上传插件或删除插件/文件时出现权限错误。

wsl.conf 看起来像这样:

# Enable extra metadata options by default
[automount]
enabled = true
root = /windir/
options = "metadata,umask=22,fmask=11"
mountFsTab = false

# Enable DNS – even though these are turned on by default, we'll specify 
here just to be explicit.
[network]
generateHosts = true
generateResolvConf = true

在 Ubuntu-20.04 中使用 Win 11 - 内核:5.10.60.1 和最新的 docker 版本。

编辑: 不过,当我想在 Wordpress 中编辑内容、上传媒体或上传插件时,我需要 sudo chown -R www-data *,如果我想在 VScode 中编辑文件,我需要 sudo chown -R <username> *

【问题讨论】:

【参考方案1】:

我在本地 WordPress 开发设置中遇到了类似的问题。 (Windows 10 + WSL2),这里是 git repo 的链接: https://github.com/dorumarginean/wordpress-docker

为了上传图片/插件,我像你提到的那样更新了所有者,为了使用 Visual Studio Code 写入权限,我在我的 docker-compose.yml 中编辑了 PHP 容器。

用户:“1000:1000”

【讨论】:

【参考方案2】:

当我遇到类似问题时,我会这样做: 创建一个包含 www-data 和运行编辑器的用户的新组。

现在让我们呼叫您的本地用户myuser 和您的新组mygroup

首先你需要创建一个新组

sudo addgroup mygroup

将网络服务器用户和您的用户都添加到这个新组中

sudo adduser myuser mygroup
sudo adduser www-data mygroup

现在将网站目录的所有权授予这个新组。 cd 到你网站的目录,然后

sudo chown -vR :mygroup .

向组授予写入权限

sudo chmod -vR g+w .

检查以确保更改生效,ls -ld 查看文件的所有者和权限,groups myuser www-data 查看两个用户是否确实在 mygroup

然后确保重新初始化用户环境,以便更新来自新组的权限

newgrp - mygroup

您可能需要注销并重新登录才能在 GUI 中更新用户环境。

【讨论】:

以上是关于wsl已知问题的主要内容,如果未能解决你的问题,请参考以下文章

WeGame导致WSL无法监听端口问题

WSL2:为啥我必须在重启 PC 后关闭 WSL 才能重启 WSL

WSL2 X-Server 网络问题

WSL + Docker 文件权限问题

vscode remote wsl 的NoPermissions permission denied问题

WSL2 - 仅在 \\wsl$\ 挂载点从 Windows 访问时,Linux 相关符号链接损坏 [关闭]