2017-03-02 94 views
3

我想在Ubuntu上安裝npm的aerospike-node客戶端。在ubuntu上安裝aerospike-node客戶端時出錯16.04

npm install aerospike 

安裝時我收到錯誤,如

SOLINK_MODULE(target) Release/obj.target/aerospike.node 
/usr/bin/ld: cannot find -lz 
collect2: error: ld returned 1 exit status 
aerospike.target.mk:186: recipe for target 'Release/obj.target/aerospike.node' failed 
make: *** [Release/obj.target/aerospike.node] Error 1 
rm binding_gyp_aerospike_client_c_target_run_scripts_aerospike_client_c_sh.intermediate 
make: Leaving directory '/home/sys1095/NodeProjects/aerospike-test/node_modules/aerospike/build' 
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2 
gyp ERR! stack  at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:276:23) 
gyp ERR! stack  at emitTwo (events.js:106:13) 
gyp ERR! stack  at ChildProcess.emit (events.js:191:7) 
gyp ERR! stack  at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12) 
gyp ERR! System Linux 4.4.0-21-generic 
gyp ERR! command "/usr/bin/nodejs" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" 
gyp ERR! cwd /home/sys1095/NodeProjects/aerospike-test/node_modules/aerospike 
gyp ERR! node -v v6.10.0 
gyp ERR! node-gyp -v v3.4.0 
gyp ERR! not ok 
npm WARN [email protected] No repository field. 
npm ERR! Linux 4.4.0-21-generic 
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "aerospike" 
npm ERR! node v6.10.0 
npm ERR! npm v3.10.10 
npm ERR! code ELIFECYCLE 

環境::節點-v 6.10.0,節點GYP -v 3.4.0,NPM -v 3.10.10。

我在aerospike github上檢查過這個問題,但是我沒有得到任何東西(具體的)。 我以爲這裏的主要問題開始

/usr/bin/ld: cannot find -lz 

我沒有得到什麼。 該節點的版本或任何有關os(ubuntu)與gcc編譯器版本有關的問題。

幫我看看這個。

+0

你嘗試搜索的「主要問題」? http://serverfault.com/questions/481859/usr-bin-ld-cannot-find-lz-but-libz-exists。 – kporter

回答

3

我會在這裏發表我做了什麼來從我的臨時筆記中獲取適用於我的應用程序的Ubuntu 16.04上的node.js。希望你可以按照我的步驟,包括我的失誤!!!,並找出你錯過的地方。

====所以這裏有雲====

安裝的node.js 在Ubuntu 16.04.1 LTS的Node.js客戶端安裝和測試

https://nodejs.org/en/ 下載並安裝最新的推薦發佈給大多數用戶。 節點v6.9.1-Linux的x64.tar.xz

(將文件保存到下載目錄)

$ cd ~/Downloads/ 
$ tar xvf node-v6.9.1-linux-x64.tar.xz 

⇒節點v6.9.1-Linux的x64的目錄與所有的node.js組件。

$ sudo mv node-v6.9.1-linux-x64 /usr/local/nodejs 

安裝庫預requisistes

sudo apt-get install libssl0.9.8 libssl-dev liblua5.1-dev 

(無法找到libssl0.9.8 - Ubuntu的16.04使用libssl1.0.0)

讓我們做一次一個:

$sudo apt-get install liblua5.1-dev(< - 只需要這樣做) 正在讀取軟件包列表...完成 大廈的依賴關係樹
讀取狀態信息...完成 注意,選擇「liblua5.1-0-dev的」,而不是「liblua5.1-dev的」 下面額外的軟件包將被安裝: 自動工具,開發的libltdl -dev libtool libtool-bin 建議的軟件包: libtool-doc autoconf automaken gfortran | Fortran95編譯器gcj-jdk 將安裝以下新軟件包: autotools-dev libltdl-dev liblua5.1-0-dev libtool libtool-bin 0升級,5新安裝,0刪除和165未升級。 需要獲得594 kB的檔案。 完成此操作後,將使用3,180 kB的額外磁盤空間。

$sudo apt-get install libssl-dev(見下文,已經安裝) 讀取軟件包列表...完成 大廈的依賴關係樹
讀取狀態信息...完成 的libssl-dev的已經是最新版本(1.0.2g-1ubuntu4.5 )。 0升級,0新安裝,0刪除和165未升級。

$ sudo apt-get install libssl1.0.0(見下文,已經安裝) 讀取軟件包列表...完成 大廈的依賴關係樹
讀取狀態信息...完成 libssl1.0.0已經是最新的版本(1.0.2g-1ubuntu4.5 )。 0升級,0新安裝,0刪除和165未升級。

添加符號鏈接:

$ sudo ln -s /usr/lib/x86_64-linux-gnu/liblua5.1.so /usr/lib/liblua.so 
$ sudo ln -s /usr/lib/x86_64-linux-gnu/liblua5.1.a /usr/lib/liblua.a 
$ ls /usr/lib/liblua* 

lrwxrwxrwx 1根根37 11月02日13時17 /usr/lib/liblua.a - >/usr/lib中/ x86_64的-Linux的GNU/liblua5。 1.A lrwxrwxrwx 1根根38 11月02日13時17分/usr/lib/liblua.so - > /usr/lib/x86_64-linux-gnu/liblua5.1.so

安裝NPM

(如果您沒有npm,則無法安裝aerospike node.js客戶端)

$ npm install aerospike 

程序'npm'目前未安裝。您可以通過鍵入安裝: sudo易於安裝NPM

$ sudo apt install npm 

運行應用程序

($ CD your_location/your_application /節點) 修改的package.json

是:

{ 
    "name": "xxx-app", 
    "version": "0.0.1", 
    "dependencies": { 
    "aerospike": "^1.0.36", 
    "inquirer": "^0.8.0" <--- my app specific 
    } 
} 

變化:"aerospike": "^2.0.0"

然後, $npm install inquirer --save-dev(詢問者是一個命令行的I/O我的應用程序庫)

$npm install aerospike --save-dev 

應該更新package.json到這樣的事情:

$ more package.json 
{ 
    "name": "xxx-app", 
    "version": "0.0.1", 
    "dependencies": { 
    "aerospike": "^2.0.0", 
    "inquirer": "^0.8.0" 
    }, 
    "devDependencies": { 
    "aerospike": "^2.4.1", 
    "inquirer": "^0.8.5" 
    } 
} 

正在運行的節點 - (我)app.js 在相應的子目錄:

$which nodejs 
/usr/bin/nodejs 
$nodejs app.js