2014-02-19 209 views
1

我遵循安裝指南,仍然無法正常工作。無法安裝oracle包與npm

我一直無法弄清楚我做錯了什麼。

當我這樣做時,node-gyt rebuild工作正常。

任何啓示是值得歡迎的

OS:Win 7的

控制檯:

C:\TRIVIA>npm install oracle 
npm WARN package.json [email protected] No repository field. 
npm WARN package.json [email protected] No README data 

> [email protected] install C:\TRIVIA\node_modules\oracle 
> node-gyp rebuild 


C:\TRIVIA\node_modules\oracle>node "C:\Program Files (x86)\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild 
) não era esperado nesta altura. 
gyp: Call to 'IF DEFINED OCI_VERSION (echo %OCI_VERSION%) ELSE (echo 11)' returned exit status 1. 
gyp ERR! configure error 
gyp ERR! stack Error: `gyp` failed with exit code: 1 
gyp ERR! stack  at ChildProcess.onCpExit (C:\Program Files (x86)\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:337:16) 
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 Windows_NT 6.1.7601 
gyp ERR! command "node" "C:\\Program Files (x86)\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" 
gyp ERR! cwd C:\TRIVIA\node_modules\oracle 
gyp ERR! node -v v0.10.25 
gyp ERR! node-gyp -v v0.12.2 
gyp ERR! not ok 
npm ERR! [email protected] install: `node-gyp rebuild` 
npm ERR! Exit status 1 
npm ERR! 
npm ERR! Failed at the [email protected] install script. 
npm ERR! This is most likely a problem with the oracle package, 
npm ERR! not with npm itself. 
npm ERR! Tell the author that this fails on your system: 
npm ERR!  node-gyp rebuild 
npm ERR! You can get their info via: 
npm ERR!  npm owner ls oracle 
npm ERR! There is likely additional logging output above. 

npm ERR! System Windows_NT 6.1.7601 
npm ERR! command "C:\\Program Files (x86)\\nodejs\\\\node.exe" "C:\\Program Files (x86)\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "oracle" 
npm ERR! cwd C:\TRIVIA 
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!  C:\TRIVIA\npm-debug.log 
npm ERR! not ok code 0 

NPM-的debug.log

0 info it worked if it ends with ok 
1 verbose cli [ 'C:\\Program Files (x86)\\nodejs\\\\node.exe', 
1 verbose cli 'C:\\Program Files (x86)\\nodejs\\node_modules\\npm\\bin\\npm-cli.js', 
1 verbose cli 'install', 
1 verbose cli 'oracle' ] 
2 info using [email protected] 
3 info using [email protected] 
4 verbose node symlink C:\Program Files (x86)\nodejs\\node.exe 
5 warn package.json [email protected] No repository field. 
6 warn package.json [email protected] No README data 
7 verbose readDependencies using package.json deps 
8 verbose cache add [ 'oracle', null ] 
9 verbose cache add name=undefined spec="oracle" args=["oracle",null] 
10 verbose parsed url { protocol: null, 
10 verbose parsed url slashes: null, 
10 verbose parsed url auth: null, 
10 verbose parsed url host: null, 
10 verbose parsed url port: null, 
10 verbose parsed url hostname: null, 
10 verbose parsed url hash: null, 
10 verbose parsed url search: null, 
10 verbose parsed url query: null, 
10 verbose parsed url pathname: 'oracle', 
10 verbose parsed url path: 'oracle', 
10 verbose parsed url href: 'oracle' } 
11 silly lockFile 431364b6-oracle oracle 
12 verbose lock oracle C:\Users\Mezzarine\AppData\Roaming\npm-cache\431364b6-oracle.lock 
13 silly lockFile 431364b6-oracle oracle 
14 silly lockFile 431364b6-oracle oracle 
15 verbose addNamed [ 'oracle', '' ] 
16 verbose addNamed [ null, '*' ] 
17 silly lockFile a4fb3172-oracle [email protected] 
18 verbose lock [email protected] C:\Users\Mezzarine\AppData\Roaming\npm-cache\a4fb3172-oracle.lock 
19 silly addNameRange { name: 'oracle', range: '*', hasData: false } 
20 verbose url raw oracle 
21 verbose url resolving [ 'https://registry.npmjs.org/', './oracle' ] 
22 verbose url resolved https://registry.npmjs.org/oracle 
23 info trying registry request attempt 1 at 01:31:30 
24 verbose etag "326N682G60LOHGMDDUJYO7S2" 
25 http GET https://registry.npmjs.org/oracle 
26 http 304 https://registry.npmjs.org/oracle 
27 silly registry.get cb [ 304, 
27 silly registry.get { date: 'Wed, 19 Feb 2014 01:31:27 GMT', 
27 silly registry.get  server: 'Apache', 
27 silly registry.get  connection: 'Keep-Alive', 
27 silly registry.get  'keep-alive': 'timeout=10, max=50', 
27 silly registry.get  etag: '"326N682G60LOHGMDDUJYO7S2"', 
27 silly registry.get  'cache-control': 'max-age=1', 
27 silly registry.get  vary: 'Accept' } ] 
28 verbose etag oracle from cache 
29 silly addNameRange number 2 { name: 'oracle', range: '*', hasData: true } 
30 silly addNameRange versions [ 'oracle', 
30 silly addNameRange [ '0.1.0', 
30 silly addNameRange  '0.1.1', 
30 silly addNameRange  '0.1.2', 
30 silly addNameRange  '0.1.3', 
30 silly addNameRange  '0.2.0', 
30 silly addNameRange  '0.3.0', 
30 silly addNameRange  '0.3.1', 
30 silly addNameRange  '0.3.2', 
30 silly addNameRange  '0.3.3', 
30 silly addNameRange  '0.3.4', 
30 silly addNameRange  '0.3.5', 
30 silly addNameRange  '0.3.6' ] ] 
31 verbose addNamed [ 'oracle', '0.3.6' ] 
32 verbose addNamed [ '0.3.6', '0.3.6' ] 
33 silly lockFile 57fab89f-oracle-0-3-6 [email protected] 
34 verbose lock [email protected] C:\Users\Mezzarine\AppData\Roaming\npm-cache\57fab89f-oracle-0-3-6.lock 
35 silly lockFile 57fab89f-oracle-0-3-6 [email protected] 
36 silly lockFile 57fab89f-oracle-0-3-6 [email protected] 
37 silly lockFile a4fb3172-oracle [email protected] 
38 silly lockFile a4fb3172-oracle [email protected] 
39 silly resolved [ { name: 'oracle', 
39 silly resolved  description: 'Oracle database driver', 
39 silly resolved  keywords: [ 'database', 'db', 'oracle' ], 
39 silly resolved  homepage: 'https://github.com/joeferner/node-oracle', 
39 silly resolved  license: 'MIT', 
39 silly resolved  version: '0.3.6', 
39 silly resolved  engines: { node: '>=0.6.0' }, 
39 silly resolved  maintainers: [ [Object], [Object], [Object] ], 
39 silly resolved  bugs: { url: 'https://github.com/joeferner/node-oracle/issues' }, 
39 silly resolved  repository: 
39 silly resolved  { type: 'git', 
39 silly resolved  url: 'git://github.com/joeferner/node-oracle.git' }, 
39 silly resolved  dependencies: {}, 
39 silly resolved  devDependencies: { nodeunit: '~>0.8.0' }, 
39 silly resolved  scripts: 
39 silly resolved  { test: 'nodeunit test/integration.js test/outparams.js', 
39 silly resolved  install: 'node-gyp rebuild' }, 
39 silly resolved  main: './index.js', 
39 silly resolved  gypfile: true, 
39 silly resolved  readme: '# Oracle driver for Node.js\n\nA driver to connect to an Oracle database from node.js, leveraging the "Oracle C++ Call Interface" (OCCI)\nfor connectivity. This is most commonly obtained as part of the Oracle Instant Client.\n\nIt is known to work with Oracle 10, 11, and 12, and has been mostly tested on Linux, but should also work on OS X and\nWindows 7+\n\n\n# Basic installation\n\n(See INSTALL.md for complete instructions for your platform.)\n\n* Prerequisites:\n * Python 2.7 (*not* v3.x), used by node-gyp\n * C++ Compiler toolchain (GCC, Visual Studio or similar)\n* Download the latest Oracle Instant Client Basic and SDK, and extract to the same directory.\n* Set environment variables:\n\n\t```\nOCI_LIB_DIR=/path/to/instant_client\nOCI_INCLUDE_DIR=/path/to/instant_client/sdk/include\nOCI_VERSION=<10, 11, or 12> # Integer. Optional, defaults to \'11\'\nNLS_LANG=.UTF8 # Optional, but required to support international characters\n\t```\n* Create symlinks for libclntsh and libocci in the Instant Client directory (see INSTALL.md)\n* (Linux) Install libaio\n* Configure the dynamic library path on your platform to include $OCI_LIB_DIR (see INSTALL.md)\n* `npm install oracle` to get the latest from npmjs.org\n\n\n# Examples\n\n### Basic example\n\n```javascript\nvar oracle = require(\'oracle\');\n\nvar connectData = {\n\thostname: "localhost",\n\tport: 1521,\n\tdatabase: "xe", // System ID (SID)\n\tuser: "oracle",\n\tpassword: "oracle"\n}\n\noracle.connect(connectData, function(err, connection) {\n\tif (err) { console.log("Error connecting to db:", err); return; }\n\n\tconnection.execute("SELECT systimestamp FROM dual", [], function(err, results) {\n\t\tif (err) { console.log("Error executing query:", err); return; }\n\n\t\tconsole.log(results);\n\t\tconnection.close(); // call only when query is finished executing\n\t});\n});\n```\n\n### Alternative connection using TNS\nReplace the `connectData` object above with one of the following.\n\nWithout tnsnames.ora file:\n\n```javascript\nvar connString = "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=xe)))";\nvar connectData = { "tns": connString, "user": "test", "password": "test" };\n```\nWith tnsnames.ora file:\n\n```text\nDEV =\n\t(DESCRIPTION =\n\t\t(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))\n\t\t(CONNECT_DATA =\n\t\t\t(SERVER = DEDICATED)\n\t\t\t(SERVICE_NAME = orcl)\n\t\t)\n\t)\n```\n\n```javascript\nvar connectData = { "tns": "DEV", "user": "test", "password": "test" };\n```\n\n### Connection options\n\nThe following options can be set on the connection:\n\n* `connection.setAutoCommit(true/false);`\n* `connection.setPrefetchRowCount(count);` Should improve performance with large result sets\n\n### Out Params\nFollowing the basic example above, a query using a return parameter looks like this:\n\n```javascript\n\t...\n\tconnection.execute(\n\t\t"INSERT INTO person (name) VALUES (:1) RETURNING id INTO :2",\n\t\t[\'joe ferner\', new oracle.OutParam()],\n\t\tfunction(err, results) {\n\t\t\tif (err) { ... } \n\t\t\t// results.updateCount = 1\n\t\t\t// results.returnParam = the id of the person just inserted\n\t\t\tconnection.close();\n\t\t}\n\t);\n\t...\n```\n\nThe following OUT Params are supported in Stored Procedures:\n\n* `OCCIINT`\n* `OCCISTRING`\n* `OCCIDOUBLE`\n* `OCCIFLOAT`\n* `OCCICURSOR`\n* `OCCICLOB`\n* `OCCIDATE`\n* `OCCITIMESTAMP`\n* `OCCINUMBER`\n* `OCCIBLOB`\n\nSpecify the return type in the OutParam() constructor:\n\n```javascript\nconnection.execute("call myProc(:1,:2)", ["nodejs", new oracle.OutParam(oracle.OCCISTRING)], ...\n```\n\nWhen using `OCCISTRING`, the size can optionally be specified (default is 200 chars):\n\n```javascript\nconnection.execute("call myProc(:1,:2)", ["nodejs", new oracle.OutParam(oracle.OCCISTRING, {size: 1000})], ...\n```\nSee tests for more examples.\n\n### In/Out Params\nThe following INOUT param types are supported:\n\n* `OCCIINT`\n* `OCCISTRING`\n* `OCCIDOUBLE`\n* `OCCIFLOAT`\n* `OCCINUMBER`\n\nINOUT params are used like normal OUT params, with the optional \'in\' paramater value being passed in the options object:\n\n```javascript\nconnection.execute("call myProc(:1)", [new oracle.OutParam(oracle.OCCIINT, {in: 42})], ...\n```\n\n### Validate connection\nTo validate whether the connection is still established after some time:\n\n```javascript\nif (!connection.isConnected()) {\n\t// Do something like retire this connection from a pool\n}\n```\n\n### Dates\nFor DATE and TIMESTAMP types, the driver uses the UTC methods from the Javascript Date object. This means the DATE\nvalue stored will match the value of `new Date().toISOString()` on your client machine. Consider this example\nfor a client machine in "GMT-0700":\n\nTable schema:\n\n```sql\nCREATE TABLE date_test (mydate DATE)\n```\n\nJavascript code:\n\n```javascript\n...\n\tvar date = new Date(2013, 11, 24, 18, 0, 1); // Client timezone dependent\n\tconsole.log(date.toString());  // Tue Dec 24 2013 18:00:01 GMT-0700 (MST)\n\tconsole.log(date.toISOString()); // 2013-12-25T01:00:01.000Z\n\n\tconnection.execute(\n\t\t"INSERT INTO date_test (mydate) VALUES (:1) " +\n\t\t\t"RETURNING mydate, to_char(mydate, \'YYYY-MM-DD HH24:MI:SS\') INTO :2, :3",\n\t\t[date, new oracle.OutParam(oracle.OCCIDATE), new oracle.OutParam(oracle.OCCISTRING)],\n\t\tfunction(err, results) {\n\t\t\tconsole.log(results.returnParam.toString()); // Tue Dec 24 2013 18:00:01 GMT-0700 (MST)\n\t\t\tconsole.log(results.returnParam1);   // 2013-12-25 01:00:01\n\t\t}\n\t);\n...\n```\n\n### Querying large tables\n\nTo query large tables you should use a _reader_:\n\n* `reader = connection.reader(sql, args)`: creates a reader\n* `reader.nextRow(callback)`: returns the next row through the callback\n* `reader.nextRows(count, callback)` returns the next `count` rows through the callback. `count` is optional and `nextRows` uses the prefetch row count when `count` is omitted.\n* `connection.setPrefetchRowCount(count)`: configures the prefetch row count for the connection. Prefetching can have a dramatic impact on performance but uses more memory. \n\nExample:\n\n```javascript\nconnection.setPrefetchRowCount(50);\nvar reader = connection.reader("SELECT * FROM auditlogs", []);\n\nfunction doRead(cb) {\n\treader.nextRow(function(err, row) {\n\t\tif (err) return cb(err);\n\t\tif (row) {\n\t\t\t// do something with row\n\t\t\tconsole.log("got " + JSON.stringify(row));\n\t\t\t// recurse to read next record\n\t\t\treturn doRead(cb)\n\t\t} else {\n\t\t\t// we are done\n\t\t\treturn cb();\n\t\t}\n\t})\n}\n\ndoRead(function(err) {\n\tif (err) throw err; // or log it\n\tconsole.log("all records processed");\n});\n```\n\n### Large inserts or updates\n\nTo insert or update a large number of records you should use _prepared statements_ rather than individual `execute` calls on the connection object:\n\n* `statement = connection.prepare(sql)`: creates a prepared statement.\n* `statement.execute(args, callback)`: executes the prepared statement with the values in `args`. You can call this repeatedly on the same `statement`.\n\nExample:\n\n```javascript\n\nfunction doInsert(stmt, records, cb) {\n\tif (records.length > 0) {\n\t\tstmt.execute([records.shift()], function(err, count) {\n\t\t\tif (err) return cb(err);\n\t\t\tif (count !== 1) return cb(new Error("bad count: " + count));\n\t\t\t// recurse with remaining records\n\t\t\tdoInsert(stmt, records, cb);\n\t\t});\n\t} else {\n\t\t// we are done\n\t\treturn cb();\n\t}\n}\n\nvar statement = connection.prepare("INSERT INTO users (id, firstName, lastName) VALUES (:1, :2, :3)");\ndoInsert(statement, users, function(err) {\n\tif (err) throw err; // or log it\n\tconsole.log("all records inserted");\t\n});\n```\n\n# Limitations/Caveats\n\n* Currently no native support for connection pooling (forthcoming; use generic-pool for now.)\n* Currently no support for column type "Timestamp With Timezone" (Issue #67)\n* While the Oracle TIMESTAMP type provides fractional seconds up to 9 digits (nanoseconds), this will be rounded\n to the nearest millisecond when converted to a Javascript date (a _data loss_).\n\n# Development\n* Clone the source repo\n* Follow the installation instructions to prepare your environment (using Oracle Instant Client)\n* Run `npm install` or `npm test` in the root of the source directory\n* Point to an Oracle instance of your choice. The free Oracle Express edition works well:\n * Oracle Express 11g: http://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.htmlDownload\n* Debugging:\n * Compile node with debug symbols\n * Use gdb/ddd or another C++ debugger to step through\n', 
39 silly resolved  readmeFilename: 'README.md', 
39 silly resolved  _id: '[email protected]', 
39 silly resolved  _from: '[email protected]' } ] 
40 info install [email protected] into C:\TRIVIA 
41 info installOne [email protected] 
42 info C:\TRIVIA\node_modules\oracle unbuild 
43 verbose tar unpack C:\Users\Mezzarine\AppData\Roaming\npm-cache\oracle\0.3.6\package.tgz 
44 silly lockFile 6c3b0595-tar-C-TRIVIA-node-modules-oracle tar://C:\TRIVIA\node_modules\oracle 
45 verbose lock tar://C:\TRIVIA\node_modules\oracle C:\Users\Mezzarine\AppData\Roaming\npm-cache\6c3b0595-tar-C-TRIVIA-node-modules-oracle.lock 
46 silly lockFile 184b2831-m-cache-oracle-0-3-6-package-tgz tar://C:\Users\Mezzarine\AppData\Roaming\npm-cache\oracle\0.3.6\package.tgz 
47 verbose lock tar://C:\Users\Mezzarine\AppData\Roaming\npm-cache\oracle\0.3.6\package.tgz C:\Users\Mezzarine\AppData\Roaming\npm-cache\184b2831-m-cache-oracle-0-3-6-package-tgz.lock 
48 silly gunzTarPerm modes [ '755', '644' ] 
49 silly gunzTarPerm extractEntry package.json 
50 silly gunzTarPerm modified mode [ 'package.json', 438, 420 ] 
51 silly gunzTarPerm extractEntry .npmignore 
52 silly gunzTarPerm modified mode [ '.npmignore', 438, 420 ] 
53 silly gunzTarPerm extractEntry README.md 
54 silly gunzTarPerm modified mode [ 'README.md', 438, 420 ] 
55 silly gunzTarPerm extractEntry LICENSE 
56 silly gunzTarPerm modified mode [ 'LICENSE', 438, 420 ] 
57 silly gunzTarPerm extractEntry index.js 
58 silly gunzTarPerm modified mode [ 'index.js', 438, 420 ] 
59 silly gunzTarPerm extractEntry lib/oracle.js 
60 silly gunzTarPerm modified mode [ 'lib/oracle.js', 438, 420 ] 
61 silly gunzTarPerm extractEntry binding.gyp 
62 silly gunzTarPerm modified mode [ 'binding.gyp', 438, 420 ] 
63 silly gunzTarPerm extractEntry INSTALL.md 
64 silly gunzTarPerm modified mode [ 'INSTALL.md', 438, 420 ] 
65 silly gunzTarPerm extractEntry src/outParam.h 
66 silly gunzTarPerm modified mode [ 'src/outParam.h', 438, 420 ] 
67 silly gunzTarPerm extractEntry src/commitBaton.h 
68 silly gunzTarPerm modified mode [ 'src/commitBaton.h', 438, 420 ] 
69 silly gunzTarPerm extractEntry src/connection.h 
70 silly gunzTarPerm modified mode [ 'src/connection.h', 438, 420 ] 
71 silly gunzTarPerm extractEntry src/executeBaton.cpp 
72 silly gunzTarPerm modified mode [ 'src/executeBaton.cpp', 438, 420 ] 
73 silly gunzTarPerm extractEntry src/executeBaton.h 
74 silly gunzTarPerm modified mode [ 'src/executeBaton.h', 438, 420 ] 
75 silly gunzTarPerm extractEntry src/nodeOracleException.h 
76 silly gunzTarPerm modified mode [ 'src/nodeOracleException.h', 438, 420 ] 
77 silly gunzTarPerm extractEntry src/oracle_bindings.cpp 
78 silly gunzTarPerm modified mode [ 'src/oracle_bindings.cpp', 438, 420 ] 
79 silly gunzTarPerm extractEntry src/oracle_bindings.h 
80 silly gunzTarPerm modified mode [ 'src/oracle_bindings.h', 438, 420 ] 
81 silly gunzTarPerm extractEntry src/outParam.cpp 
82 silly gunzTarPerm modified mode [ 'src/outParam.cpp', 438, 420 ] 
83 silly gunzTarPerm extractEntry src/connection.cpp 
84 silly gunzTarPerm modified mode [ 'src/connection.cpp', 438, 420 ] 
85 silly gunzTarPerm extractEntry src/reader.cpp 
86 silly gunzTarPerm modified mode [ 'src/reader.cpp', 438, 420 ] 
87 silly gunzTarPerm extractEntry src/reader.h 
88 silly gunzTarPerm modified mode [ 'src/reader.h', 438, 420 ] 
89 silly gunzTarPerm extractEntry src/readerBaton.h 
90 silly gunzTarPerm modified mode [ 'src/readerBaton.h', 438, 420 ] 
91 silly gunzTarPerm extractEntry src/rollbackBaton.h 
92 silly gunzTarPerm modified mode [ 'src/rollbackBaton.h', 438, 420 ] 
93 silly gunzTarPerm extractEntry src/statement.cpp 
94 silly gunzTarPerm modified mode [ 'src/statement.cpp', 438, 420 ] 
95 silly gunzTarPerm extractEntry src/statement.h 
96 silly gunzTarPerm modified mode [ 'src/statement.h', 438, 420 ] 
97 silly gunzTarPerm extractEntry src/statementBaton.h 
98 silly gunzTarPerm modified mode [ 'src/statementBaton.h', 438, 420 ] 
99 silly gunzTarPerm extractEntry src/utils.h 
100 silly gunzTarPerm modified mode [ 'src/utils.h', 438, 420 ] 
101 silly gunzTarPerm extractEntry test/integration.js 
102 silly gunzTarPerm modified mode [ 'test/integration.js', 438, 420 ] 
103 silly gunzTarPerm extractEntry test/outparams.js 
104 silly gunzTarPerm modified mode [ 'test/outparams.js', 438, 420 ] 
105 silly gunzTarPerm extractEntry test/prepare.js 
106 silly gunzTarPerm modified mode [ 'test/prepare.js', 438, 420 ] 
107 silly gunzTarPerm extractEntry test/reader.js 
108 silly gunzTarPerm modified mode [ 'test/reader.js', 438, 420 ] 
109 silly gunzTarPerm extractEntry tests-settings.json 
110 silly gunzTarPerm modified mode [ 'tests-settings.json', 438, 420 ] 
111 silly lockFile 6c3b0595-tar-C-TRIVIA-node-modules-oracle tar://C:\TRIVIA\node_modules\oracle 
112 silly lockFile 6c3b0595-tar-C-TRIVIA-node-modules-oracle tar://C:\TRIVIA\node_modules\oracle 
113 silly lockFile 184b2831-m-cache-oracle-0-3-6-package-tgz tar://C:\Users\Mezzarine\AppData\Roaming\npm-cache\oracle\0.3.6\package.tgz 
114 silly lockFile 184b2831-m-cache-oracle-0-3-6-package-tgz tar://C:\Users\Mezzarine\AppData\Roaming\npm-cache\oracle\0.3.6\package.tgz 
115 info preinstall [email protected] 
116 verbose readDependencies using package.json deps 
117 verbose readDependencies using package.json deps 
118 silly resolved [] 
119 verbose about to build C:\TRIVIA\node_modules\oracle 
120 info build C:\TRIVIA\node_modules\oracle 
121 verbose linkStuff [ false, false, false, 'C:\\TRIVIA\\node_modules' ] 
122 info linkStuff [email protected] 
123 verbose linkBins [email protected] 
124 verbose linkMans [email protected] 
125 verbose rebuildBundles [email protected] 
126 info install [email protected] 
127 verbose unsafe-perm in lifecycle true 
128 info [email protected] Failed to exec install script 
129 info C:\TRIVIA\node_modules\oracle unbuild 
130 info preuninstall [email protected] 
131 info uninstall [email protected] 
132 verbose true,C:\TRIVIA\node_modules,C:\TRIVIA\node_modules unbuild [email protected] 
133 info postuninstall [email protected] 
134 error [email protected] install: `node-gyp rebuild` 
134 error Exit status 1 
135 error Failed at the [email protected] install script. 
135 error This is most likely a problem with the oracle package, 
135 error not with npm itself. 
135 error Tell the author that this fails on your system: 
135 error  node-gyp rebuild 
135 error You can get their info via: 
135 error  npm owner ls oracle 
135 error There is likely additional logging output above. 
136 error System Windows_NT 6.1.7601 
137 error command "C:\\Program Files (x86)\\nodejs\\\\node.exe" "C:\\Program Files (x86)\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "oracle" 
138 error cwd C:\TRIVIA 
139 error node -v v0.10.25 
140 error npm -v 1.3.24 
141 error code ELIFECYCLE 
142 verbose exit [ 1, true ] 
+0

[安裝R上的節點的Oracle的可能重複ed Hat Enterprise Linux Server release 6.4 Santiago](http://stackoverflow.com/questions/19429551/installing-node-oracle-on-red-hat-enterprise-linux-server-release-6-4-santiago) –

+0

這是不一樣的事情,我有很好的變量。 – CMCB

回答

0

使用以下過程來看看爲什麼:

npm-cli.js install oracle 

的原因這樣的警告:

No repository field 

記住:

的在你的package.json最重要的事情是名稱和版本字段。這些實際上是必需的,並且沒有它們,您的軟件包將不會安裝。名稱和版本一起構成一個假定爲完全唯一的標識符。對軟件包所做的更改應該隨着對版本的更改而發生變化。

參考

+0

嗯,這是差不多一年前的事了,自從我放棄這個項目以來,現在我無法檢查它是否有效。但是,無論如何感謝:) – CMCB