Node.js 如何在Ubuntu(AmazonEC2实例)上安装websocket节点?

Node.js 如何在Ubuntu(AmazonEC2实例)上安装websocket节点?,node.js,ubuntu,amazon-ec2,websocket,npm,Node.js,Ubuntu,Amazon Ec2,Websocket,Npm,我已经到处找了,但是我发现没有一个解决办法有用。我想做的就是 npm安装websocket 我在这篇文章中找到的大多数帖子都暗示人们缺少make、gcc、g++或python,但我拥有所有这些。我的python是v2.7.6 为了解决上述npm失败的问题,我已经做到了 sudonpm--websocket:verbose--nodedir=/home/ubuntu/node install-gwebsocket 但当我尝试时,我得到: ubuntu@ip-172-31-20-33:~$ sudo

我已经到处找了,但是我发现没有一个解决办法有用。我想做的就是

npm安装websocket

我在这篇文章中找到的大多数帖子都暗示人们缺少make、gcc、g++或python,但我拥有所有这些。我的python是v2.7.6

为了解决上述npm失败的问题,我已经做到了

sudonpm--websocket:verbose--nodedir=/home/ubuntu/node install-gwebsocket

但当我尝试时,我得到:

ubuntu@ip-172-31-20-33:~$ sudo npm --websocket:verbose --nodedir=/home/ubuntu/node install -g websocket

> websocket@1.0.8 install /usr/local/lib/node_modules/websocket
> node install.js

[websocket v1.0.8] Attempting to compile native extensions.
child_process: customFds option is deprecated, use stdio instead.
make: Entering directory `/usr/local/lib/node_modules/websocket/build'
  CXX(target) Release/obj.target/validation/src/validation.o
../src/validation.cc:117:34: error: ‘Arguments’ does not name a type
   static Handle<Value> New(const Arguments& args)
                                  ^
../src/validation.cc:117:45: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
   static Handle<Value> New(const Arguments& args)
                                             ^
../src/validation.cc:125:42: error: ‘Arguments’ does not name a type
   static Handle<Value> IsValidUTF8(const Arguments& args)
                                          ^
../src/validation.cc:125:53: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
   static Handle<Value> IsValidUTF8(const Arguments& args)
                                                     ^
In file included from ../src/validation.cc:8:0:
/home/ubuntu/node/deps/v8/include/v8.h: In static member function ‘static void Validation::Initialize(v8::Handle<v8::Object>)’:
/home/ubuntu/node/deps/v8/include/v8.h:816:13: error: ‘v8::HandleScope::HandleScope()’ is protected
   V8_INLINE HandleScope() {}
             ^
../src/validation.cc:108:17: error: within this context
     HandleScope scope;
                 ^
../src/validation.cc:109:58: error: no matching function for call to ‘v8::FunctionTemplate::New(v8::Handle<v8::Value> (&)(const int&))’
     Local<FunctionTemplate> t = FunctionTemplate::New(New);
                                                          ^
../src/validation.cc:109:58: note: candidate is:
In file included from ../src/validation.cc:8:0:
/home/ubuntu/node/deps/v8/include/v8.h:3434:34: note: static v8::Local<v8::FunctionTemplate> v8::FunctionTemplate::New(v8::Isolate*, v8::FunctionCallback, v8::Handle<v8::Value>, v8::Handle<v8::Signature>, int)
   static Local<FunctionTemplate> New(
                                  ^
/home/ubuntu/node/deps/v8/include/v8.h:3434:34: note:   no known conversion for argument 1 from ‘v8::Handle<v8::Value>(const int&)’ to ‘v8::Isolate*’
../src/validation.cc:111:77: error: no matching function for call to ‘NODE_SET_METHOD(v8::Local<v8::Function>, const char [12], v8::Handle<v8::Value> (&)(const int&))’
     NODE_SET_METHOD(t->GetFunction(), "isValidUTF8", Validation::IsValidUTF8);
                                                                             ^
../src/validation.cc:111:77: note: candidate is:
In file included from ../src/validation.cc:9:0:
/home/ubuntu/node/src/node.h:211:13: note: template<class TypeName> void node::NODE_SET_METHOD(const TypeName&, const char*, v8::FunctionCallback)
 inline void NODE_SET_METHOD(const TypeName& recv,
             ^
/home/ubuntu/node/src/node.h:211:13: note:   template argument deduction/substitution failed:
../src/validation.cc:111:77: note:   cannot convert ‘Validation::IsValidUTF8’ (type ‘v8::Handle<v8::Value>(const int&)’) to type ‘v8::FunctionCallback {aka void (*)(const v8::FunctionCallbackInfo<v8::Value>&)}’
     NODE_SET_METHOD(t->GetFunction(), "isValidUTF8", Validation::IsValidUTF8);
                                                                             ^
../src/validation.cc:112:17: error: ‘NewSymbol’ is not a member of ‘v8::String’
     target->Set(String::NewSymbol("Validation"), t->GetFunction());
                 ^
In file included from ../src/validation.cc:8:0:
/home/ubuntu/node/deps/v8/include/v8.h: In static member function ‘static v8::Handle<v8::Value> Validation::New(const int&)’:
/home/ubuntu/node/deps/v8/include/v8.h:816:13: error: ‘v8::HandleScope::HandleScope()’ is protected
   V8_INLINE HandleScope() {}
             ^
../src/validation.cc:119:17: error: within this context
     HandleScope scope;
                 ^
../src/validation.cc:121:27: error: request for member ‘This’ in ‘args’, which is of non-class type ‘const int’
     validation->Wrap(args.This());
                           ^
../src/validation.cc:122:17: error: request for member ‘This’ in ‘args’, which is of non-class type ‘const int’
     return args.This();
                 ^
In file included from ../src/validation.cc:8:0:
/home/ubuntu/node/deps/v8/include/v8.h: In static member function ‘static v8::Handle<v8::Value> Validation::IsValidUTF8(const int&)’:
/home/ubuntu/node/deps/v8/include/v8.h:816:13: error: ‘v8::HandleScope::HandleScope()’ is protected
   V8_INLINE HandleScope() {}
             ^
../src/validation.cc:127:17: error: within this context
     HandleScope scope;
                 ^
../src/validation.cc:128:36: error: invalid types ‘const int[int]’ for array subscript
     if (!Buffer::HasInstance(args[0])) {
                                    ^
../src/validation.cc:129:46: error: ‘New’ is not a member of ‘v8::String’
       return ThrowException(Exception::Error(String::New("First argument needs to be a buffer")));
                                              ^
../src/validation.cc:129:97: error: ‘ThrowException’ was not declared in this scope
       return ThrowException(Exception::Error(String::New("First argument needs to be a buffer")));
                                                                                                 ^
../src/validation.cc:131:38: error: invalid types ‘const int[int]’ for array subscript
     Local<Object> buffer_obj = args[0]->ToObject();
                                      ^
../src/validation.cc:134:67: error: ‘class v8::HandleScope’ has no member named ‘Close’
     return is_valid_utf8(buffer_length, buffer_data) == 1 ? scope.Close(True()) : scope.Close(False());
                                                                   ^
../src/validation.cc:134:78: error: too few arguments to function ‘v8::Handle<v8::Boolean> v8::True(v8::Isolate*)’
     return is_valid_utf8(buffer_length, buffer_data) == 1 ? scope.Close(True()) : scope.Close(False());
                                                                              ^
In file included from ../src/validation.cc:8:0:
/home/ubuntu/node/deps/v8/include/v8.h:6526:17: note: declared here
 Handle<Boolean> True(Isolate* isolate) {
                 ^
../src/validation.cc:134:89: error: ‘class v8::HandleScope’ has no member named ‘Close’
     return is_valid_utf8(buffer_length, buffer_data) == 1 ? scope.Close(True()) : scope.Close(False());
                                                                                         ^
../src/validation.cc:134:101: error: too few arguments to function ‘v8::Handle<v8::Boolean> v8::False(v8::Isolate*)’
     return is_valid_utf8(buffer_length, buffer_data) == 1 ? scope.Close(True()) : scope.Close(False());
                                                                                                     ^
In file included from ../src/validation.cc:8:0:
/home/ubuntu/node/deps/v8/include/v8.h:6535:17: note: declared here
 Handle<Boolean> False(Isolate* isolate) {
                 ^
/home/ubuntu/node/deps/v8/include/v8.h: In function ‘void init(v8::Handle<v8::Object>)’:
/home/ubuntu/node/deps/v8/include/v8.h:816:13: error: ‘v8::HandleScope::HandleScope()’ is protected
   V8_INLINE HandleScope() {}
             ^
../src/validation.cc:140:15: error: within this context
   HandleScope scope;
               ^
make: *** [Release/obj.target/validation/src/validation.o] Error 1
make: Leaving directory `/usr/local/lib/node_modules/websocket/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:267:23)
gyp ERR! stack     at ChildProcess.emit (events.js:110:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:1059:12)
gyp ERR! System Linux 3.13.0-36-generic
gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/websocket
gyp ERR! node -v v0.13.0-pre
gyp ERR! node-gyp -v v1.0.1
gyp ERR! not ok
[websocket v1.0.8]
    Native code compile failed!!
    Please note that this module DOES NOT REQUIRE the native components
    and will still work without them, though not quite as efficiently.

    On Windows, native extensions require Visual Studio and Python.
    On Unix, native extensions require Python, make and a C++ compiler.
    Start npm with --websocket:verbose to show compilation output (if any).
websocket@1.0.8 /usr/local/lib/node_modules/websocket
ubuntu@ip-172-31-20-33:~$sudo npm--websocket:verbose--nodedir=/home/ubuntu/node install-g websocket
> websocket@1.0.8安装/usr/local/lib/node_模块/websocket
>node install.js
[websocket v1.0.8]正在尝试编译本机扩展。
子进程:不推荐使用customFds选项,请改用stdio。
make:进入目录“/usr/local/lib/node\u modules/websocket/build”
CXX(目标)发布/obj.target/validation/src/validation.o
../src/validation.cc:117:34:错误:“参数”未命名类型
静态句柄新建(常量参数和参数)
^
…/SRC/Value.cc:117:45:错误:ISO C++禁止声明“没有任何类型的ARG”[fPrime]
静态句柄新建(常量参数和参数)
^
../src/validation.cc:125:42:错误:“参数”未命名类型
静态句柄IsValidUTF8(常量参数和参数)
^
…/SRC/Value.cc:125:53:错误:ISO C++禁止声明“无符号”(不允许)。
静态句柄IsValidUTF8(常量参数和参数)
^
在../src/validation.cc:8:0中包含的文件中:
/home/ubuntu/node/deps/v8/include/v8.h:在静态成员函数“static void Validation::Initialize(v8::Handle)”中:
/home/ubuntu/node/deps/v8/include/v8.h:816:13:错误:“v8::HandleScope::HandleScope()”受保护
V8_内联手柄镜(){}
^
../src/validation.cc:108:17:错误:在此上下文中
手镜镜;
^
../src/validation.cc:109:58:错误:调用“v8::FunctionTemplate::New(v8::Handle(&)(const int&))时没有匹配的函数
本地t=FunctionTemplate::新建(新建);
^
../src/validation.cc:109:58:注:候选人是:
在../src/validation.cc:8:0中包含的文件中:
/home/ubuntu/node/deps/v8/include/v8.h:3434:34:注意:静态v8::本地v8::FunctionTemplate::New(v8::Isolate*,v8::FunctionCallback,v8::Handle,v8::Handle,int)
静态本地新(
^
/home/ubuntu/node/deps/v8/include/v8.h:3434:34:注意:参数1从“v8::Handle(const int&)”到“v8::Isolate*”没有已知的转换
../src/validation.cc:111:77:错误:调用“NODE_SET_METHOD(v8::Local,const char[12],v8::Handle(&)(const int&))时没有匹配的函数”
节点设置方法(t->GetFunction(),“isValidUTF8”,Validation::isValidUTF8);
^
../src/validation.cc:111:77:注:候选人是:
在../src/validation.cc:9:0中包含的文件中:
/home/ubuntu/node/src/node.h:211:13:注意:模板void node::node\u SET\u方法(const TypeName&,const char*,v8::FunctionCallback)
内联无效节点设置方法(const TypeName和recv,
^
/home/ubuntu/node/src/node.h:211:13:注意:模板参数推断/替换失败:
../src/validation.cc:111:77:注意:无法将'validation::IsValidUTF8'(类型'v8::Handle(const int&')转换为类型'v8::FunctionCallback{aka void(*)(const v8::FunctionCallbackInfo&)}
节点设置方法(t->GetFunction(),“isValidUTF8”,Validation::isValidUTF8);
^
../src/validation.cc:112:17:错误:“NewSymbol”不是“v8::String”的成员
target->Set(字符串::NewSymbol(“验证”),t->GetFunction();
^
在../src/validation.cc:8:0中包含的文件中:
/home/ubuntu/node/deps/v8/include/v8.h:在静态成员函数“static v8::Handle Validation::New(const int&)”中:
/home/ubuntu/node/deps/v8/include/v8.h:816:13:错误:“v8::HandleScope::HandleScope()”受保护
V8_内联手柄镜(){}
^
../src/validation.cc:119:17:错误:在此上下文中
手镜镜;
^
../src/validation.cc:121:27:错误:请求“args”中非类类型“const int”的成员“This”
验证->换行(args.This());
^
../src/validation.cc:122:17:错误:请求“args”中非类类型“const int”的成员“This”
返回args.This();
^
在../src/validation.cc:8:0中包含的文件中:
/home/ubuntu/node/deps/v8/include/v8.h:在静态成员函数“static v8::Handle Validation::IsValidUTF8(const int&)”中:
/home/ubuntu/node/deps/v8/include/v8.h:816:13:错误:“v8::HandleScope::HandleScope()”受保护
V8_内联手柄镜(){}
^
../src/validation.cc:127:17:错误:在此上下文中
手镜镜;
^
../src/validation.cc:128:36:错误:数组下标的类型“const int[int]”无效
如果(!Buffer::HasInstance(参数[0])){
^
../src/validation.cc:129:46:错误:“New”不是“v8::String”的成员
return ThrowException(Exception::Error(String::New(“第一个参数需要是缓冲区”));
^
../src/validation.cc:129:97:错误:“ThroweException”未在此作用域中声明
return ThrowException(Exception::Error(String::New(“第一个参数需要是缓冲区”));
^
../src/validation.cc:131:38:err
npm install -g node-gyp
npm install websocket
server {
  listen 443 ssl;
  server_name <hostname>;
  ssl_certificate <path>/<name>.crt;
  ssl_certificate_key <path>/<name>.key;
  ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers HIGH:!aNULL:!MD5;

  location / { 
    proxy_set_header Host $host;
    proxy_pass http://127.0.0.1:80;
  }
}