我正在構建一個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
取決於其他一些二進制文件(cmake
和libsbml
),那我也有作爲捆綁爲我帶來的相關性或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
你是什麼意思「沒有正確安裝」?什麼錯誤消息。 – 2013-02-14 02:46:48
我添加了錯誤消息和一些更多的細節,我依賴於一個不同的包中的二進制文件,我調用'node_modules/cmake/bin/cmake',當我正常運行'npm install'時工作正常,但是當它作爲軟件包從npm註冊表中安裝,我將安裝腳本設置爲'make',但它無法找到二進制文件,即使我已將它添加爲依賴項。基於錯誤的 – user1027169 2013-02-14 03:09:58
,它找不到cmake二進制文件。由於我無法在這裏運行,因此在構建您認爲它的位置時可以使用cmake嗎? – 2013-02-14 03:29:29