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 ]
[安裝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) –
這是不一樣的事情,我有很好的變量。 – CMCB