gpt4 book ai didi

linux - 构建 Electron linux 发行版 : The SUID sandbox helper binary was found, 但未正确配置

转载 作者:行者123 更新时间:2023-12-03 12:23:58 27 4
gpt4 key购买 nike

我正在为 linux 生成 Electron 发行版。
这就是应用程序的构建方式
这就是 app 在 packge.json 中的构建方式

 "builderForLinx": "electron-packager --out linx64 --overwrite --platform linux --appname myApp --asar"  
这个应用程序结构 myApp -> myApp(linux 可执行文件), mian.js, resources -> myApp.asar
这给出了一个 linux 版本的 Electron 包。但是我必须运行以下命令才能运行该应用程序
sudo chmod +x ./myApp
sudo chown root chrome-sandbox
sudo chmod 4755 chrome-sandbox
实际上,我是从 tfs build artifact 获取该应用程序的,当我下载此应用程序时,我想直接运行 ./myApp。
这是我的 tfs 定义,我在 bash 中运行所有这些,而不是我的代理/构建机器是 Windows 机器。
#!/bin/bash 
cd "$(Build.ArtifactStagingDirectory)/myApp" ; pwd
chown <<username>> chrome-sandbox
chmod 4755 chrome-sandbox
注意:$(Build.ArtifactStagingDirectory) 是指向工件目录的 tfs 变量。
当我直接在 linux 机器上运行应用程序时,我看到了这个错误
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 /home/staff/kjeeva/licregsNew/v211/licensingclient/linx64/ClientSettings-asar/chrome-sandbox is owned by root and has mode 4755.
我不太熟悉 linux 环境,任何有关这方面的帮助或建议都会有很大帮助。

最佳答案

The SUID sandbox helper binary was found ...似乎是 Linux 中 Electron 框架的一个热点问题。您可以查看 this discussion更多细节。
以下是该讨论中可用的解决方法:
1.chown 和 chmod 文件首先像你所做的那样。

sudo chown root chrome-sandbox
chmod 4755 chrome-sandbox
2.如果你拿到一个appimage,可以直接用 --no-sandbox arguemnt运行它
3. sysctl kernel.unprivileged_userns_clone=1enable unprivileged access .
您已经使用过 #1 ,但您也可以检查是否 #2/#3更适合你的场景。

This is my tfs definition, I run all these in bash, not my agent/buildmachines are windows ones.


由于您的部分代理是Linux,而其他代理是Windows,我建议您可以使用 Conditions管理 bash 任务。您可以有两个不同的 bash 任务/步骤,一个用于 Linux,另一个用于 Windows。然后设置他们的条件以有条件地运行正确的命令。像这样的东西:
- task: Bash@3
inputs:
targetType: 'inline'
script: |
# Write commands here
# ...
displayName: 'Bash command for Linux'
condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux'))

- task: Bash@3
inputs:
targetType: 'inline'
script: |
# Write commands here
# ...
displayName: 'Bash command for Windows'
condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'))
关于预定义变量 Agent.OS ,您可以查看 this document .

关于linux - 构建 Electron linux 发行版 : The SUID sandbox helper binary was found, 但未正确配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63780918/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com