2013-02-13 3 views
1

Je construis un paquet npm (libsbmlsim) qui installe les binaires que j'utiliserai plus tard côté serveur.L'installation de npm échoue quand le paquet est une dépendance

Le paquet se construit très bien quand je lance npm install, cependant, quand je l'utilise comme une dépendance dans un autre projet par l'intermédiaire npm install libsbmlsim, il ne parvient pas à trouver un des binaires dont il dépend (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.    

Je suppose que cela a à voir avec ma configuration, donc je vais vous expliquer un peu ici. libsbmlsim dépend de quelques autres binaires (cmake et libsbml), que j'ai aussi fourni en tant que paquets npm que j'apporte en tant que dépendances ou npm install cmake etc. J'ai mis le script d'installation dans les fichiers package.json de chaque paquet pour exécuter make, et j'ai un correspondant Makefile qui télécharge les binaires.

Encore une fois, cela fonctionne quand je lance npm install quand j'ai libsbmlsim comme son propre projet, mais il ne parvient pas à installer quand il est installé comme une dépendance, à savoir npm install libsbmlsim.

Voici mon 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 

Source est disponible ici: https://github.com/stanley-gu/libsbmlsim

+0

qu'entendez-vous par « échec d'installation »? Quel est le message d'erreur? –

+0

J'ai ajouté le message d'erreur et un peu plus de détails, je compte sur un binaire dans un paquet différent, j'appelle 'node_modules/cmake/bin/cmake', qui fonctionne bien quand je lance normalement' npm install', mais quand il est installé en tant que paquet à partir du registre npm, où j'ai défini le script d'installation comme 'make', il ne parvient pas à trouver le binaire, même si je l'ai ajouté en tant que dépendance. – user1027169

+0

basé sur l'erreur, il ne peut pas trouver le binaire cmake. Puisque je ne peux pas courir ici, cmake est-il disponible en construisant où vous pensez que c'est? –

Répondre

1

Sauf si vous avez publié votre module au registre de NPM (npm publish), vous aurez besoin de regarder pendant npm link développement.

plus de détails http://howtonode.org/introduction-to-npm (un peu clairsemée)

+0

Merci pour votre réponse, je l'ai en effet publié dans le registre npm , c'est ainsi que j'ai essayé de le consommer en tant que dépendance dans une seconde application. – user1027169

+0

vous ne pouvez pas vraiment utiliser un paquet redhat à l'intérieur de votre npm. Ne fonctionne pas sur Mac par exemple. pourquoi ne peux-tu pas te fier à la marque? parce que la bibliothèque que vous utilisez a besoin de cmake? –

+0

Je sais que ce n'est pas une bonne idée d'inclure un binaire dans le paquet, mais j'ai quelques applications différentes qui nécessitent cmake pour construire, et j'espérais avoir une solution pour que je puisse facilement obtenir les binaires cmake et construire avec NPM. – user1027169

Questions connexes