2017-08-29 82 views
0

我在阿爾派:3.6我已經在系統上安裝了zeromq二進制文件(從源代碼編譯)。如何在npm中使用預安裝的二進制文件(zeromq)而不是通過node-gyp工具進行構建?

現在我想爲此使用nodejs的綁定。 所以使用https://github.com/JustinTulloss/zeromq.node

這裏是一些指令,我們可以在這裏從源代碼構建庫。 https://github.com/JustinTulloss/zeromq.node/wiki/Installation#installation-on-linux--bsd-without-root-access

我們可以complie LIB我們自己而是放在二進制文件在同一個文件夾,而是我想NPM使用其安裝在系統(/應用/本地) 據我可以GESS它的這些遊戲庫兩行,我不知道太多關於它的

export CXXFLAGS="-I $(readlink -f ../include)" 
export LDFLAGS="-L $(readlink -f ../lib) -Wl,-rpath=$(readlink -f ../lib)" 

然後npm install會使用庫我們只是遵從在zeromq文件夾

我沒有CXXFLAGS的很多知識和LDFLAGS所以是可能的。

回答

0

您引用的安裝說明是針對沒有root訪問的peopel,因此無法在「常規位置」(如/usr/usr/local)中安裝軟件。如果將庫安裝到主目錄等「不尋常的地方」,則必須告訴編譯器和鏈接器可以找到庫的位置。那就是在這種情況下使用CXXFLAGSLDFLAGS。由於您似乎有root訪問權限並在「常規地點」安裝了ZeroMQ庫,因此npm install zmq應該在您沒有設置這些varaibales的情況下運行。

更新:上述似乎不起作用。但是,根據https://github.com/JustinTulloss/zeromq.node#project-status,該模塊已被棄用。新的zeromq模型對我來說沒有編譯。看到這個最小Dockerfile:

FROM node:alpine 

RUN npm install zeromq 

注:這不使用預裝的庫,但預先建立一個替代。但是,您可以從基礎映像中省略預先安裝的庫以節省大小。

+0

它不工作,它試圖從源代碼編譯..我不想因爲我的情況,我只想出貨輕量級的應用程序,我們的搬運工集裝箱圖像已經libzmq預裝.. –

+0

,所以我想NPM安裝使用preinstallled zmq而不是再編譯一次,編譯需要時間,這對我來說是個問題。有沒有什麼辦法可以讓npm install使用systme lib insead從頭開始構建新的? –

相關問題