






















asar extract $srcdir/opt/clash-party/resources/app.asar ${pkgdir}/opt/mihomo-party
......
chmod +sx ${pkgdir}/opt/clash-party/resources/sidecar/mihomo
chmod +sx ${pkgdir}/opt/clash-party/resources/sidecar/mihomo-alpha
chmod +sx ${pkgdir}/opt/clash-party/resources/sidecar/mihomo-smart
如果我没看错的话,这是解压到了${pkgdir}/opt/mihomo-party,然后后面对着${pkgdir}/opt/clash-party目录操作?
另外,1.8.9上游包把路径替换成了/opt/clash-party,所以修复方案里面,
asar extract $srcdir/opt/mihomo-party/resources/app.asar ${pkgdir}/opt/mihomo-party
相应需要改成
asar extract $srcdir/opt/clash-party/resources/app.asar ${pkgdir}/opt/mihomo-party
1.8.7打包报错的问题,替换package()部分为以下内容,就可以正常打包了:
package() {
bsdtar -xf data.tar.xz -C $srcdir
asar extract $srcdir/opt/mihomo-party/resources/app.asar ${pkgdir}/opt/mihomo-party
cp -r $srcdir/opt/mihomo-party/resources/sidecar ${pkgdir}/opt/mihomo-party/resources/
cp -r $srcdir/opt/mihomo-party/resources/files ${pkgdir}/opt/mihomo-party/resources/
chmod +sx ${pkgdir}/opt/mihomo-party/resources/sidecar/mihomo
chmod +sx ${pkgdir}/opt/mihomo-party/resources/sidecar/mihomo-alpha
chmod +sx ${pkgdir}/opt/mihomo-party/resources/sidecar/mihomo-smart
install -Dm644 "$srcdir/usr/share/icons/hicolor/512x512/apps/${_pkgname}.png" "${pkgdir}/usr/share/icons/hicolor/512x512/apps/${_pkgname}.png"
install -Dm755 "${srcdir}/${_pkgname}.sh" "${pkgdir}/usr/bin/${_pkgname}"
install -Dm644 "${_pkgname}.desktop" "${pkgdir}/usr/share/applications/${_pkgname}.desktop"
chown -R root:root ${pkgdir}
}
同时要注意启动脚本的启动行要替换为:
# Launch
exec electron /opt/mihomo-party ${MIHOMO_PARTY_USER_FLAGS[@]} "$@"
1.8.7打包报错了:
==> 正在开始 package()...
node:fs:561
return binding.open(
^
Error: ENOENT: no such file or directory, open '/home/laoyou2333/.cache/yay/mihomo-party-electron-bin/src/opt/clash-party/resources/app.asar'
at Object.openSync (node:fs:561:18)
at readArchiveHeaderSync (file:///usr/lib/node_modules/@electron/asar/lib/disk.js:72:19)
at readFilesystemSync (file:///usr/lib/node_modules/@electron/asar/lib/disk.js:96:24)
at extractAll (file:///usr/lib/node_modules/@electron/asar/lib/asar.js:224:24)
at Command.<anonymous> (file:///usr/lib/node_modules/@electron/asar/bin/asar.mjs:71:5)
at Command.listener [as _actionHandler] (/usr/lib/node_modules/@electron/asar/node_modules/commander/lib/command.js:552:17)
at /usr/lib/node_modules/@electron/asar/node_modules/commander/lib/command.js:1586:14
at Command._chainOrCall (/usr/lib/node_modules/@electron/asar/node_modules/commander/lib/command.js:1470:12)
at Command._parseCommand (/usr/lib/node_modules/@electron/asar/node_modules/commander/lib/command.js:1585:27)
at /usr/lib/node_modules/@electron/asar/node_modules/commander/lib/command.js:1349:27 {
errno: -2,
code: 'ENOENT',
syscall: 'open',
path: '/home/laoyou2333/.cache/yay/mihomo-party-electron-bin/src/opt/clash-party/resources/app.asar'
}
Node.js v22.19.0
==> 错误: 在 package() 中发生一个错误。
正在放弃...
-> 生成时出错: mihomo-party-electron-bin-exit status 4
1.8.7 报错:
==> 正在开始 package()...
node:fs:560
return binding.open(
^
Error: ENOENT: no such file or directory, open '/home/w568w/.cache/yay/mihomo-party-electron-bin/src/opt/clash-party/resources/app.asar'
at Object.openSync (node:fs:560:18)
at readArchiveHeaderSync (file:///usr/lib/node_modules/@electron/asar/lib/disk.js:72:19)
at readFilesystemSync (file:///usr/lib/node_modules/@electron/asar/lib/disk.js:96:24)
at extractAll (file:///usr/lib/node_modules/@electron/asar/lib/asar.js:224:24)
at Command.<anonymous> (file:///usr/lib/node_modules/@electron/asar/bin/asar.mjs:71:5)
at Command.listener [as _actionHandler] (/usr/lib/node_modules/@electron/asar/node_modules/commander/lib/command.js:552:17)
at /usr/lib/node_modules/@electron/asar/node_modules/commander/lib/command.js:1586:14
at Command._chainOrCall (/usr/lib/node_modules/@electron/asar/node_modules/commander/lib/command.js:1470:12)
at Command._parseCommand (/usr/lib/node_modules/@electron/asar/node_modules/commander/lib/command.js:1585:27)
at /usr/lib/node_modules/@electron/asar/node_modules/commander/lib/command.js:1349:27 {
errno: -2,
code: 'ENOENT',
syscall: 'open',
path: '/home/w568w/.cache/yay/mihomo-party-electron-bin/src/opt/clash-party/resources/app.asar'
}
Node.js v24.7.0
==> 错误: 在 package() 中发生一个错误。
正在放弃...
自 1.8.3,mihomo-party 似乎会在寻找 mihomo 时打开 /opt/mihomo-party/extra/sidecar/ 目录,而目前只创建了 /opt/mihomo-party/resources/sidecar/ 目录,因此运行时会直接报错 No such file or directory,无法启动内核。不太清楚这是 bug,还是说之前的 PKGBUILD 一直都少创建了该目录。
目前的解决方法是添加以下内容:
install -dm755 "${pkgdir}/opt/mihomo-party/extra/sidecar"
# Create symbolic links for mihomo binaries
ln -sf "../../resources/sidecar/mihomo" "${pkgdir}/opt/mihomo-party/extra/sidecar/mihomo"
ln -sf "../../resources/sidecar/mihomo-alpha" "${pkgdir}/opt/mihomo-party/extra/sidecar/mihomo-alpha"
ln -sf "../../resources/sidecar/mihomo-smart" "${pkgdir}/opt/mihomo-party/extra/sidecar/mihomo-smart"
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。
针对1.9.1-1版本的打包出现的问题,修改的package()如下:
除了修复打包时出现的路径错误外,还添加了
确保系统Electron可以找到对应的资源文件