2013-02-13 6 views
1

Я создаю пакет npm (libsbmlsim), который устанавливает двоичные файлы, которые я позже буду использовать на стороне сервера.npm install не работает, когда пакет является зависимым

Пакет строит просто отлично, когда я бегу npm install, однако, когда я использую его в качестве зависимости в другом проекте через npm install libsbmlsim, он не может найти один из двоичных файлов, от которых она зависит (cmake):

/bin/sh: ../../node_modules/cmake/bin/cmake: No such file or directory                                  
make: *** [all] Error 127                                             
npm ERR! [email protected] install: `make`                                         
npm ERR! `sh "-c" "make"` failed with 2                                          
npm ERR!                                                  
npm ERR! Failed at the [email protected] install script.    

Я подозреваю, что это связано с моей настройкой, поэтому я немного объясню это. libsbmlsim зависит от нескольких других двоичных файлов (cmake и libsbml), что у меня также есть как пакеты npm, которые я ввожу в качестве зависимостей или npm install cmake и т. Д. Я установил скрипт установки в файлы package.json каждого пакета для запуска make, и у меня есть соответствующий Makefile, который загружает двоичные файлы.

Опять же, это работает, когда я бегу npm install когда я libsbmlsim как свой собственный проект, но он не может установить, когда он установлен как зависимость, т.е. npm install libsbmlsim.

Вот мой Makefile:

all: 
    wget http://fun.bio.keio.ac.jp/software/libsbmlsim/downloads/libsbmlsim-1.1.0.tar.gz 
    tar -xvzf libsbmlsim-1.1.0.tar.gz 
    mkdir -p libsbmlsim-1.1.0/build 
    cd libsbmlsim-1.1.0/build; export PATH=../../node_modules/cmake/bin:$(PATH); cmake .. -DCMAKE_INSTALL_PREFIX=../../libsbmlsim -DLIBSBML_INCLUDE_DIR=../../node_modules/libsbml/include -DLIBSBML_LIBRARY=../../node_modules/libsbml/lib64/libsbml.so 
    cd libsbmlsim-1.1.0/build; export PATH=../../node_modules/cmake/bin:$(PATH); make -j4 
    cd libsbmlsim-1.1.0/build; make install; 
    rm -rf libsbmlsim-1.1.0 
    rm *.tar.gz 

Источник доступен здесь: https://github.com/stanley-gu/libsbmlsim

+0

что вы имеете в виду «не удается правильно установить»? Что сообщение об ошибке. –

+0

Я добавил сообщение об ошибке и несколько более подробно, я полагаюсь на двоичный файл в другом пакете, я называю 'node_modules/cmake/bin/cmake', который отлично работает, когда я запускаю' npm install' нормально, но когда он установленный как пакет из реестра npm, где я устанавливаю скрипт установки как 'make', он не может найти двоичный файл, хотя я добавил его как зависимость. – user1027169

+0

, основанный на ошибке, он не может найти двоичный файл cmake. Поскольку я не могу работать здесь, доступен ли cmake при построении, где вы думаете, что это такое? –

ответ

1

Если вы не опубликовали свой модуль НПМ реестра (npm publish), вы должны смотреть на npm link во время развитие.

более

детали http://howtonode.org/introduction-to-npm (несколько разреженных)

+0

Спасибо за ответ, я действительно опубликовал его в реестре npm , как я пытался использовать его как зависимость во втором приложении. – user1027169

+0

вы не можете использовать пакет redhat внутри своего npm. Например, не работает на Mac. почему вы не можете полагаться на простой make? потому что lib, который вы используете, требует cmake? –

+0

Я знаю, что не стоит включать двоичный файл внутри пакета, но у меня есть несколько разных приложений, которые требуют создания cmake, и я надеялся получить решение, чтобы я мог легко получить двоичные файлы cmake и построить с помощью НПМ. – user1027169

Смежные вопросы