私はdebianでsaltを使用して最近のnodejsバージョンとnpmパッケージをインストールするのに苦労しています。これが私の塩の状態です:
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パッケージをインストールするための salt state があることを確認しましたが、それも機能させることができませんでした。パッケージマネージャーからインストールしていないためだと思います(nodeとnpmのパッケージが見つからないため)。
IRCチャネルのviqのおかげで、この問題を解決することができました。解決策は、ミニオン/etc/init.d/salt-minion
の$ PATH変数を変更することです。
これを変える:
PATH=/sbin:/usr/sbin:/bin:/usr/bin
沿って
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin
ミニオンでservice salt-minion restart
を呼び出さなければならない場合があります。