2013-02-13 175 views
1

我正在構建一個npm包(libsbmlsim),用於安裝稍後將在服務器端使用的二進制文件。當包是依賴關係時,npm安裝失敗

當我運行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取決於其他一些二進制文件(cmakelibsbml),那我也有作爲捆綁爲我帶來的相關性或npm install cmake等我設置的安裝腳本中的每個包的的package.json文件來運行make NPM包,我有相應的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

你是什麼意思「沒有正確安裝」?什麼錯誤消息。 – 2013-02-14 02:46:48

+0

我添加了錯誤消息和一些更多的細節,我依賴於一個不同的包中的二進制文件,我調用'node_modules/cmake/bin/cmake',當我正常運行'npm install'時工作正常,但是當它作爲軟件包從npm註冊表中安裝,我將安裝腳本設置爲'make',但它無法找到二進制文件,即使我已將它添加爲依賴項。基於錯誤的 – user1027169 2013-02-14 03:09:58

+0

,它找不到cmake二進制文件。由於我無法在這裏運行,因此在構建您認爲它的位置時可以使用cmake嗎? – 2013-02-14 03:29:29

回答

1

除非你發佈你的模塊,以故宮註冊表(npm publish),你需要時看npm link發展。

詳情http://howtonode.org/introduction-to-npm(有點稀疏)

+0

感謝你的迴應,我確實將它發佈到了npm註冊表中,這是我試圖將它作爲第二個應用程序中的依賴項來使用它的方式。 – user1027169 2013-02-14 03:11:41

+0

你不能真正在你的npm中使用redhat包。例如,在Mac上不起作用。你爲什麼不能依靠簡單的製作?因爲你使用的庫需要cmake? – 2013-02-14 03:27:33

+0

我知道在包中包含一個二進制文件並不是一個好主意,但我有幾個需要cmake構建的不同應用程序,並且我希望能有一個解決方案,以便我可以輕鬆地獲取cmake二進制文件並與NPM。 – user1027169 2013-02-14 03:41:25

相關問題