"/usr/bin/env 노드: 해당 디렉토리 파일이 없습니다." - 감독자 아래에만 해당

"/usr/bin/env 노드: 해당 디렉토리 파일이 없습니다." - 감독자 아래에만 해당

Supervisor에서 Node.js 애플리케이션을 실행하려고 하면 다음 오류가 발생합니다.

/usr/bin/env node: No such file of directory

Ubuntu 16.04를 실행하는 시스템이고 실제로는 /usr/bin/node가 설치되어 있으며 /usr/bin/nodejs에 심볼릭 링크되어 있습니다. 나는 그것을 설치했다Node.js 저장소. 그래서 내가 달릴 때

node -v
/usr/bin/env node -v

나는 얻다:

v9.7.1

Supervisor(v 3.2.0)에 대한 내 애플리케이션 구성은 다음과 같습니다.

[program:verdaccio]
command=/usr/bin/verdaccio
autostart=true
autorestart=true
user=ubu
environment=HOME="/home/ubu",USER="ubu",PATH="$PATH:/home/ubu/.local/bin"

뭐가 문제 야?

답변1

노드 버전 관리자를 사용하는 경우 nvm이 주석을 사용하여 심볼릭 링크를 생성하세요.

sudo ln -s "$(which node)" /usr/bin/node

답변2

이는 매우 간단하지만 표준 시스템 저장소에서 Node.js를 설치한 사람들의 "/usr/bin/node에 대한 심볼릭 링크 없음" 문제와는 아무런 관련이 없습니다.

Supervisor의 작업 구성 문제입니다. 즉

PATH="$PATH:/home/ubu/.local/bin"

일을 엉망으로 만들고 있어요. 전역이 아닌 ~/.local/bin에서 Node를 실행했을 때의 유물입니다. 방금 삭제하고 감독자를 다시 로드하면 이제 애플리케이션이 잘 실행됩니다. :)

누군가에게 도움이 되기를 바랍니다.

답변3

대부분의 경우 이것은 단순한 이름 지정 문제입니다. 패키지 관리자에서 설치할 때 bin 파일은 nodejs라고 불릴 수 있으므로 다음 명령을 사용하여 심볼릭 링크하면 됩니다.

ln -s /usr/bin/nodejs /usr/bin/node

관련 정보