Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

installing node iconv via npm fails

Tags:

node.js

npm

iconv

I am having a problem installing node iconv.

Here is what happens when I try to install it in a directory ~/please-work/

please-work >> npm install iconv
npm http GET https://registry.npmjs.org/iconv
npm http 304 https://registry.npmjs.org/iconv

> [email protected] install /Users/j/please-work/node_modules/iconv
> node-gyp rebuild

CC(target) Release/obj.target/iconv/deps/libiconv/libcharset/lib/localcharset.o
CC(target) Release/obj.target/iconv/deps/libiconv/lib/iconv.o
In file included from ../deps/libiconv/lib/iconv.c:71:
In file included from ../deps/libiconv/lib/converters.h:133:
../deps/libiconv/lib/utf7.h:162:13: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
  if (n < count+base64count+1)
      ~ ^ ~~~~~~~~~~~~~~~~~~~
../deps/libiconv/lib/utf7.h:331:11: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
if (n < count)
    ~ ^ ~~~~~

.... It then goes on like this for a loooong time

Then ends with this...

620 warnings generated.
  CXX(target) Release/obj.target/iconv/binding.o
  SOLINK_MODULE(target) Release/iconv.node
  File "./gyp-mac-tool", line 159
    fd = os.open(lockfile, os.O_RDONLY|os.O_NOCTTY|os.O_CREAT, 0o666)
                                                                   ^
SyntaxError: invalid syntax
make: *** [Release/iconv.node] 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:215:23)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:91:17)
gyp ERR! stack     at Process._handle.onexit (child_process.js:674:10)
gyp ERR! System Darwin 11.4.0
gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/j/please-work/node_modules/iconv
gyp ERR! node -v v0.8.5
gyp ERR! node-gyp -v v0.6.3
gyp ERR! not ok 
npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! `sh "-c" "node-gyp rebuild"` failed with 1
npm ERR! 
npm ERR! Failed at the [email protected] install script.
npm ERR! This is most likely a problem with the iconv 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 iconv
npm ERR! There is likely additional logging output above.

npm ERR! System Darwin 11.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "iconv"
npm ERR! cwd /Users/j/please-work
npm ERR! node -v v0.8.5
npm ERR! npm -v 1.1.46
npm ERR! code ELIFECYCLE
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/j/please-work/npm-debug.log
npm ERR! not ok code 0

Any help would be hugely appreciated! Thanks, -J

like image 513
James Avatar asked Feb 20 '23 15:02

James


2 Answers

The author of iconv pointed out that I was probably running the wrong version of python.

Once I installed python 2.7.3 it was fine.

like image 123
James Avatar answered Feb 28 '23 15:02

James


Looks like there are issues with some of the libraries iconv depends on, but the compiler warnings can probably be ignored.

The real failure happens in "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild", so a good place to check would be the node-gyp documentation: https://github.com/TooTallNate/node-gyp/

I don't know much about the platform you're working on (seems to be a Mac), do you have make and gcc installed? The node-gyp github page mentions these requirements.

I'm not sure about your usage requirements. If you spend 50% of application time changing text encoding formats, maybe you need iconv. Otherwise maybe try https://github.com/ashtuchkin/iconv-lite/? Since it's a pure JS implementation, I'd be very surprised if you had any installation issues with that. :)

like image 34
rdrey Avatar answered Feb 28 '23 13:02

rdrey