Ошибка при установке пересборки contextify- node-gyp

редактировать

Я обновил узел и запустил "npm install -g contextify". Похоже, что он установлен нормально (без ошибок), но ввод "which contextify" ничего не возвращает. Сообщение при установке contextify:

npm http GET https://registry.npmjs.org/contextify
npm http 304 https://registry.npmjs.org/contextify
npm http GET https://registry.npmjs.org/bindings
npm http 304 https://registry.npmjs.org/bindings

  > contextify@0.1.6 install /usr/local/share/npm/lib/node_modules/contextify
  > node-gyp rebuild

CXX(target) Release/obj.target/contextify/src/contextify.o
SOLINK_MODULE(target) Release/contextify.node
SOLINK_MODULE(target) Release/contextify.node: Finished
contextify@0.1.6 /usr/local/share/npm/lib/node_modules/contextify
└── bindings@1.1.1

оригинал

У меня проблема с установкой contextx с npm:

npm install -g contextify

и получите следующие сообщения об ошибках:

npm http GET https://registry.npmjs.org/contextify
npm http 304 https://registry.npmjs.org/contextify
npm http GET https://registry.npmjs.org/bindings
npm http 304 https://registry.npmjs.org/bindings

> contextify@0.1.6 install /usr/local/share/npm/lib/node_modules/contextify
> node-gyp rebuild

  CXX(target) Release/obj.target/contextify/src/contextify.o
  SOLINK_MODULE(target) Release/contextify.node
  SOLINK_MODULE(target) Release/contextify.node: Finished
/usr/local/Cellar/node/0.10.1/lib/node_modules/npm/bin/node-gyp-bin/node-gyp: line 2: 73593 Segmentation fault: 11  node "`dirname "$0"`/../../node_modules/node-gyp/bin/node-gyp.js" "$@"

npm ERR! contextify@0.1.6 install: `node-gyp rebuild`
npm ERR! `sh "-c" "node-gyp rebuild"` failed with 139
npm ERR! 
npm ERR! Failed at the contextify@0.1.6 install script.
npm ERR! This is most likely a problem with the contextify package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls contextify
npm ERR! There is likely additional logging output above.

npm ERR! System Darwin 13.0.0
npm ERR! command "/usr/local/Cellar/node/0.10.1/bin/node" "/usr/local/bin/npm" "install" "-g" "contextify"
npm ERR! cwd /Users/projects/
npm ERR! node -v v0.10.1
npm ERR! npm -v 1.2.15
npm ERR! code ELIFECYCLE

Кто-нибудь знает, что здесь происходит? Я читал, что это может что-то сделать с моим ПИТОННЫМ ПУТЕМ, но я не уверен, как это должно выглядеть.

Спасибо за помощь.

3 ответа

Решение

Оригинальная проблема

Ошибка сегментации: 11 узлов "dirname "$0"

Это похоже на ошибку в V8, обнаруженную при компиляции с Clang. Это было исправлено в более поздних версиях Node, поэтому вам нужно будет обновить. Github проблема отслеживается здесь

Изменить проблему

Здесь нет contextify программа командной строки, которую вы можете запустить, так which contextify нечего найти. contextify Модуль предназначен для использования в node используя require('contextify') загрузить модуль.

Исходя из того, как вы это описали, кажется, что вы можете смешивать две вещи. Модули, установленные с npm install -g установлены глобально и доступны для всех узловых приложений, но это не означает, что они будут предоставлять сценарий, который может быть выполнен в командной строке. -g контролирует только путь установки модуля.

Имеется ли у модуля сценарий командной строки, который вы можете запустить, зависит от того, package.json определяет набор bin команды, например, jshint. Когда вы устанавливаете с -gперечисленные сценарии являются символическими ссылками вместе с node поэтому они доступны через ваш PATH, При установке без -g, bin-скрипты установлены в node_modules/.bin и вам придется добавить этот каталог в ваш PATH для работы скриптов.

У меня была такая же проблема с node-gyp rebuild, Решение было установлено g ++:

apt-get -y install g++

Там нет такого понятия, как contextify двоичный файл. Есть contextify.node двоичный в /usr/lib/node_modules/contextify/build/Release/ (когда установлено глобально в моем Ubuntu 12.04).

Просто используйте модуль в вашей программе узла, используя require('contextify') и это должно работать.

var Contextify = require('contextify');
var sandbox = Contextify(); // returns an empty contextified object.
sandbox.run('var x = 3;');
console.log(sandbox.x); // prints 3
sandbox.dispose();
Другие вопросы по тегам