node-iconv 설치에 약간 걸린 메모

node-iconv 설치에 약간 걸린 메모

2022-10-05 last update

8 minutes reading 자바스크립트 Node.js npm GCC
과거에 Node.js에서 이메일을 받는 기사를 썼지만,

Node.js로 사내 일보 메일을 취득해 Facebook 페이지에 자동 투고하는 구조를 구현했으므로 해설합니다.

오랜만에 해보려고 node-iconv의 설치로 휩쓸었기 때문에 메모. (전에 어느 쪽으로 쓰고 있을지도...?)

htps : // 기주 b. 이 m / b의 오 류 s / 그래서 - 이콘 v

환경


  • CentOS 7계
  • Node.js v4.1.2

  • 흐름과 해결


    $ npm i --save iconv
    

    이런 느낌의 에러 로그가 나왔습니다.
    npm WARN package.json [email protected] No description
    npm WARN package.json [email protected] No repository field.
    npm WARN package.json [email protected] No README data
    |
    > [email protected] install /root/mail/node_modules/iconv
    > node-gyp rebuild
    
    make: ディレクトリ `/root/mail/node_modules/iconv/build' に入ります
      CC(target) Release/obj.target/libiconv/deps/libiconv/lib/iconv.o
    make: cc: コマンドが見つかりませんでした
    make: *** [Release/obj.target/libiconv/deps/libiconv/lib/iconv.o] エラー 127
    make: ディレクトリ `/root/mail/node_modules/iconv/build' から出ます
    gyp ERR! build error
    gyp ERR! stack Error: `make` failed with exit code: 2
    gyp ERR! stack     at ChildProcess.onExit (/root/.nvm/versions/node/v4.1.2/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:270:23)
    gyp ERR! stack     at emitTwo (events.js:87:13)
    gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
    gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
    gyp ERR! System Linux 3.10.0-229.el7.x86_64
    gyp ERR! command "/root/.nvm/versions/node/v4.1.2/bin/node" "/root/.nvm/versions/node/v4.1.2/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
    gyp ERR! cwd /root/mail/node_modules/iconv
    gyp ERR! node -v v4.1.2
    gyp ERR! node-gyp -v v3.0.3
    gyp ERR! not ok
    npm ERR! Linux 3.10.0-229.el7.x86_64
    npm ERR! argv "/root/.nvm/versions/node/v4.1.2/bin/node" "/root/.nvm/versions/node/v4.1.2/bin/npm" "i" "--save" "iconv"
    npm ERR! node v4.1.2
    npm ERR! npm  v2.14.4
    npm ERR! code ELIFECYCLE
    
    npm ERR! [email protected] install: `node-gyp rebuild`
    npm ERR! Exit status 1
    npm ERR!
    npm ERR! Failed at the [email protected] install script 'node-gyp rebuild'.
    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! Please include the following file with any support request:
    npm ERR!     /root/mail/npm-debug.log
    
    cc: コマンドが見つかりませんでした 라고 쓰고 있는 곳이 포인트 같네요.
    이 근처 들여다 보면, node-iconv는 내부가 C로 쓰여져 있는 것 같네요, cc 이나 gcc
    yum으로 gcc를 설치합시다.
    $ yum install gcc
    

    재챌린지
    $ npm i --save iconv
    npm WARN package.json [email protected] No description
    npm WARN package.json [email protected] No repository field.
    npm WARN package.json [email protected] No README data
    /
    > [email protected] install /root/mail/node_modules/iconv
    > node-gyp rebuild
    
    make: ディレクトリ `/root/mail/node_modules/iconv/build' に入ります
      CC(target) Release/obj.target/libiconv/deps/libiconv/lib/iconv.o
      AR(target) Release/obj.target/iconv.a
      COPY Release/iconv.a
      CXX(target) Release/obj.target/iconv/src/binding.o
    make: g++: コマンドが見つかりませんでした
    make: *** [Release/obj.target/iconv/src/binding.o] エラー 127
    make: ディレクトリ `/root/mail/node_modules/iconv/build' から出ます
    gyp ERR! build error
    gyp ERR! stack Error: `make` failed with exit code: 2
    gyp ERR! stack     at ChildProcess.onExit (/root/.nvm/versions/node/v4.1.2/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:270:23)
    gyp ERR! stack     at emitTwo (events.js:87:13)
    gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
    gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
    gyp ERR! System Linux 3.10.0-229.el7.x86_64
    gyp ERR! command "/root/.nvm/versions/node/v4.1.2/bin/node" "/root/.nvm/versions/node/v4.1.2/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
    gyp ERR! cwd /root/mail/node_modules/iconv
    gyp ERR! node -v v4.1.2
    gyp ERR! node-gyp -v v3.0.3
    gyp ERR! not ok
    npm ERR! Linux 3.10.0-229.el7.x86_64
    npm ERR! argv "/root/.nvm/versions/node/v4.1.2/bin/node" "/root/.nvm/versions/node/v4.1.2/bin/npm" "i" "--save" "iconv"
    npm ERR! node v4.1.2
    npm ERR! npm  v2.14.4
    npm ERR! code ELIFECYCLE
    
    npm ERR! [email protected] install: `node-gyp rebuild`
    npm ERR! Exit status 1
    npm ERR!
    npm ERR! Failed at the [email protected] install script 'node-gyp rebuild'.
    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! Please include the following file with any support request:
    npm ERR!     /root/mail/npm-debug.log
    
    make: g++: コマンドが見つかりませんでした 라고 나왔습니다.

    g++를 CentOS에 설치
    g++ 명령이 없기 때문에 설치합니다.
    $ yum -y install gcc-c++
    

    이제 g++를 사용할 수있게되었으므로 다시 도전하십시오.
    $ npm i --save iconv
    npm WARN package.json [email protected] No description
    npm WARN package.json [email protected] No repository field.
    npm WARN package.json [email protected] No README data
    -
    > [email protected] install /root/mail/node_modules/iconv
    > node-gyp rebuild
    
    make: ディレクトリ `/root/mail/node_modules/iconv/build' に入ります
      CC(target) Release/obj.target/libiconv/deps/libiconv/lib/iconv.o
      AR(target) Release/obj.target/iconv.a
      COPY Release/iconv.a
      CXX(target) Release/obj.target/iconv/src/binding.o
      SOLINK_MODULE(target) Release/obj.target/iconv.node
      COPY Release/iconv.node
    make: ディレクトリ `/root/mail/node_modules/iconv/build' から出ます
    [email protected] node_modules/iconv
    └── [email protected]
    

    이제 잘 설치되었습니다.

    수고하셨습니다!