پرش به مطلب اصلی

GitHub

npm Command Was Not Found

اگه از nvm استفاده می‌کنید و یه Self-hosted Runner دارید و میگه که نمی‌تونه npm رو پیدا کنه، احتمالاً به خاطره اینه که nvm، Node Environment رو تو مسیر /usr/local/bin/ نصب نکرده، پس Runner نمی‌تونه پیدا‌ش کنه.

برای حل این مشکل، یه Soft Link برای هر دستور بسازید:

sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/node" "/usr/local/bin/node"
sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/npm" "/usr/local/bin/npm"
sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/pm2" "/usr/local/bin/pm2"

Job با موفقیت اجرا میشه اما pm2 پروژه رو اجرا نمی‌کنه

نمی‌دونم چرا، اما انگار GitHub Runner گاهی درست نصب نمی‌شه و باعث میشه Environment Variables پیدا نشه. تو این حالت، HOME موجود نیست، پس pm2 یه Daemon جدید با متغیرهای غلط اجرا میکنه.

برای بررسی متغیرهایی که Runner استفاده می‌کنه از این دستور استفاده کنید:

strings /proc/$(pgrep -f Runner.Listener)/environ

اگه HOME رو تو نتیجه نبینید، پس مشکل رو پیدا کردید.

برای حل این موضوع، اول Runner رو Uninstall کنید و بعد دوباره نصبش کنید و دقیق بگید از کدوم User استفاده کنه:

./svc.sh uninstall
./svc.sh install root
./svc.sh start