Ошибка при установке 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, но я не уверен, как это должно выглядеть.
Спасибо за помощь.
Ответы
Ответ 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();