Я изо всех сил пытаюсь установить последнюю версию nodejs и пакеты npm с использованием соли на debian. Вот мое солевое состояние:
nodejs-deps:
pkg.installed:
- names:
- g++
- curl
- libssl-dev
- apache2-utils
require:
- pkg: git
nodejs-source:
git.latest:
- target: /usr/src/nodejs
- name: git://github.com/joyent/node.git
- rev: v0.10.32-release
nodejs-install:
cmd.run:
- cwd: /usr/src/nodejs
- name: ./configure && make && make install
- onlyif: if [ -z $(node --version) ] || [ $(node --version) != "v0.10.32" ]; then echo "should update"; else exit 1; fi;
- require:
- git: nodejs-source
- pkg: nodejs-deps
less:
cmd.run:
- name: npm install -g less
При этом узел установлен, но я получаю эту ошибку /bin/sh: 1: npm: not found
для команды: npm install -g less
. Кроме того, если я запустил это состояние в другой раз, onlyif
condition не определяет, что узел установлен (пока он установлен).
Я видел, что есть солевое состояние чтобы установить пакеты npm, но у меня тоже не могло получиться. Думаю, это потому, что я не устанавливаю его из диспетчера пакетов (так как я не могу найти пакеты для node и npm).
Благодаря viq на IRC-канале мне удалось решить эту проблему. Решение состоит в том, чтобы изменить переменную $ PATH миньона. /etc/init.d/salt-minion
:
Измените это:
PATH=/sbin:/usr/sbin:/bin:/usr/bin
по
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin
Возможно, вам придется позвонить service salt-minion restart
на миньоне.