2017-03-02 129 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