Vagrantボックスでnode.js、Grunt、NPMを実行する方法がわかりません。ubuntu-precise12042-x64-vbox43を使用しており、puppetでプロビジョニングしています。puppetを使い始めたばかりなので、https://puphpet.com よりマニフェストを生成する。vagrant up
ボックスが適切にプロビジョニングされ、問題なく起動したら、Googleで調べてhttps://stackoverflow.com/questions/19000534/install-node-js-on-ubuntu-12-04-lts-using-puppet。 を実行しvagrant SSH
、その後 を実行しましたが、puppet module install willdurand/nodejs
問題なく実行されました。問題は、次に何をすればよいかわからないことです。 「in」 の状態で NPM および Node コマンドを実行できると思っていましたvagrant SSH
。何が間違っているのでしょうか。 実行すると、次のようにNPM
表示されます。
the program 'npm' is currently not installed. You can install it by typing: sudo apt-get install npm
他のコマンドを実行する必要がありますか?
答え1
Puppet モジュールをインストールするだけではプログラムはインストールされません。Puppet に、Puppet 内で Node.js を処理する方法を指示するだけです。Puppet マニフェストに宣言を追加して、vagrant provision
再度実行する必要があります。
例:
class { 'nodejs':
version => 'stable',
}
package { 'express':
provider => npm
}
答え2
Vagrantfile
プロビジョニング ファイルを定義します。
config.vm.provision "shell", path: "scripts/provision.sh"
次に、必要なパッケージ (例)を使用package.json
して を作成します。npm
grunt
{
"name": "vagrant",
"devDependencies": {
"grunt": "~0.4.5",
"grunt-cli": "^0.1.13",
"grunt-exec": "^0.4.6",
"shelljs": "^0.5.3"
}
}
次に、依存パッケージをprovision.sh
インストールします。npm
apt-get install
npm install
grunt --version
VM プロビジョニング ( vagrant up
) 中にそれが機能するかどうかを確認します。
または、他の回答で説明されているように、Puppet マニフェストを使用します。