附加信息:
我使用框架电子与 Node 原生模块结合高贵和 bleno 访问蓝牙适配器功能(noble 和 bleno 是针对电子节点版本构建的,电子重建)。Electron 使用自己的节点版本,而不是系统节点版本。
问题描述:
然而,Noble 要求我以 root 身份运行 electron 才能访问蓝牙设备。
由于这不是一个适合生产使用的好的解决方案,我尝试了官方命令sudo setcap cap_net_raw+eip $(eval readlink -fwhich node)
,但这只为系统节点版本设置了权限。
我认为我应该使用相同的命令并$(eval readlink -fwhich node)
用 electron 使用的本地节点版本替换 subshell 命令。
到目前为止,我还没有找到电子node.js的正确位置。
问题: 那么电子本地node.js位于哪里?
答案1
解决方案:
显然它位于./node_modules/electron/dist
这个目录中,你会找到电子二进制文件和libnode.so
附加信息:
如果您尝试使用setcap
在 上添加 electron 的权限。/node_modules/electron/dist/electron
它会抱怨缺少共享库libnode.so
,即使它在那里。这是 linux 的意图,您必须手动链接它,另请参阅这个问题关于它。