Я изо всех сил пытаюсь установить недавнюю 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
условие не обнаруживает тот узел, установлен (в то время как это).
Я замеченный, что существует соленое состояние для установки npm пакетов, но у меня не могло быть его для работы также. Я предполагаю, что это - потому что я не устанавливаю его от диспетчера пакетов (так как я не могу найти пакеты для узла и npm).
Благодаря viq на IRC канале, я смог решить эту проблему.
Решение заключается в изменении переменной $PATH minion /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
на minion.