Installing github.com/ramya-rao-a/go-outline@latest FAILED

关于这个问题最后虽然成功的解决了,但是搞不懂到底是怎么解决的,但还是记录一下如何解决的。(网上大部分都是copy的,一点也不好用,搞得浪费了好多时间)

打开cmd

输入下面四条命令

mkdir -p $env:GOPATH/src/golang.org/x/

cd $env:GOPATH/src/golang.org/x/

git clone https://github.com/golang/tools.git

go env -w GOPROXY=https://goproxy.cn,direct

然后重启你的 vs code,再进行install all 就行了。

然后当你都下载完成之后会发现,还是没有办法运行你新建的main.go文件,这时候你需要在visual code的终端里面输入

go mod init XXX //xxx代表文件夹名

然后就行了

/app/my-electron-app # npm run build > my-electron-app@1.0.0 build > electron-builder build --linux --windows • electron-builder version=26.0.12 os=6.6.87.2-microsoft-standard-WSL2 • loaded configuration file=/app/my-electron-app/electron-builder.json • description is missed in the package.json appPackageFile=/app/my-electron-app/package.json • writing effective config file=dist/builder-effective-config.yaml • executing @electron/rebuild electronVersion=39.0.0 arch=x64 buildFromSource=false appDir=./ • installing native dependencies arch=x64 • completed installing native dependencies • packaging platform=linux arch=x64 electron=39.0.0 appOutDir=dist/linux-unpacked • downloading url=https://github.com/electron/electron/releases/download/v39.0.0/electron-v39.0.0-linux-x64.zip size=113 MB parts=8 • downloaded url=https://github.com/electron/electron/releases/download/v39.0.0/electron-v39.0.0-linux-x64.zip duration=17.296s (node:99) [DEP0190] DeprecationWarning: Passing args to a child process with shell option true can lead to security vulnerabilities, as the arguments are not escaped, only concatenated. (Use `node --trace-deprecation ...` to show where the warning was created) • building target=AppImage arch=x64 file=dist/MyElectronApp-1.0.0.AppImage • executing @electron/rebuild electronVersion=39.0.0 arch=x64 buildFromSource=false appDir=./ • installing native dependencies arch=x64 • downloading url=https://github.com/electron-userland/electron-builder-binaries/releases/download/appimage-12.0.1/appimage-12.0.1.7z size=1.6 MB parts=1 • downloaded url=https://github.com/electron-userland/electron-builder-binaries/releases/download/appimage-12.0.1/appimage-12.0.1.7z duration=2.374s ⨯ cannot execute cause=fork/exec /app/my-electron-app/node_modules/7zip-bin/linux/x64/7za: no such file or directory command=/app/my-electron-app/node_modules/7zip-bin/linux/x64/7za x -bd /root/.cache/electron-builder/appimage/079040739.7z -o/root/.cache/electron-builder/appimage/079040739 workingDir=/root/.cache/electron-builder/appimage • completed installing native dependencies • packaging platform=win32 arch=x64 electron=39.0.0 appOutDir=dist/win-unpacked • downloading url=https://github.com/electron/electron/releases/download/v39.0.0/electron-v39.0.0-win32-x64.zip size=136 MB parts=8 • downloaded url=https://github.com/electron/electron/releases/download/v39.0.0/electron-v39.0.0-win32-x64.zip duration=16.746s • updating asar integrity executable resource executablePath=dist/win-unpacked/MyElectronApp.exe • downloading url=https://github.com/electron-userland/electron-builder-binaries/releases/download/winCodeSign-2.6.0/winCodeSign-2.6.0.7z size=5.6 MB parts=1 • downloaded url=https://github.com/electron-userland/electron-builder-binaries/releases/download/winCodeSign-2.6.0/winCodeSign-2.6.0.7z duration=2.491s ⨯ fork/exec /app/my-electron-app/node_modules/7zip-bin/linux/x64/7za: no such file or directory github.com/develar/app-builder/pkg/download.ConfigureArtifactCommand.func1 /Users/runner/work/app-builder/app-builder/pkg/download/artifactDownloader.go:29 github.com/alecthomas/kingpin.(*actionMixin).applyActions /Users/runner/go/pkg/mod/github.com/alecthomas/kingpin@v2.2.6+incompatible/actions.go:28 github.com/alecthomas/kingpin.(*Application).applyActions /Users/runner/go/pkg/mod/github.com/alecthomas/kingpin@v2.2.6+incompatible/app.go:557 github.com/alecthomas/kingpin.(*Application).execute /Users/runner/go/pkg/mod/github.com/alecthomas/kingpin@v2.2.6+incompatible/app.go:390 github.com/alecthomas/kingpin.(*Application).Parse /Users/runner/go/pkg/mod/github.com/alecthomas/kingpin@v2.2.6+incompatible/app.go:222 main.main /Users/runner/work/app-builder/app-builder/main.go:90 runtime.main /Users/runner/hostedtoolcache/go/1.21.13/arm64/src/runtime/proc.go:267 runtime.goexit /Users/runner/hostedtoolcache/go/1.21.13/arm64/src/runtime/asm_amd64.s:1650 ⨯ /app/my-electron-app/node_modules/app-builder-bin/linux/x64/app-builder process failed ERR_ELECTRON_BUILDER_CANNOT_EXECUTE Exit code: 1 failedTask=build stackTrace=Error: /app/my-electron-app/node_modules/app-builder-bin/linux/x64/app-builder process failed ERR_ELECTRON_BUILDER_CANNOT_EXECUTE Exit code: 1 at ChildProcess.<anonymous> (/app/my-electron-app/node_modules/builder-util/src/util.ts:259:14) at Object.onceWrapper (node:events:623:26) at ChildProcess.emit (node:events:508:28) at maybeClose (node:internal/child_process:1085:16) at Process.ChildProcess._handle.onexit (node:internal/child_process:304:5)
最新发布
11-01
你遇到的这个错误: ``` ⨯ cannot execute cause=fork/exec /app/my-electron-app/node_modules/7zip-bin/linux/x64/7za: no such file or directory ``` 以及后续: ``` ⨯ /app/my-electron-app/node_modules/app-builder-bin/linux/x64/app-builder process failed ERR_ELECTRON_BUILDER_CANNOT_EXECUTE ``` 是 **Electron 打包过程中非常典型的权限或二进制兼容性问题**,尤其是在 **WSL2、Docker 容器、Alpine Linux 或某些非标准环境**中。 --- ## 🔍 错误原因分析 ### ❌ 核心问题: > `7za` 和 `app-builder` 是预编译的二进制可执行文件(`.exe` / `.bin`),但它们在你的环境中无法运行,因为: > > 1. **缺少可执行权限** > 2. **架构不匹配(如 ARM vs x64)** > 3. **文件系统不支持执行(比如挂载卷没有 `exec` 权限)** > 4. **容器/WLS2 环境限制了二进制调用** --- ## ✅ 解决方案汇总(按优先级排序) --- ### ✅ 方案一:修复可执行权限(最常见) Node.js 包管理器不会自动设置二进制文件为“可执行”,所以你需要手动加权限。 ```bash # 进入项目目录后运行: chmod +x node_modules/7zip-bin/linux/x64/7za chmod +x node_modules/app-builder-bin/linux/x64/app-builder ``` 然后再运行构建命令: ```bash npm run build ``` ✅ 很多时候这就是唯一的问题! --- ### ✅ 方案二:使用 `--em.runAsNode=false` 强制 Electron Builder 不通过 shell 调用 这个可以绕过 `DEP0190` 的警告和部分执行问题。 修改你的 `package.json` 中的 build 命令: ```json "scripts": { "build": "electron-builder --linux --windows --em.runAsNode=false" } ``` 或者直接命令行加参数: ```bash npx electron-builder build --linux --windows --em.runAsNode=false ``` --- ### ✅ 方案三:避免 WSL2 文件系统挂载问题(关键!) 如果你是在 Windows 上开发,并把项目放在 **Windows 文件系统下(如 `/mnt/c/...`)再进入 WSL2**,那么 **Linux 无法正确执行二进制文件**,即使有权限也不行! #### 🚫 错误路径示例: ```bash /mnt/c/Users/yourname/projects/my-electron-app ← 千万别在这儿打包! ``` #### ✅ 正确做法: 将项目复制到 WSL2 的原生 Linux 文件系统中: ```bash cp -r /mnt/c/Users/yourname/projects/my-electron-app ~/my-electron-app cd ~/my-electron-app npm install npm run build ``` 👉 **必须在 `/home/xxx/...` 下操作才能正常执行二进制文件!** --- ### ✅ 方案四:安装缺失的依赖库(适用于 Docker/Minimal 系统) 某些最小化 Linux 发行版(如 Alpine、精简 Docker 镜像)缺少运行预编译二进制所需的共享库。 运行以下命令安装必要依赖: ```bash # Ubuntu/Debian sudo apt-get update sudo apt-get install -y libglib2.0-0 libatk1.0-0 libgtk-3-0 libgdk-pixbuf2.0-0 libpangocairo-1.0-0 libcairo2 libdbus-1-3 # 或尝试安装 fuse(AppImage 需要) sudo apt-get install -y fuse libfuse2 ``` ⚠️ 如果你在 Docker 中构建,请确保启用 `--privileged` 或至少挂载 `/dev/fuse` 并安装 fuse。 --- ### ✅ 方案五:使用官方 Electron Builder Docker 镜像(推荐 CI/CD 使用) 不要在本地强行折腾,用官方支持的镜像更稳定: ```bash docker run --rm -v ${PWD}:/project \ -v ${PWD##*/}-node-modules:/project/node_modules \ -v ~/.cache/electron:/root/.cache/electron \ -v ~/.cache/electron-builder:/root/.cache/electron-builder \ electronuserland/builder:wine \ electron-builder --linux --windows ``` 这能规避所有环境问题。 --- ### ✅ 方案六:切换为 `tar.gz` 或 `zip` 构建(跳过 AppImage) 如果你不需要 `.AppImage`,可以暂时禁用它: ```json // electron-builder.json { "linux": { "target": ["tar.gz", "zip"] }, "win": { "target": ["zip", "nsis"] } } ``` 这样就不需要 `7za` 解压工具链了。 --- ## ✅ 补充建议 ### 1. 检查 Node.js 和 NPM 版本 确保不是太旧或太新的版本: ```bash node -v # 推荐 v18.x, v20.x npm -v ``` ### 2. 清理缓存重试 ```bash rm -rf node_modules rm -rf ~/AppData/Roaming/electron-builder # Windows rm -rf ~/.cache/electron-builder # Linux/macOS npm install ``` ### 3. 查看完整日志 启用详细日志: ```bash DEBUG=electron-builder npm run build ``` --- ## ✅ 总结:你现在应该怎么做? | 步骤 | 操作 | |------|------| | 1️⃣ | 把项目移到 WSL2 原生路径(如 `~/project`) | | 2️⃣ | 给两个关键二进制加执行权限:<br>`chmod +x node_modules/7zip-bin/*/7za`<br>`chmod +x node_modules/app-builder-bin/*/app-builder` | | 3️⃣ | 修改 `package.json` 添加 `--em.runAsNode=false` | | 4️⃣ | 尝试先只打包 zip:<br>`"build": "electron-builder --linux tar.gz"` | | 5️⃣ | 成功后再尝试 AppImage | --- ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值