【问题标题】:cant run electron on win10 ubuntu subsystem无法在 win10 ubuntu 子系统上运行电子
【发布时间】:2020-12-21 19:00:24
【问题描述】:

我有一个电子项目的 repo,我之前可以在 ubuntu 子系统中运行,我现在在一台新电脑上并且遇到了问题。我已经运行了 npm i,但是当我运行 electron . 时,我得到了这个错误:

martin@DESKTOP-URPCCBK:/mnt/c/Users/marti/Documents/projects/electron-upload-manager$ npm start

> drag-and-drop@1.0.0 start /mnt/c/Users/marti/Documents/projects/electron-upload-manager
> electron .

[5094:0907/143024.016724:FATAL:setuid_sandbox_host.cc(158)] The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that /mnt/c/Users/marti/Documents/projects/electron-upload-manager/node_modules/electron/dist/chrome-sandbox is owned by root and has mode 4755.

所以我跑了

sudo chown root /mnt/c/Users/marti/Documents/projects/electron-upload-manager/node_modules/electron/dist/chrome-sandbox

sudo chmod 4755 /mnt/c/Users/marti/Documents/projects/electron-upload-manager/node_modules/electron/dist/chrome-sandbox

然后再次运行 npm start,得到:

martin@DESKTOP-URPCCBK:/mnt/c/Users/marti/Documents/projects/electron-upload-manager$ npm start

> drag-and-drop@1.0.0 start /mnt/c/Users/marti/Documents/projects/electron-upload-manager
> electron .

[5120:0907/143308.127280:FATAL:setuid_sandbox_host.cc(158)] The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that /mnt/c/Users/marti/Documents/projects/electron-upload-manager/node_modules/electron/dist/chrome-sandbox is owned by root and has mode 4755.

我按照错误的要求做了,但仍然得到错误?我尝试删除我的 node_modules,使用 npm i 重新安装,运行 apt-get update,全局安装电子,但仍然出现此错误

【问题讨论】:

  • 嗯,你在drvfs上启用文件权限了吗?
  • 什么是drvfs?
  • drvfs 是一个文件系统,可以让 wsl/windows 在 windows 文件上进行协作。

标签: node.js npm electron suid


【解决方案1】:

您需要在 DrvF 上启用元数据。把这个放在/etc/wsl.conf:

[automount]
options = "metadata"

在此之后,chmod/chown 应该适用于 windows 文件。有关详细信息,请参阅此Microsoft blogpost

【讨论】:

  • 我这样做并重新启动了我的计算机,但没有任何影响
  • 再次尝试 chown/chmoding。要验证它是否具有正确的权限,您可以ls -la 该文件。
  • 我想这个答案是对的,我正在尝试重新安装电子、设置权限sudo chown root:$USER ./node_modules/electron/dist/chrome-sandboxsudo chmod 4755 ./node_modules/electron/dist/chrome-sandbox 的组合。现在我有一个不同的错误Failed to move to new namespace: PID namespaces supported, Network namespace supported, but failed: errno = Permission denied /home/junior/myapp/node_modules/electron/dist/electron。对于“电子”:“^10.1.1”,节点 10.19.0,npm 6.14.4
【解决方案2】:

试试这个命令。这是一种解决方法:

sudo sysctl kernel.unprivileged_userns_clone=1

【讨论】:

  • 这对我有用。请您解释一下它是如何工作的!
【解决方案3】:

我只是在命令提示符下运行它,让它在那里工作正常

【讨论】:

    猜你喜欢
    • 2018-06-12
    • 2019-08-26
    • 2013-09-04
    • 1970-01-01
    • 2020-07-02
    • 1970-01-01
    • 2018-06-09
    • 2020-12-21
    • 1970-01-01
    相关资源
    最近更新 更多