
當我嘗試從 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