私はこれを約1日続けています。私はvagrantを介して仮想ボックスでubuntu / trusty64を実行しています。yo hubotコマンドを使用して新しいhubotプロジェクトをスキャフォールディングしようとするたびに、hubotがインストールされますが、npmエラーが発生します。私は本当に問題が何であるかを理解することができません。
シェルを介してnode、npm、hubot、coffeeスクリプトをインストールしました。これが私のprovision.shスクリプトの外観です
#!/bin/bash
# update package libraries
apt-get -y update
# install curl if it is not already installed
apt-get -y install curl
# if nodejs is not installed...
type node >/dev/null 2>&1 || if [[ $? != 0 ]]; then
# we install it
curl -sL http://deb.nodesource.com/setup_5.x | sudo -E bash -
apt-get -y install nodejs
# update npm
npm install -g npm
fi
command -v hubot &>/dev/null || {
npm install -g hubot coffee-script
}
# install yeoman for hubot
command -v yo &>/dev/null || {
npm install -g yo generator-hubot
}
インストールされているnodejsのバージョンはv5.11.1です。インストールされているnpmのバージョンはv3.8.6です。
インストール後、次のステップは足場のhubotです。これは、新しいディレクトリを作成することによって行われます。ディレクトリにmyhubotという名前を付けました。ディレクトリに切り替えて次のコマンドを入力すると、Yo hubot --defaultがインストールを開始しますが、次のエラーで終了します。
13519 error Linux 3.13.0-86-generic
13520 error argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "hubot" "hubot-scripts" "hubot-diagnostics" "hubot-help" "hubot-heroku-keepalive" "hubot-google-images" "hubot-google-translate" "hubot-pugme" "hubot-maps" "hubot-redis-brain" "hubot-rules" "hubot-shipit" "--save"
13521 error node v5.11.1
13522 error npm v3.8.6
13523 error path ../coffee-script/bin/coffee
13524 error code EPROTO
13525 error errno -71
13526 error syscall symlink
13527 error EPROTO: protocol error, symlink '../coffee-script/bin/coffee' -> '/vagrant/myhubot/node_modules/.bin/coffee'
13528 error If you need help, you may report this error at:
13528 error <https://github.com/npm/npm/issues>
13529 verbose exit [ -71, true ]
どうやら、エラーログの後でも、「hubot」コマンドを入力すると、hubotシェルにログインしているようです。しかし、その後、hubotにpingを実行しても、応答がありません。
このエラーは、npm
コマンドにシンボリックリンクが必要であり、この問題で参照されているWindowsではサポートされていないために発生します:https://github.com/npm/npm/issues/9901
この投稿で概説されている手順に従うことで、この問題を修正できます:VagrantWindowsとのシンボリックリンク
手順は次のとおりです。
VagrantFileにスニペットを追加して、シンボリックリンクを有効にします。
config.vm.provider "virtualbox" do |v|
v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
end
管理者モードでVagrantマシンを起動します。
これは、シンボリックリンクに対するVagrantの制限を回避するためです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加