You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派运行LTE-Car代码遇/bin/sh: node未找到错误求助

问题描述

在64位树莓派4 Model B上运行LTE-Car车载代码时遇到以下问题:

  • 非特权运行:执行node index.js时触发权限错误,提示需以root身份运行,同时pigpio初始化失败(错误码-1)。
  • 特权运行:
    1. 直接执行sudo node index.js,提示sudo: node: command not found;
    2. 使用node绝对路径执行sudo /home/test/.nvm/versions/node/v14.21.3/bin/node index.js,程序连接成功,但点击Web界面启动按钮时出现[LTE-Car Error]: /bin/sh: 1: node: not found。
解决方案

1. 解决sudo找不到node的问题

nvm是用户级安装工具,root用户默认不会加载当前用户的nvm环境变量,可通过以下两种方式解决:

方式一:创建系统级软链接

将nvm安装的node和npm链接到系统全局路径,让root能直接调用:

sudo ln -s /home/test/.nvm/versions/node/v14.21.3/bin/node /usr/local/bin/node
sudo ln -s /home/test/.nvm/versions/node/v14.21.3/bin/npm /usr/local/bin/npm

完成后直接执行sudo node index.js即可,无需输入绝对路径。

方式二:保留用户环境变量运行sudo

用-E参数让sudo继承当前用户的环境变量(包含nvm的node路径):

sudo -E node index.js

2. 解决Web界面启动时node找不到的问题

该问题是因为程序内部启动子进程时调用node命令,但root的子进程环境中没有node的路径。上述方式一(创建系统软链接)可直接解决,因为系统全局路径对所有用户的子进程都可见。
若不想创建软链接,可修改程序中调用node的代码,将node替换为你的node绝对路径/home/test/.nvm/versions/node/v14.21.3/bin/node,找到程序中使用exec/spawn等启动子进程的代码位置修改即可。

额外说明

pigpio需要root权限才能访问树莓派GPIO接口,因此必须以sudo方式运行程序,非特权模式下权限不足属于正常现象。

内容的提问来源于stack exchange,提问作者spm96

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 23:31:11