我按照github.com/bitcoinjs/bitcoinjs-server上提供的说明进行操作
安装了以下依赖项
OpenSSL的
christianmacedo:bitcoinjs-server$ openssl version
OpenSSL 1.0.1f 6 Jan 2014
pkg配置: 无法弄清楚如何得到这个。虽然似乎要安装。
Node.js的
christianmacedo:bitcoinjs-server$ node -v
v0.10.25
尝试使用npm ...
安装bitcoinjs时christianmacedo:~$ sudo npm install bitcoinjs -g npm http GET https://registry.npmjs.org/bitcoinjs npm http 304 https://registry.npmjs.org/bitcoinjs npm http GET https://registry.npmjs.org/bignum npm http GET https://registry.npmjs.org/step npm http GET https://registry.npmjs.org/winston npm http GET https://registry.npmjs.org/irc npm http GET https://registry.npmjs.org/jsonrpc2 npm http GET https://registry.npmjs.org/yanop npm http GET https://registry.npmjs.org/forever npm http GET https://registry.npmjs.org/colors npm http GET https://registry.npmjs.org/progress-bar npm http GET https://registry.npmjs.org/mongodb npm http GET https://registry.npmjs.org/lru-cache npm http GET https://registry.npmjs.org/pkginfo npm http GET https://registry.npmjs.org/buffers npm http GET https://registry.npmjs.org/leveldb npm http GET https://registry.npmjs.org/mkdirp npm http GET https://registry.npmjs.org/buffertools npm http GET https://registry.npmjs.org/binary npm http 304 https://registry.npmjs.org/step npm http 304 https://registry.npmjs.org/irc npm http 304 https://registry.npmjs.org/winston npm http 304 https://registry.npmjs.org/bignum npm http 304 https://registry.npmjs.org/jsonrpc2 npm http 304 https://registry.npmjs.org/yanop npm http 304 https://registry.npmjs.org/progress-bar npm http 304 https://registry.npmjs.org/mongodb npm http 304 https://registry.npmjs.org/forever npm http 304 https://registry.npmjs.org/colors npm http 304 https://registry.npmjs.org/lru-cache npm http 304 https://registry.npmjs.org/pkginfo npm http 304 https://registry.npmjs.org/buffers npm http 304 https://registry.npmjs.org/buffertools npm http 304 https://registry.npmjs.org/mkdirp npm http 304 https://registry.npmjs.org/leveldb npm http 304 https://registry.npmjs.org/binary npm WARN engine leveldb@0.7.1: wanted: {"node":">=0.6.13 buffertools@2.0.1 install /opt/local/lib/node_modules/bitcoinjs/node_modules/buffertools > node-gyp rebuild CXX(target) Release/obj.target/buffertools/buffertools.o SOLINK_MODULE(target) Release/buffertools.node SOLINK_MODULE(target) Release/buffertools.node: Finished npm http GET https://registry.npmjs.org/chainsaw npm http GET https://registry.npmjs.org/put npm http GET https://registry.npmjs.org/cliff/0.1.8 npm http GET https://registry.npmjs.org/flatiron npm http GET https://registry.npmjs.org/nconf npm http GET https://registry.npmjs.org/forever-monitor/1.2.3 npm http GET https://registry.npmjs.org/nssocket npm http GET https://registry.npmjs.org/optimist npm http GET https://registry.npmjs.org/timespan npm http GET https://registry.npmjs.org/watch npm http GET https://registry.npmjs.org/utile npm http 304 https://registry.npmjs.org/jsonparse npm http GET https://registry.npmjs.org/async npm http GET https://registry.npmjs.org/cycle npm http GET https://registry.npmjs.org/eyes npm http GET https://registry.npmjs.org/stack-trace npm http GET https://registry.npmjs.org/request npm http 304 https://registry.npmjs.org/put npm http 304 https://registry.npmjs.org/flatiron npm http 304 https://registry.npmjs.org/cliff/0.1.8 npm http 304 https://registry.npmjs.org/nconf npm http GET https://registry.npmjs.org/bson/0.2.5 npm http GET https://registry.npmjs.org/kerberos/0.0.3 npm http 304 https://registry.npmjs.org/optimist npm http 304 https://registry.npmjs.org/nssocket npm http 304 https://registry.npmjs.org/chainsaw npm http 304 https://registry.npmjs.org/async npm http 304 https://registry.npmjs.org/forever-monitor/1.2.3 npm http 304 https://registry.npmjs.org/timespan npm http GET https://registry.npmjs.org/traverse npm http 304 https://registry.npmjs.org/utile npm http 304 https://registry.npmjs.org/cycle npm http 304 https://registry.npmjs.org/watch npm http 304 https://registry.npmjs.org/request npm http 304 https://registry.npmjs.org/eyes npm http 304 https://registry.npmjs.org/bson/0.2.5 npm http 304 https://registry.npmjs.org/stack-trace npm http 304 https://registry.npmjs.org/traverse npm http 304 https://registry.npmjs.org/kerberos/0.0.3 npm http GET https://registry.npmjs.org/lazy npm http GET https://registry.npmjs.org/eventemitter2 npm http GET https://registry.npmjs.org/i npm http GET https://registry.npmjs.org/ncp npm http GET https://registry.npmjs.org/rimraf npm http GET https://registry.npmjs.org/deep-equal npm http GET https://registry.npmjs.org/wordwrap npm http GET https://registry.npmjs.org/minimist npm http 304 https://registry.npmjs.org/eventemitter2 npm http 304 https://registry.npmjs.org/i npm http 304 https://registry.npmjs.org/ncp npm http 304 https://registry.npmjs.org/rimraf npm http 304 https://registry.npmjs.org/lazy npm http GET https://registry.npmjs.org/broadway/0.2.9 npm http GET https://registry.npmjs.org/optimist/0.6.0 npm http GET https://registry.npmjs.org/prompt/0.2.11 npm http GET https://registry.npmjs.org/director/1.1.10 npm http GET https://registry.npmjs.org/broadway npm http GET https://registry.npmjs.org/minimatch npm http GET https://registry.npmjs.org/ps-tree npm http 304 https://registry.npmjs.org/deep-equal npm http 304 https://registry.npmjs.org/wordwrap npm http 304 https://registry.npmjs.org/minimist npm http 304 https://registry.npmjs.org/director/1.1.10 npm http 304 https://registry.npmjs.org/optimist/0.6.0 npm http 304 https://registry.npmjs.org/prompt/0.2.11 npm http 304 https://registry.npmjs.org/broadway/0.2.9 npm http 304 https://registry.npmjs.org/minimatch npm http 304 https://registry.npmjs.org/ps-tree npm http 304 https://registry.npmjs.org/broadway npm http GET https://registry.npmjs.org/node-uuid npm http GET https://registry.npmjs.org/event-stream npm http GET https://registry.npmjs.org/cookie-jar npm http GET https://registry.npmjs.org/aws-sign npm http GET https://registry.npmjs.org/oauth-sign npm http GET https://registry.npmjs.org/forever-agent npm http GET https://registry.npmjs.org/tunnel-agent npm http GET https://registry.npmjs.org/json-stringify-safe npm http GET https://registry.npmjs.org/qs npm http GET https://registry.npmjs.org/form-data npm http GET https://registry.npmjs.org/mime npm http GET https://registry.npmjs.org/hawk npm http GET https://registry.npmjs.org/async/0.2.9 npm http GET https://registry.npmjs.org/ini npm http GET https://registry.npmjs.org/sigmund npm http 304 https://registry.npmjs.org/aws-sign npm http 304 https://registry.npmjs.org/node-uuid npm http 304 https://registry.npmjs.org/oauth-sign npm http 304 https://registry.npmjs.org/cookie-jar npm http 304 https://registry.npmjs.org/event-stream npm http 304 https://registry.npmjs.org/tunnel-agent npm http 304 https://registry.npmjs.org/forever-agent npm http 304 https://registry.npmjs.org/json-stringify-safe npm http 304 https://registry.npmjs.org/qs npm http 304 https://registry.npmjs.org/form-data npm http GET https://registry.npmjs.org/eventemitter2/0.4.12 npm http 304 https://registry.npmjs.org/hawk npm http 304 https://registry.npmjs.org/sigmund npm http GET https://registry.npmjs.org/read npm http GET https://registry.npmjs.org/revalidator npm http 304 https://registry.npmjs.org/mime npm http 304 https://registry.npmjs.org/async/0.2.9 npm WARN engine hawk@0.10.2: wanted: {"node":"0.8.x"} (current: {"node":"v0.10.25","npm":"1.3.24"}) npm http 304 https://registry.npmjs.org/ini npm http 304 https://registry.npmjs.org/eventemitter2/0.4.12 npm http 304 https://registry.npmjs.org/revalidator npm http 304 https://registry.npmjs.org/read npm http GET https://registry.npmjs.org/combined-stream npm http GET https://registry.npmjs.org/mute-stream npm http 304 https://registry.npmjs.org/combined-stream npm http 304 https://registry.npmjs.org/mute-stream npm http GET https://registry.npmjs.org/utile/0.2.1 npm http GET https://registry.npmjs.org/delayed-stream/0.0.5 npm http GET https://registry.npmjs.org/cryptiles npm http GET https://registry.npmjs.org/hoek npm http GET https://registry.npmjs.org/sntp npm http GET https://registry.npmjs.org/boom npm http 304 https://registry.npmjs.org/utile/0.2.1 npm http 304 https://registry.npmjs.org/boom npm http 304 https://registry.npmjs.org/delayed-stream/0.0.5 npm http 304 https://registry.npmjs.org/cryptiles npm http 304 https://registry.npmjs.org/sntp npm http 304 https://registry.npmjs.org/hoek npm WARN engine boom@0.3.8: wanted: {"node":"0.8.x"} (current: {"node":"v0.10.25","npm":"1.3.24"}) npm WARN engine sntp@0.1.4: wanted: {"node":"0.8.x"} (current: {"node":"v0.10.25","npm":"1.3.24"}) npm WARN engine cryptiles@0.1.3: wanted: {"node":"0.8.x"} (current: {"node":"v0.10.25","npm":"1.3.24"}) npm WARN engine hoek@0.7.6: wanted: {"node":"0.8.x"} (current: {"node":"v0.10.25","npm":"1.3.24"}) > bignum@0.6.2 install /opt/local/lib/node_modules/bitcoinjs/node_modules/bignum > node-gyp configure build CXX(target) Release/obj.target/bignum/bignum.o SOLINK_MODULE(target) Release/bignum.node SOLINK_MODULE(target) Release/bignum.node: Finished > kerberos@0.0.3 install /opt/local/lib/node_modules/bitcoinjs/node_modules/mongodb/node_modules/kerberos > (node-gyp rebuild 2> builderror.log) || (exit 0) CXX(target) Release/obj.target/kerberos/lib/kerberos.o CXX(target) Release/obj.target/kerberos/lib/worker.o CC(target) Release/obj.target/kerberos/lib/kerberosgss.o CC(target) Release/obj.target/kerberos/lib/base64.o CXX(target) Release/obj.target/kerberos/lib/kerberos_context.o SOLINK_MODULE(target) Release/kerberos.node SOLINK_MODULE(target) Release/kerberos.node: Finished > bson@0.2.5 install /opt/local/lib/node_modules/bitcoinjs/node_modules/mongodb/node_modules/bson > (node-gyp rebuild 2> builderror.log) || (exit 0) CXX(target) Release/obj.target/bson/ext/bson.o SOLINK_MODULE(target) Release/bson.node SOLINK_MODULE(target) Release/bson.node: Finished > leveldb@0.7.1 preinstall /opt/local/lib/node_modules/bitcoinjs/node_modules/leveldb > make build if [ ! -d ./build ]; then node-gyp configure; fi node-gyp build CXX(target) Release/obj.target/leveldb/deps/leveldb/db/builder.o CXX(target) Release/obj.target/leveldb/deps/leveldb/db/db_impl.o CXX(target) Release/obj.target/leveldb/deps/leveldb/db/db_iter.o CXX(target) Release/obj.target/leveldb/deps/leveldb/db/filename.o CXX(target) Release/obj.target/leveldb/deps/leveldb/db/dbformat.o CXX(target) Release/obj.target/leveldb/deps/leveldb/db/log_reader.o CXX(target) Release/obj.target/leveldb/deps/leveldb/db/log_writer.o CXX(target) Release/obj.target/leveldb/deps/leveldb/db/memtable.o ../deps/leveldb/db/memtable.cc:104:31: warning: comparison of integers of different signs: 'long' and 'const size_t' (aka 'const unsigned long') [-Wsign-compare] assert((p + val_size) - buf == encoded_len); ~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~ /usr/include/assert.h:93:25: note: expanded from macro 'assert' (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0) ^ 1 warning generated. CXX(target) Release/obj.target/leveldb/deps/leveldb/db/repair.o CXX(target) Release/obj.target/leveldb/deps/leveldb/db/table_cache.o CXX(target) Release/obj.target/leveldb/deps/leveldb/db/version_edit.o CXX(target) Release/obj.target/leveldb/deps/leveldb/db/version_set.o ../deps/leveldb/db/version_set.cc:58:13: warning: unused function 'IntSetToString' [-Wunused-function] std::string IntSetToString(const std::set& s) { ^ 1 warning generated. CXX(target) Release/obj.target/leveldb/deps/leveldb/db/write_batch.o CXX(target) Release/obj.target/leveldb/deps/leveldb/port/port_posix.o CXX(target) Release/obj.target/leveldb/deps/leveldb/table/block.o CXX(target) Release/obj.target/leveldb/deps/leveldb/table/filter_block.o CXX(target) Release/obj.target/leveldb/deps/leveldb/table/block_builder.o CXX(target) Release/obj.target/leveldb/deps/leveldb/table/format.o CXX(target) Release/obj.target/leveldb/deps/leveldb/table/iterator.o CXX(target) Release/obj.target/leveldb/deps/leveldb/table/merger.o CXX(target) Release/obj.target/leveldb/deps/leveldb/table/table.o ../deps/leveldb/table/table.cc:231:13: warning: unused variable 'handle' [-Wunused-variable] Slice handle = iiter->value(); ^ 1 warning generated. CXX(target) Release/obj.target/leveldb/deps/leveldb/table/table_builder.o CXX(target) Release/obj.target/leveldb/deps/leveldb/table/two_level_iterator.o CXX(target) Release/obj.target/leveldb/deps/leveldb/util/arena.o CXX(target) Release/obj.target/leveldb/deps/leveldb/util/bloom.o ../deps/leveldb/util/bloom.cc:50:26: warning: comparison of integers of different signs: 'size_t' (aka 'unsigned long') and 'int' [-Wsign-compare] for (size_t i = 0; i key(); ^ ../deps/leveldb/util/cache.cc:163:12: warning: private field 'last_id_' is not used [-Wunused-private-field] uint64_t last_id_; ^ 2 warnings generated. CXX(target) Release/obj.target/leveldb/deps/leveldb/util/coding.o CXX(target) Release/obj.target/leveldb/deps/leveldb/util/comparator.o CXX(target) Release/obj.target/leveldb/deps/leveldb/util/crc32c.o CXX(target) Release/obj.target/leveldb/deps/leveldb/util/env.o CXX(target) Release/obj.target/leveldb/deps/leveldb/util/env_posix.o CXX(target) Release/obj.target/leveldb/deps/leveldb/util/filter_policy.o CXX(target) Release/obj.target/leveldb/deps/leveldb/util/hash.o CXX(target) Release/obj.target/leveldb/deps/leveldb/util/logging.o ../deps/leveldb/util/logging.cc:67:40: warning: comparison of integers of different signs: 'const int' and 'unsigned long long' [-Wsign-compare] (v == kMaxUint64/10 && delta > kMaxUint64%10)) { ~~~~~ ^ ~~~~~~~~~~~~~ 1 warning generated. CXX(target) Release/obj.target/leveldb/deps/leveldb/util/options.o CXX(target) Release/obj.target/leveldb/deps/leveldb/util/status.o LIBTOOL-STATIC Release/leveldb.a CXX(target) Release/obj.target/snappy/deps/snappy/snappy-sinksource.o CXX(target) Release/obj.target/snappy/deps/snappy/snappy-stubs-internal.o CXX(target) Release/obj.target/snappy/deps/snappy/snappy.o ../deps/snappy/snappy.cc:1012:20: warning: comparison of integers of different signs: 'long' and 'unsigned long' [-Wsign-compare] if (op - base_ , AsyncCallback); ^~~~~~~~~~ ../src/cpp/handle.cc:234:12: note: in instantiation of function template specialization 'node_leveldb::JHandle::OpAsync::AsyncEnqueue' requested here return AsyncEnqueue(op); ^ ../src/cpp/helpers.h:20:29: note: candidate function not viable: no overload of 'AsyncCallback' matching 'const uv_after_work_cb' (aka 'void (*const)(uv_work_t *, int)') for 3rd argument static inline Handle AsyncQueue( ^ ../src/cpp/handle.cc:77:12: error: no matching function for call to 'AsyncQueue' return AsyncQueue(op, AsyncWorker, AsyncCallback); ^~~~~~~~~~ ../src/cpp/handle.cc:294:12: note: in instantiation of function template specialization 'node_leveldb::JHandle::OpAsync::AsyncEnqueue' requested here return AsyncEnqueue(op); ^ ../src/cpp/helpers.h:20:29: note: candidate function not viable: no overload of 'AsyncCallback' matching 'const uv_after_work_cb' (aka 'void (*const)(uv_work_t *, int)') for 3rd argument static inline Handle AsyncQueue( ^ ../src/cpp/handle.cc:77:12: error: no matching function for call to 'AsyncQueue' return AsyncQueue(op, AsyncWorker, AsyncCallback); ^~~~~~~~~~ ../src/cpp/handle.cc:340:12: note: in instantiation of function template specialization 'node_leveldb::JHandle::OpAsync::AsyncEnqueue' requested here return AsyncEnqueue(op); ^ ../src/cpp/helpers.h:20:29: note: candidate function not viable: no overload of 'AsyncCallback' matching 'const uv_after_work_cb' (aka 'void (*const)(uv_work_t *, int)') for 3rd argument static inline Handle AsyncQueue( ^ ../src/cpp/handle.cc:77:12: error: no matching function for call to 'AsyncQueue' return AsyncQueue(op, AsyncWorker, AsyncCallback); ^~~~~~~~~~ ../src/cpp/handle.cc:400:12: note: in instantiation of function template specialization 'node_leveldb::JHandle::OpAsync::AsyncEnqueue' requested here return AsyncEnqueue(op); ^ ../src/cpp/helpers.h:20:29: note: candidate function not viable: no overload of 'AsyncCallback' matching 'const uv_after_work_cb' (aka 'void (*const)(uv_work_t *, int)') for 3rd argument static inline Handle AsyncQueue( ^ ../src/cpp/handle.cc:77:12: error: no matching function for call to 'AsyncQueue' return AsyncQueue(op, AsyncWorker, AsyncCallback); ^~~~~~~~~~ ../src/cpp/handle.cc:468:12: note: in instantiation of function template specialization 'node_leveldb::JHandle::OpAsync::AsyncEnqueue' requested here return AsyncEnqueue(op); ^ ../src/cpp/helpers.h:20:29: note: candidate function not viable: no overload of 'AsyncCallback' matching 'const uv_after_work_cb' (aka 'void (*const)(uv_work_t *, int)') for 3rd argument static inline Handle AsyncQueue( ^ ../src/cpp/handle.cc:77:12: error: no matching function for call to 'AsyncQueue' return AsyncQueue(op, AsyncWorker, AsyncCallback); ^~~~~~~~~~ ../src/cpp/handle.cc:536:12: note: in instantiation of function template specialization 'node_leveldb::JHandle::OpAsync::AsyncEnqueue' requested here return AsyncEnqueue(op); ^ ../src/cpp/helpers.h:20:29: note: candidate function not viable: no overload of 'AsyncCallback' matching 'const uv_after_work_cb' (aka 'void (*const)(uv_work_t *, int)') for 3rd argument static inline Handle AsyncQueue( ^ ../src/cpp/handle.cc:77:12: error: no matching function for call to 'AsyncQueue' return AsyncQueue(op, AsyncWorker, AsyncCallback); ^~~~~~~~~~ ../src/cpp/handle.cc:144:12: note: in instantiation of function template specialization 'node_leveldb::JHandle::OpAsync::AsyncEnqueue' requested here return AsyncEnqueue(op); ^ ../src/cpp/handle.cc:591:46: note: in instantiation of function template specialization 'node_leveldb::JHandle::OpenAsync::Hook' requested here NODE_SET_METHOD(target, "open", OpenAsync::Hook); ^ ../src/cpp/helpers.h:20:29: note: candidate function not viable: no overload of 'AsyncCallback' matching 'const uv_after_work_cb' (aka 'void (*const)(uv_work_t *, int)') for 3rd argument static inline Handle AsyncQueue( ^ ../src/cpp/handle.cc:77:12: error: no matching function for call to 'AsyncQueue' return AsyncQueue(op, AsyncWorker, AsyncCallback); ^~~~~~~~~~ ../src/cpp/handle.cc:144:12: note: in instantiation of function template specialization 'node_leveldb::JHandle::OpAsync::AsyncEnqueue' requested here return AsyncEnqueue(op); ^ ../src/cpp/handle.cc:592:49: note: in instantiation of function template specialization 'node_leveldb::JHandle::OpenAsync::Hook' requested here NODE_SET_METHOD(target, "destroy", OpenAsync::Hook); ^ ../src/cpp/helpers.h:20:29: note: candidate function not viable: no overload of 'AsyncCallback' matching 'const uv_after_work_cb' (aka 'void (*const)(uv_work_t *, int)') for 3rd argument static inline Handle AsyncQueue( ^ ../src/cpp/handle.cc:77:12: error: no matching function for call to 'AsyncQueue' return AsyncQueue(op, AsyncWorker, AsyncCallback); ^~~~~~~~~~ ../src/cpp/handle.cc:144:12: note: in instantiation of function template specialization 'node_leveldb::JHandle::OpAsync::AsyncEnqueue' requested here return AsyncEnqueue(op); ^ ../src/cpp/handle.cc:593:48: note: in instantiation of function template specialization 'node_leveldb::JHandle::OpenAsync::Hook' requested here NODE_SET_METHOD(target, "repair", OpenAsync::Hook); ^ ../src/cpp/helpers.h:20:29: note: candidate function not viable: no overload of 'AsyncCallback' matching 'const uv_after_work_cb' (aka 'void (*const)(uv_work_t *, int)') for 3rd argument static inline Handle AsyncQueue( ^ 9 errors generated. make[1]: *** [Release/obj.target/leveldb/src/cpp/handle.o] Error 1 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.EventEmitter.emit (events.js:98:17) gyp ERR! stack at Process.ChildProcess._handle.onexit (child_process.js:797:12) gyp ERR! System Darwin 13.0.0 gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" gyp ERR! cwd /opt/local/lib/node_modules/bitcoinjs/node_modules/leveldb gyp ERR! node -v v0.10.25 gyp ERR! node-gyp -v v0.12.2 gyp ERR! not ok make: *** [build] Error 1 npm ERR! leveldb@0.7.1 preinstall: `make build` npm ERR! Exit status 2 npm ERR! npm ERR! Failed at the leveldb@0.7.1 preinstall script. npm ERR! This is most likely a problem with the leveldb package, npm ERR! not with npm itself. npm ERR! Tell the author that this fails on your system: npm ERR! make build npm ERR! You can get their info via: npm ERR! npm owner ls leveldb npm ERR! There is likely additional logging output above. npm ERR! System Darwin 13.0.0 npm ERR! command "node" "/usr/local/bin/npm" "install" "bitcoinjs" "-g" npm ERR! cwd /Users/christianmacedo npm ERR! node -v v0.10.25 npm ERR! npm -v 1.3.24 npm ERR! code ELIFECYCLE npm ERR! npm ERR! Additional logging details can be found in: npm ERR! /Users/christianmacedo/npm-debug.log npm ERR! not ok code 0
为了解决这个问题,我尝试了一些推荐的东西,但错误仍然存在。
有什么想法吗?