Подтвердить что ты не робот

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

Edit

Я обновил node и запустил "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

  > [email protected] 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
[email protected] /usr/local/share/npm/lib/node_modules/contextify
└── [email protected]

Оригинал

У меня возникла проблема с установкой контекста с помощью 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

> [email protected] 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" "[email protected]"

npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! `sh "-c" "node-gyp rebuild"` failed with 139
npm ERR! 
npm ERR! Failed at the [email protected] 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

Кто-нибудь знает, что здесь происходит? Я читал, что может быть что-то делать с моим PYTHON PATH, но я не уверен, как это должно выглядеть.

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

4b9b3361

Ответ 1

Исходная проблема

Ошибка сегментации: 11 node "dirname "$0"

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

Изменить задачу

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

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

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

Ответ 2

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

apt-get -y install g++

Ответ 3

Нет такой вещи, как contextify двоичный. Существует двоичный код contextify.node в /usr/lib/node_modules/contextify/build/Release/ (если он установлен глобально в моем ubuntu 12.04).

Просто используйте модуль в своей программе node, используя 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();