윈도우10 WSL 환경에서 Node.js 실습을 진행하고 있었다.


암호화 패키지인 bcrypt를 설치할 때 아래처럼 오류가 발생하였다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
$ sudo npm i bcrypt
> bcrypt@3.0.3 install /mnt/c/Users/Jipro/workspace/nodejs-book/ch9/9.3/nodebird/node_modules/bcrypt
> node-pre-gyp install --fallback-to-build
node-pre-gyp WARN Using needle for node-pre-gyp https download
node-pre-gyp WARN Tried to download(404): https://github.com/kelektiv/node.bcrypt.js/releases/download/v3.0.3/bcrypt_lib-v3.0.3-node-v64-linux-x64-glibc.tar.gz
node-pre-gyp WARN Pre-built binaries not found for bcrypt@3.0.3 and node@10.14.2 (node-v64 ABI, glibc) (falling back to source compile with node-gyp)
gyp ERR! build error
gyp ERR! stack Error: not found: make
gyp ERR! stack     at getNotFoundError (/usr/lib/node_modules/npm/node_modules/which/which.js:13:12)
gyp ERR! stack     at F (/usr/lib/node_modules/npm/node_modules/which/which.js:68:19)
gyp ERR! stack     at E (/usr/lib/node_modules/npm/node_modules/which/which.js:80:29)
gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/which/which.js:89:16
gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/isexe/index.js:42:5
gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/isexe/mode.js:8:5
gyp ERR! stack     at FSReqWrap.oncomplete (fs.js:154:21)
gyp ERR! System Linux 4.4.0-17134-Microsoft
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/mnt/c/Users/Jipro/workspace/nodejs-book/ch9/9.3/nodebird/node_modules/bcrypt/lib/binding/bcrypt_lib.node" "--module_name=bcrypt_lib" "--module_path=/mnt/c/Users/Jipro/workspace/nodejs-book/ch9/9.3/nodebird/node_modules/bcrypt/lib/binding" "--napi_version=3" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v64"
gyp ERR! cwd /mnt/c/Users/Jipro/workspace/nodejs-book/ch9/9.3/nodebird/node_modules/bcrypt
gyp ERR! node -v v10.14.2
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute '/usr/bin/node /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/mnt/c/Users/Jipro/workspace/nodejs-book/ch9/9.3/nodebird/node_modules/bcrypt/lib/binding/bcrypt_lib.node --module_name=bcrypt_lib --module_path=/mnt/c/Users/Jipro/workspace/nodejs-book/ch9/9.3/nodebird/node_modules/bcrypt/lib/binding --napi_version=3 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v64' (1)
node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/mnt/c/Users/Jipro/workspace/nodejs-book/ch9/9.3/nodebird/node_modules/bcrypt/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:182:13)
node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:962:16)
node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:251:5)
node-pre-gyp ERR! System Linux 4.4.0-17134-Microsoft
node-pre-gyp ERR! command "/usr/bin/node" "/mnt/c/Users/Jipro/workspace/nodejs-book/ch9/9.3/nodebird/node_modules/bcrypt/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd /mnt/c/Users/Jipro/workspace/nodejs-book/ch9/9.3/nodebird/node_modules/bcrypt
node-pre-gyp ERR! node -v v10.14.2
node-pre-gyp ERR! node-pre-gyp -v v0.12.0
node-pre-gyp ERR! not ok
Failed to execute '/usr/bin/node /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/mnt/c/Users/Jipro/workspace/nodejs-book/ch9/9.3/nodebird/node_modules/bcrypt/lib/binding/bcrypt_lib.node --module_name=bcrypt_lib --module_path=/mnt/c/Users/Jipro/workspace/nodejs-book/ch9/9.3/nodebird/node_modules/bcrypt/lib/binding --napi_version=3 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v64' (1)
npm WARN nodebird@0.0.1 No repository field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! bcrypt@3.0.3 install: `node-pre-gyp install --fallback-to-build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the bcrypt@3.0.3 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR!     /home/jipro/.npm/_logs/2018-12-26T13_06_58_125Z-debug.log
cs


구글링을 해 본 결과 여러가지 해결법이 존재하였지만, 전혀 먹히지 않았다.

내 경우의 해결법은 의외로 간단했다.



https://www.npmjs.com/package/bcrypt#if-you-are-submitting-bugsissues


First, make sure that the version of node you are using is a stable version.



노드의 버전을 안정 버전(stable)으로 설치하면 된다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ sudo npm i bcrypt
 
> bcrypt@3.0.3 install /mnt/c/Users/Jipro/workspace/nodejs-book/ch9/9.3/nodebird/node_modules/bcrypt
> node-pre-gyp install --fallback-to-build
 
node-pre-gyp WARN Using needle for node-pre-gyp https download
[bcrypt] Success: "/mnt/c/Users/Jipro/workspace/nodejs-book/ch9/9.3/nodebird/node_modules/bcrypt/lib/binding/bcrypt_lib.node" is installed via remote
npm WARN nodebird@0.0.1 No repository field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
 
+ bcrypt@3.0.3
added 71 packages from 49 contributors and audited 2640 packages in 22.783s
found 0 vulnerabilities
cs


설치가 잘 되었다.



끝!

'개인 공부 > Node.js' 카테고리의 다른 글

윈도우10/우분투 Sequelize의 MySQL 포트 설정  (0) 2018.12.11

나처럼 윈도우10을 사용하면서 우분투(리눅스) 환경도 함께 사용하는 경우(WSL), 

우분투가 윈도우 위에서 돌아가는 듯 보이지만 엄연히 별개의 운영체제가 분리되어 동작하는 중이었다. (당시 이에 관한 이해가 부족)


가령, Node.js를 설치하는 방법도 윈도우에서는 https://nodejs.org/에서 인스톨러 파일(.exe 등)을 다운받아 설치한다고 대부분의 교재에서 확인할 수 있고,

우분투 등 리눅스에서는 npm 등 패키지 매니저를 이용해 설치하는 것이 선호되는 방법이다.


Node.js를 설치하면 윈도우의 기본 경로는 보통

C:\Program Files\nodejs

다.

 

윈도우에서 설치된 우분투 리눅스의 npm으로 설치한 경로는 내 경우엔

/usr/bin

이다.

 

따라서 윈도우용과 우분투용을 별개로 생각하고 설치해줘야 한다는 것이다.

 

MySQL의 경우에도 저번 글에 언급했지만, 각각 설치를 해주었는데 둘 다 기본 포트가 3306으로 설정되기 때문에, 먼저 설치한 것이 선점하면 나머지 하나가 켜지지 않는 문제가 생겼다.

 

설치 과정에서 포트를 변경해주는 것이 가장 편하고, 이미 설정했다면 설정 파일을 수정해서 변경해주면 된다.

(하나를 끄고, 사용하는 방법도 있지만 매번 켜고 끄는 것이 번거롭기 때문에 포트를 변경해주는 것이 나을 것이다.)

 

 

각설하고,

 

Node.js 실습 과정에서 난 처음부터 우분투 환경에서 실습을 진행하였다.

저번 글처럼 MySQL의 포트를 변경했는데, 윈도우는 그대로 3306을 사용하기로 하고, 우분투의 것을 3307로 변경했다.

데이터베이스 실습을 하면서 예제 데이터를 우분투의 MySQL에 만들어두었다.

 

Sequelize를 사용하는데 MySQL의 포트를 지정해주지 않았더니 기본 포트인 3306을 인식해서 윈도우용을 잡아 데이터가 나오지 않았다. (윈도우 MySQL에는 예제 데이터를 넣지 않았다.)

 

따라서, 포트를 변경하려면 Sequelize의 config/config.json 파일을 수정해야 한다.

 

1
2
3
4
5
6
7
8
9
10
11
12
{
  "development": {
    "username""root",
    "password""1234",
    "database""nodejs",
    "host""127.0.0.1",
    "port"3307,
    "dialect""mysql",
    "operatorsAliases"false
  },
  ...
}

port만 추가해주니 잘 된다.

 

끝.

'개인 공부 > Node.js' 카테고리의 다른 글

윈도우10 WSL에서 bcrypt 설치 오류 해결 방법  (0) 2018.12.26

+ Recent posts