2015-03-19 8 views
7

Я пытаюсь развернуть Node.js Wiki называется Jingo на OpenShift:Не удается найти модуль '../build/Debug/iconv.node' на OpenShift

Error: Cannot find module '../build/Debug/iconv.node' 
    at Function.Module._resolveFilename (module.js:338:15) 
    at Function.Module._load (module.js:280:25) 
    at Module.require (module.js:364:17) 
    at require (module.js:380:17) 
    at Object.<anonymous> (/var/lib/openshift/550a72cf5973cac5c10000ca/app-root/runtime/repo/node_modules/icon 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Module.require (module.js:364:17) 
DEBUG: Program node jingo -c config.yaml exited with code 8 

Я попытался запустить node- gyp configure и node-gyp build в командной строке, но у меня недостаточно прав. Я также попытался включая узел-Gyp конфигурирование и узлы Gyp сборку в файле package.json как установить скрипт, но получают следующее сообщение об ошибке:

remote: > node-gyp configure; node-gyp build 
remote: 
remote: gyp info it worked if it ends with ok 
remote: gyp info using [email protected] 
remote: gyp info using [email protected] | linux | x64 
remote: gyp info spawn python 
remote: gyp info spawn args [ '/opt/rh/v8314/root/usr/bin/gyp', 
remote: gyp info spawn args 'binding.gyp', 
remote: gyp info spawn args '-f', 
remote: gyp info spawn args 'make', 
remote: gyp info spawn args '-I', 
remote: gyp info spawn args '/var/lib/openshift/550a72cf5973cac5c10000ca/app-root/runtime/repo/build/config.gypi', 
remote: gyp info spawn args '-I', 
remote: gyp info spawn args '/opt/rh/nodejs010/root/usr/lib/node_modules/node-gyp/addon-rpm.gypi', 
remote: gyp info spawn args '-I', 
remote: gyp info spawn args '/opt/rh/nodejs010/root/usr/share/node/common.gypi', 
remote: gyp info spawn args '-Dlibrary=shared_library', 
remote: gyp info spawn args '-Dvisibility=default', 
remote: gyp info spawn args '-Dnode_root_dir=/opt/rh/nodejs010/root/usr/share/node', 
remote: gyp info spawn args '-Dmodule_root_dir=/var/lib/openshift/550a72cf5973cac5c10000ca/app-root/runtime/repo', 
remote: gyp info spawn args '--depth=.', 
remote: gyp info spawn args '--generator-output', 
remote: gyp info spawn args 'build', 
remote: gyp info spawn args '-Goutput_dir=.' ] 
remote: gyp: binding.gyp not found (cwd: /var/lib/openshift/550a72cf5973cac5c10000ca/app-root/runtime/repo) while trying to load binding.gyp 
remote: gyp ERR! configure error 
remote: gyp ERR! stack Error: `gyp` failed with exit code: 1 
remote: gyp ERR! stack  at ChildProcess.onCpExit (/opt/rh/nodejs010/root/usr/lib/node_modules/node-gyp/lib/configure.js:338:16) 
remote: gyp ERR! stack  at ChildProcess.EventEmitter.emit (events.js:98:17) 
remote: gyp ERR! stack  at Process.ChildProcess._handle.onexit (child_process.js:797:12) 
remote: gyp ERR! System Linux 2.6.32-504.3.3.el6.x86_64 
remote: gyp ERR! command "node" "/opt/rh/nodejs010/root/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" 
remote: gyp ERR! cwd /var/lib/openshift/550a72cf5973cac5c10000ca/app-root/runtime/repo 
remote: gyp ERR! node -v v0.10.25 
remote: gyp ERR! node-gyp -v v0.12.2 
remote: gyp ERR! not ok 
remote: gyp info it worked if it ends with ok 
remote: gyp info using [email protected] 
remote: gyp info using [email protected] | linux | x64 
remote: gyp info spawn make 
remote: gypmake: Entering directory `/var/lib/openshift/550a72cf5973cac5c10000ca/app-root/runtime/repo/build' 
remote: make: Leaving directory `/var/lib/openshift/550a72cf5973cac5c10000ca/app-root/runtime/repo/build' 
remote: info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ] 
remote: make: *** No targets specified and no makefile found. Stop. 
remote: gyp ERR! build error 
remote: gyp ERR! stack Error: `make` failed with exit code: 2 
remote: gyp ERR! stack  at ChildProcess.onExit (/opt/rh/nodejs010/root/usr/lib/node_modules/node-gyp/lib/build.js:267:23) 
remote: gyp ERR! stack  at ChildProcess.EventEmitter.emit (events.js:98:17) 
remote: gyp ERR! stack  at Process.ChildProcess._handle.onexit (child_process.js:797:12) 
remote: gyp ERR! System Linux 2.6.32-504.3.3.el6.x86_64 
remote: gyp ERR! command "node" "/opt/rh/nodejs010/root/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" 
remote: gyp ERR! cwd /var/lib/openshift/550a72cf5973cac5c10000ca/app-root/runtime/repo 
remote: gyp ERR! node -v v0.10.25 
remote: gyp ERR! node-gyp -v v0.12.2 
remote: gyp ERR! not ok 
remote: 
remote: npm info [email protected] Failed to exec install script 
remote: npm ERR! [email protected] install: `node-gyp configure; node-gyp build` 
remote: npm ERR! Exit status 1 
remote: npm ERR! 
remote: npm ERR! Failed at the [email protected] install script. 
remote: npm ERR! This is most likely a problem with the jingo package, 
remote: npm ERR! not with npm itself. 
remote: npm ERR! Tell the author that this fails on your system: 
remote: npm ERR!  node-gyp configure; node-gyp build 
remote: npm ERR! You can get their info via: 
remote: npm ERR!  npm owner ls jingo 
remote: npm ERR! There is likely additional logging output above. 
remote: npm ERR! System Linux 2.6.32-504.3.3.el6.x86_64 
remote: npm ERR! command "node" "/opt/rh/nodejs010/root/usr/bin/npm" "install" "-d" 
remote: npm ERR! cwd /var/lib/openshift/550a72cf5973cac5c10000ca/app-root/runtime/repo 
remote: npm ERR! node -v v0.10.25 
remote: npm ERR! npm -v 1.3.24 
remote: npm ERR! code ELIFECYCLE 
remote: npm ERR! 
remote: npm ERR! Additional logging details can be found in: 
remote: npm ERR!  /var/lib/openshift/550a72cf5973cac5c10000ca/app-root/runtime/repo/npm-debug.log 
remote: npm ERR! not ok code 0 
remote: An error occurred executing 'gear postreceive' (exit code: 1) 
remote: Error message: CLIENT_ERROR: Failed to execute: 'control build' for /var/lib/openshift/550a72cf5973cac5c10000ca/nodejs 
remote: 
remote: For more details about the problem, try running the command again with the '--trace' option. 
To ssh://[email protected]/~/git/jingo.git/ 
    f3b5d5e..db51a22 master -> master 

Есть еще один способ установить и настроить узел-Gyp на OpenShift ?

+0

Привет! Вы решили эту проблему? Я сталкиваюсь с тем же. Похоже, что iconv.node из папки ../node_modules/iconv/build скомпилирован для неправильной архитектуры. Но lscpu удаленно на сервере Openshift показывает мне x64 arc, и мой .node-файл скомпилирован для этой дуги x64. Так раздражает! –

+0

К сожалению, я не смог решить проблему с Open Shift. Я должен был сократить свои потери и развернуть на Linux VM вместо этого. –

+0

Я решил, но не понял, какие шаги помогают. Что я сделал: 1. Удалите node_modules на сервере. 2. Redeployed project (чтобы открыть папку смены shift node_modules). 3. В папке iconv сделал node-gyp clear/config/build –

ответ

0

Мое решение этой проблемы является восстановление Iconv внутри папки модуля вручную, либо путем добавления сценария install в package.json как

"scripts": { 
    "start": "node server.js", 
    "install": "cd node_modules/iconv; node-gyp rebuild" 
    } 

Это заставит восстановление iconv.node после каждого автоматического развертывания с помощью git push

UPD: Другим подходом является добавление сценария в .openshift/action_hooks/build в конце файла:

# rebuilding iconv 
if [ -f "${OPENSHIFT_REPO_DIR}/node_modules/iconv"/package.json ]; then 
     echo " - Rebuilding iconv ... " 
     echo 
     (cd "${OPENSHIFT_REPO_DIR}/node_modules/iconv/"; node-gyp rebuild) 
fi 
+0

Спасибо Firuz, я считаю, что уже пробовал эти предложения, но это было в марте. Возможно, с тех пор что-то изменилось в Open Shift, пальцы скрещены ... –