상세 컨텐츠

본문 제목

001. Raspberry Pi - smart-mirror 소스 설치 및 삽질

raspberrypi/smart-mirror

by ZelKun 2018. 2. 12. 10:00

본문

반응형


 

사용한 RASPBIAN OS GUI화면이 필요하니 DESKTOP 베이스로 설치했습니다

  • STRETCH WITH DESKTOP
  • Release date:2017-11-29

 

참고로 이미 Hostname 변경, 절전모드해제, 키보드 세팅 등의 기초작업은 끝난상태이며

https://docs.smart-mirror.io 문서를 참고하시면 절전모드 몇가지 설정에 대해 나와있네요

그리고 github에서 smart-mirror fork해서 url 다릅니다

Linux rasp2-smart-mirror 4.9.59-v7+ #1047 SMP Sun Oct 29 12:19:23 GMT 2017 armv7l

 

The programs included with the Debian GNU/Linux system are free software;

the exact distribution terms for each program are described in the

individual files in /usr/share/doc/*/copyright.

 

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent

permitted by applicable law.

Last login: Sat Jan 27 16:33:23 2018 from 25.50.237.7

pi@rasp2-smart-mirror:~ $ ls

Desktop    Downloads  Pictures  python_games  utils

Documents  Music      Public    Templates     Videos

pi@rasp2-smart-mirror:~ $ cd utils/

pi@rasp2-smart-mirror:~/utils $ ls

logmein-hamachi_2.1.0.174-1_armhf.deb

pi@rasp2-smart-mirror:~/utils $ git clone https://github.com/zelkun/smart-mirrorCloning into 'smart-mirror'...

remote: Counting objects: 5393, done.

remote: Total 5393 (delta 0), reused 0 (delta 0), pack-reused 5393

Receiving objects: 100% (5393/5393), 12.53 MiB | 2.41 MiB/s, done.

Resolving deltas: 100% (2977/2977), done.

pi@rasp2-smart-mirror:~/utils $ ls

logmein-hamachi_2.1.0.174-1_armhf.deb  smart-mirror

pi@rasp2-smart-mirror:~/utils $ cd smart-mirror/

pi@rasp2-smart-mirror:~/utils/smart-mirror $ ls

app              index.html    plugins    scripts

bower.json       main.js       README.md  smart_mirror.pmdl

CONTRIBUTING.md  motion.js     remote     smart_mirror.umdl

favicon.ico      package.json  remote.js  sonus.js

pi@rasp2-smart-mirror:~/utils/smart-mirror $ npm -v

-bash: npm: command not found

pi@rasp2-smart-mirror:/usr/bin $ node -v

v4.8.2

pi@rasp2-smart-mirror:/usr/bin $ 

nodejs 이미 설치되있으니 상관없는데... npm 설치가 안되있네요...

nodejs 4.8.2 제공하더니....(Jessie v0.10.29 였던걸 생각하면...)

sudo apt-get install npm 으로 설치하면되지만.. 어처구니 없게도 버전이... 1.4.21

 

일단 실행해보는게 목표니 1.4버전으로 진행해봤습니다

  • nodejs 를 nodejs.org에서 최신으로 받아서 설치하면 아래에서 삽질하는건 좀 덜할 것 같네요
  • node-red 등 기본으로 pi에 설치된거에 영향을 안주려고 npm만 별도로 작업했는데 삽질했네요

 

  • 일단 npm 설치..

pi@rasp2-smart-mirror:~/utils/smart-mirror $ sudo apt-get install npm

Reading package lists... Done

Building dependency tree       

Reading state information... Done

The following additional packages will be installed:

  gyp libjs-inherits libjs-node-uuid libssl1.0-dev libuv1-dev node-abbrev

  node-ansi node-ansi-color-table node-archy node-async node-balanced-match

  node-block-stream node-brace-expansion node-builtin-modules

  node-combined-stream node-concat-map node-cookie-jar node-delayed-stream

  node-forever-agent node-form-data node-fs.realpath node-fstream

  node-fstream-ignore node-github-url-from-git node-glob node-graceful-fs

  node-gyp node-hosted-git-info node-inflight node-inherits node-ini

  node-is-builtin-module node-isexe node-json-stringify-safe node-lockfile

  node-lru-cache node-mime node-minimatch node-mkdirp node-mute-stream

  node-node-uuid node-nopt node-normalize-package-data node-npmlog node-once

  node-osenv node-path-is-absolute node-pseudomap node-qs node-read

  node-read-package-json node-request node-retry node-rimraf node-semver

  node-sha node-slide node-spdx-correct node-spdx-expression-parse

  node-spdx-license-ids node-tar node-tunnel-agent node-underscore

  node-validate-npm-package-license node-which node-wrappy node-yallist

  nodejs-dev

 

    . . .

 

Setting up node-read-package-json (1.2.4-1) ...

Setting up node-fstream (1.0.10-1) ...

Setting up node-fstream-ignore (0.0.6-2) ...

Setting up node-tar (2.2.1-1) ...

Setting up node-gyp (3.4.0-1) ...

Setting up npm (1.4.21+ds-2) ...

pi@rasp2-smart-mirror:~/utils/smart-mirror $ npm -v

1.4.21

pi@rasp2-smart-mirror:~/utils/smart-mirror $ 

 

  • npm을 설치했으니 패키지 인스톨을 진행합니다

pi@rasp2-smart-mirror:~/utils/smart-mirror $ npm -v

1.4.21

pi@rasp2-smart-mirror:~/utils/smart-mirror $ npm install

npm WARN deprecated bower@1.8.2: ...psst! Your project can stop working at any moment because its dependencies can change. Prevent this by migrating to Yarn: https://bower.io/blog/2017/how-to-migrate-away-from-bower/

npm ERR! 404 Not Found

npm ERR! 404 

npm ERR! 404 'types/node' is not in the npm registry.

npm ERR! 404 You should bug the author to publish it

npm ERR! 404 It was specified as a dependency of 'electron'

npm ERR! 404 

npm ERR! 404 Note that you can also install from a

npm ERR! 404 tarball, folder, or http url, or git url.

 

npm ERR! System Linux 4.9.59-v7+

npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install"

npm ERR! cwd /home/pi/utils/smart-mirror

npm ERR! node -v v4.8.2

npm ERR! npm -v 1.4.21

npm ERR! code E404

npm WARN package.json form-data@0.0.3 No license field.

npm WARN package.json mime@1.2.7 No license field.

 

역시 예상대로 버전이 달라서 그런지... 차였습니다

 

맥에서 npm install을 진행해보니 잘만 깔리네요


설치가 됬으니 실행도 해봅니다

npm start

 


 

실행도 잘되네요... 근데 프로세스를 가로채는지...

키보드.. 마우스를 전혀 사용이 안되서 재부팅을 해야하나... 난감해함..

 

무튼 일단 소스는 문제가 없어보이니 파이에서 설치가 안되는 이슈해결을 위해

맥의 npm 버전을 살펴보니 node는 5.3.0, npm 은 3.3.12

 

문제는 npm버전으로 보여 최신은 아니지만 binay 버전을 받아 앞축을 풀고

npm install 을 다시 진행합니다

 

wget https://nodejs.org/dist/v6.10.1/node-v6.10.1-linux-armv7l.tar.xz

pi@rasp2-smart-mirror:~/utils $ wget https://nodejs.org/dist/v6.10.1/node-v6.10.1-linux-armv7l.tar.xz

--2018-01-28 13:36:51--  https://nodejs.org/dist/v6.10.1/node-v6.10.1-linux-armv7l.tar.xz

Resolving nodejs.org (nodejs.org)... 104.20.22.46, 104.20.23.46, 2400:cb00:2048:1::6814:162e, ...

Connecting to nodejs.org (nodejs.org)|104.20.22.46|:443... connected.

HTTP request sent, awaiting response... 200 OK

Length: 8320636 (7.9M) [application/x-xz]

Saving to: ‘node-v6.10.1-linux-armv7l.tar.xz’

 

node-v6.10.1-linux- 100%[===================>]   7.93M  2.45MB/s    in 3.2s    

 

2018-01-28 13:36:56 (2.45 MB/s) - ‘node-v6.10.1-linux-armv7l.tar.xz’ saved [8320636/8320636]

 

pi@rasp2-smart-mirror:~/utils $ ls -al

total 9636

drwxr-xr-x  4 pi pi    4096 Jan 28 13:37 .

drwxr-xr-x 22 pi pi    4096 Jan 28 13:31 ..

-rw-r--r--  1 pi pi 1524482 Jan 17 03:18 logmein-hamachi_2.1.0.174-1_armhf.deb

drwxr-xr-x  6 pi pi    4096 Mar 22  2017 node-v6.10.1-linux-armv7l

-rw-r--r--  1 pi pi 8320636 Mar 22  2017 node-v6.10.1-linux-armv7l.tar.xz

drwxr-xr-x  9 pi pi    4096 Jan 28 12:44 smart-mirror

pi@rasp2-smart-mirror:~/utils $ tar -xvf node-v6.10.1-linux-armv7l.tar.xz

 

  . . .

 

pi@rasp2-smart-mirror:~/utils $ ./node-v6.10.1-linux-armv7l/bin/npm -v

3.10.10

pi@rasp2-smart-mirror:~/utils $ cd smart-mirror/

pi@rasp2-smart-mirror:~/utils/smart-mirror $ ./../node-v6.10.1-linux-armv7l/bin/npm install

[      ............] | fetchMetadata: sill mapToRegistry uri https://registry.n

 

이제 뭔가 설치되는거 같네요

> snowboy@1.2.0 preinstall /home/pi/utils/smart-mirror/node_modules/.staging/snowboy-a806ab14

> npm install node-pre-gyp

 

sh: 1: npm: not found

smart-mirror@0.0.16 /home/pi/utils/smart-mirror

├─┬ electron@1.7.11 

│ ├── @types/node@7.0.52 

│ ├─┬ electron-download@3.3.0 

│ │ ├─┬ debug@2.6.9 

│ │ │ └── ms@2.0.0 

│ │ ├─┬ fs-extra@0.30.0 

│ │ │ ├── graceful-fs@4.1.11 

│ │ │ ├── jsonfile@2.4.0 

│ │ │ ├── klaw@1.3.1 

│ │ │ ├── path-is-absolute@1.0.1 

│ │ │ └─┬ rimraf@2.6.2 

│ │ │   └─┬ glob@7.1.2 

│ │ │     ├── fs.realpath@1.0.0 

│ │ │     ├─┬ inflight@1.0.6 

│ │ │     │ └── wrappy@1.0.2 

│ │ │     ├─┬ minimatch@3.0.4 

│ │ │     │ └─┬ brace-expansion@1.1.8 

│ │ │       ├── balanced-match@1.0.0 

│ │ │       └── concat-map@0.0.1 

│ │ │     └── once@1.4.0 

│ │ ├── home-path@1.0.5 

│ │ ├── minimist@1.2.0 

│ │ ├─┬ nugget@2.0.1 

│ │ │ ├── minimist@1.2.0 

│ │ │ ├─┬ pretty-bytes@1.0.4 

│ │ │ │ ├── get-stdin@4.0.1 

│ │ │ │ └─┬ meow@3.7.0 

│ │ │ │   ├─┬ camelcase-keys@2.1.0 

│ │ │ │   │ └── camelcase@2.1.1 

│ │ │ │   ├── decamelize@1.2.0 

│ │ │ │   ├─┬ loud-rejection@1.6.0 

│ │ │ │   │ ├─┬ currently-unhandled@0.4.1 

│ │ │ │   │ │ └── array-find-index@1.0.2 

│ │ │ │   │ └── signal-exit@3.0.2 

│ │ │ │   ├── map-obj@1.0.1 

│ │ │ │   ├── minimist@1.2.0 

│ │ │ │   ├─┬ normalize-package-data@2.4.0 

│ │ │ │   │ ├── hosted-git-info@2.5.0 

│ │ │ │   │ ├─┬ is-builtin-module@1.0.0 

│ │ │ │   │ │ └── builtin-modules@1.1.1 

│ │ │ │   │ └─┬ validate-npm-package-license@3.0.1 

│ │ │ │     ├─┬ spdx-correct@1.0.2 

│ │ │ │     │ └── spdx-license-ids@1.2.2 

│ │ │ │     └── spdx-expression-parse@1.0.4 

│ │ │ │   ├── object-assign@4.1.1 

│ │ │ │   ├─┬ read-pkg-up@1.0.1 

│ │ │ │   │ ├── find-up@1.1.2 

│ │ │ │   │ └─┬ read-pkg@1.1.0 

│ │ │ │     ├─┬ load-json-file@1.1.0 

│ │ │ │     │ ├─┬ parse-json@2.2.0 

│ │ │ │     │ │ └─┬ error-ex@1.3.1 

│ │ │ │     │ │   └── is-arrayish@0.2.1 

│ │ │ │     │ ├── pify@2.3.0 

│ │ │ │     │ └─┬ strip-bom@2.0.0 

│ │ │ │       └── is-utf8@0.2.1 

│ │ │ │     └── path-type@1.1.0 

│ │ │ │   ├─┬ redent@1.0.0 

│ │ │ │   │ ├─┬ indent-string@2.1.0 

│ │ │ │   │ │ └─┬ repeating@2.0.1 

│ │ │ │   │ │   └── is-finite@1.0.2 

│ │ │ │   │ └── strip-indent@1.0.1 

│ │ │ │   └── trim-newlines@1.0.0 

│ │ │ ├─┬ progress-stream@1.2.0 

│ │ │ │ ├── speedometer@0.1.4 

│ │ │ │ └─┬ through2@0.2.3 

│ │ │ │   ├─┬ readable-stream@1.1.14 

│ │ │ │   │ ├── isarray@0.0.1 

│ │ │ │   │ └── string_decoder@0.10.31 

│ │ │ │   └─┬ xtend@2.1.2 

│ │ │ │     └── object-keys@0.4.0 

│ │ │ ├─┬ request@2.83.0 

│ │ │ │ ├── aws-sign2@0.7.0 

│ │ │ │ ├── aws4@1.6.0 

│ │ │ │ ├── caseless@0.12.0 

│ │ │ │ ├─┬ combined-stream@1.0.5 

│ │ │ │ │ └── delayed-stream@1.0.0 

│ │ │ │ ├── extend@3.0.1 

│ │ │ │ ├── forever-agent@0.6.1 

│ │ │ │ ├─┬ form-data@2.3.1 

│ │ │ │ │ └── asynckit@0.4.0 

│ │ │ │ ├─┬ har-validator@5.0.3 

│ │ │ │ │ ├─┬ ajv@5.5.2 

│ │ │ │ │ │ ├── fast-deep-equal@1.0.0 

│ │ │ │ │ │ ├── fast-json-stable-stringify@2.0.0 

│ │ │ │ │ │ └── json-schema-traverse@0.3.1 

│ │ │ │ │ └── har-schema@2.0.0 

│ │ │ │ ├─┬ hawk@6.0.2 

│ │ │ │ │ ├── boom@4.3.1 

│ │ │ │ │ ├─┬ cryptiles@3.1.2 

│ │ │ │ │ │ └── boom@5.2.0 

│ │ │ │ │ ├── hoek@4.2.0 

│ │ │ │ │ └── sntp@2.1.0 

│ │ │ │ ├─┬ http-signature@1.2.0 

│ │ │ │ │ ├── assert-plus@1.0.0 

│ │ │ │ │ ├─┬ jsprim@1.4.1 

│ │ │ │ │ │ ├── extsprintf@1.3.0 

│ │ │ │ │ │ ├── json-schema@0.2.3 

│ │ │ │ │ │ └── verror@1.10.0 

│ │ │ │ │ └─┬ sshpk@1.13.1 

│ │ │ │ │   ├── asn1@0.2.3 

│ │ │ │ │   ├── bcrypt-pbkdf@1.0.1 

│ │ │ │ │   ├── dashdash@1.14.1 

│ │ │ │ │   ├── ecc-jsbn@0.1.1 

│ │ │ │ │   ├── getpass@0.1.7 

│ │ │ │ │   ├── jsbn@0.1.1 

│ │ │ │ │   └── tweetnacl@0.14.5 

│ │ │ │ ├── is-typedarray@1.0.0 

│ │ │ │ ├── isstream@0.1.2 

│ │ │ │ ├── json-stringify-safe@5.0.1 

│ │ │ │ ├─┬ mime-types@2.1.17 

│ │ │ │ │ └── mime-db@1.30.0 

│ │ │ │ ├── oauth-sign@0.8.2 

│ │ │ │ ├── performance-now@2.1.0 

│ │ │ │ ├── qs@6.5.1 

│ │ │ │ ├── safe-buffer@5.1.1 

│ │ │ │ ├── stringstream@0.0.5 

│ │ │ │ ├─┬ tough-cookie@2.3.3 

│ │ │ │ │ └── punycode@1.4.1 

│ │ │ │ ├── tunnel-agent@0.6.0 

│ │ │ │ └── uuid@3.2.1 

│ │ │ ├─┬ single-line-log@1.1.2 

│ │ │ │ └─┬ string-width@1.0.2 

│ │ │ │   ├── code-point-at@1.1.0 

│ │ │ │   ├─┬ is-fullwidth-code-point@1.0.0 

│ │ │ │   │ └── number-is-nan@1.0.1 

│ │ │ │   └─┬ strip-ansi@3.0.1 

│ │ │ │     └── ansi-regex@2.1.1 

│ │ │ └── throttleit@0.0.2 

│ │ ├─┬ path-exists@2.1.0 

│ │ │ └─┬ pinkie-promise@2.0.1 

│ │ │   └── pinkie@2.0.4 

│ │ ├─┬ rc@1.2.4 

│ │ │ ├── deep-extend@0.4.2 

│ │ │ ├── ini@1.3.5 

│ │ │ ├── minimist@1.2.0 

│ │ │ └── strip-json-comments@2.0.1 

│ │ ├── semver@5.5.0 

│ │ └─┬ sumchecker@1.3.1 

│ │   └── es6-promise@4.2.4 

│ └─┬ extract-zip@1.6.6 

  ├─┬ concat-stream@1.6.0 

  │ ├── inherits@2.0.3 

  │ ├─┬ readable-stream@2.3.3 

  │ │ ├── core-util-is@1.0.2 

  │ │ ├── isarray@1.0.0 

  │ │ ├── process-nextick-args@1.0.7 

  │ │ ├── string_decoder@1.0.3 

  │ │ └── util-deprecate@1.0.2 

  │ └── typedarray@0.0.6 

  ├─┬ mkdirp@0.5.0 

  │ └── minimist@0.0.8 

  └─┬ yauzl@2.4.1 

    └─┬ fd-slicer@1.0.1 

      └── pend@1.2.0 

└─┬ eslint@3.19.0

  ├─┬ escope@3.6.0

  │ └─┬ es6-map@0.1.5

  │   ├── d@1.0.0 

  │   ├── es5-ext@0.10.38 

  │   ├── es6-iterator@2.0.3 

  │   ├── es6-set@0.1.5 

  │   ├── es6-symbol@3.1.1 

  │   └── event-emitter@0.3.5 

  ├─┬ shelljs@0.7.8

  │ └─┬ rechoir@0.6.2

  │   └─┬ resolve@1.5.0

  │     └── path-parse@1.0.5 

  └─┬ table@3.8.3

    ├─┬ ajv@4.11.8

    │ └── co@4.6.0 

    └─┬ string-width@2.1.1

      └─┬ strip-ansi@4.0.0

        └── ansi-regex@3.0.0 

 

npm ERR! Linux 4.9.59-v7+

npm ERR! argv "/usr/bin/nodejs" "/home/pi/utils/node-v6.10.1-linux-armv7l/bin/npm" "install"

npm ERR! node v4.8.2

npm ERR! npm  v3.10.10

npm ERR! file sh

npm ERR! code ELIFECYCLE

npm ERR! errno ENOENT

npm ERR! syscall spawn

 

npm ERR! snowboy@1.2.0 preinstall: `npm install node-pre-gyp`

npm ERR! spawn ENOENT

npm ERR! 

npm ERR! Failed at the snowboy@1.2.0 preinstall script 'npm install node-pre-gyp'.

npm ERR! Make sure you have the latest version of node.js and npm installed.

npm ERR! If you do, this is most likely a problem with the snowboy package,

npm ERR! not with npm itself.

npm ERR! Tell the author that this fails on your system:

npm ERR!     npm install node-pre-gyp

npm ERR! You can get information on how to open an issue for this project with:

npm ERR!     npm bugs snowboy

npm ERR! Or if that isn't available, you can get their info via:

npm ERR!     npm owner ls snowboy

npm ERR! There is likely additional logging output above.

 

npm ERR! Please include the following file with any support request:

npm ERR!     /home/pi/utils/smart-mirror/npm-debug.log

근데.. 결국 중간에 에러... ㅋㅋㅋ

node-pre-gyp 가 없다니 설치하고 다시 시도 했습니다

sudo apt-get install node-pre-gyp

 

다시 npm으로 돌아와 update를 진행합니다

install은 처음부터 다시 설치할테니 싶었는데

 

같은 에러를 토해주네요 결국 npm 으로 설치된게 아니라 node_module에 없어서 그런듯

npm을 대충 설정하고 path도 안잡혀있어서 그런지 귀찮게 하네요

pi@rasp2-smart-mirror:~/utils/smart-mirror $ ./../node-v6.10.1-linux-armv7l/bin/npm install node-pre-gyp

smart-mirror@0.0.16 /home/pi/utils/smart-mirror

├─┬ eslint@3.19.0

│ ├─┬ escope@3.6.0

│ │ └─┬ es6-map@0.1.5

│ │   ├── d@1.0.0 

│ │   ├── es5-ext@0.10.38 

│ │   ├── es6-iterator@2.0.3 

│ │   ├── es6-set@0.1.5 

│ │   ├── es6-symbol@3.1.1 

│ │   └── event-emitter@0.3.5 

│ ├─┬ shelljs@0.7.8

│ │ └─┬ rechoir@0.6.2

│ │   └─┬ resolve@1.5.0

│ │     └── path-parse@1.0.5 

│ └─┬ table@3.8.3

  ├─┬ ajv@4.11.8

  │ └── co@4.6.0 

  └─┬ string-width@2.1.1

    └─┬ strip-ansi@4.0.0

      └── ansi-regex@3.0.0 

└─┬ node-pre-gyp@0.6.39 

  ├── detect-libc@1.0.3 

  ├─┬ hawk@3.1.3 

  │ ├── boom@2.10.1 

  │ ├── cryptiles@2.0.5 

  │ ├── hoek@2.16.3 

  │ └── sntp@1.0.9 

  ├─┬ mkdirp@0.5.1 

  │ └── minimist@0.0.8 

  ├─┬ nopt@4.0.1 

  │ ├── abbrev@1.1.1 

  │ └─┬ osenv@0.1.4 

  │   ├── os-homedir@1.0.2 

  │   └── os-tmpdir@1.0.2 

  ├─┬ npmlog@4.1.2 

  │ ├─┬ are-we-there-yet@1.1.4 

  │ │ └── delegates@1.0.0 

  │ ├── console-control-strings@1.1.0 

  │ ├─┬ gauge@2.7.4 

  │ │ ├── aproba@1.2.0 

  │ │ ├── has-unicode@2.0.1 

  │ │ ├── object-assign@4.1.1 

  │ │ ├── signal-exit@3.0.2 

  │ │ ├─┬ string-width@1.0.2 

  │ │ │ ├── code-point-at@1.1.0 

  │ │ │ └─┬ is-fullwidth-code-point@1.0.0 

  │ │ │   └── number-is-nan@1.0.1 

  │ │ ├─┬ strip-ansi@3.0.1 

  │ │ │ └── ansi-regex@2.1.1 

  │ │ └── wide-align@1.1.2 

  │ └── set-blocking@2.0.0 

  ├─┬ rc@1.2.4 

  │ ├── deep-extend@0.4.2 

  │ ├── ini@1.3.5 

  │ ├── minimist@1.2.0 

  │ └── strip-json-comments@2.0.1 

  ├─┬ request@2.81.0 

  │ ├── aws-sign2@0.6.0 

  │ ├── aws4@1.6.0 

  │ ├── caseless@0.12.0 

  │ ├─┬ combined-stream@1.0.5 

  │ │ └── delayed-stream@1.0.0 

  │ ├── extend@3.0.1 

  │ ├── forever-agent@0.6.1 

  │ ├─┬ form-data@2.1.4 

  │ │ └── asynckit@0.4.0 

  │ ├─┬ har-validator@4.2.1 

  │ │ ├─┬ ajv@4.11.8 

  │ │ │ └─┬ json-stable-stringify@1.0.1 

  │ │ │   └── jsonify@0.0.0 

  │ │ └── har-schema@1.0.5 

  │ ├─┬ http-signature@1.1.1 

  │ │ ├── assert-plus@0.2.0 

  │ │ ├─┬ jsprim@1.4.1 

  │ │ │ ├── assert-plus@1.0.0 

  │ │ │ ├── extsprintf@1.3.0 

  │ │ │ ├── json-schema@0.2.3 

  │ │ │ └─┬ verror@1.10.0 

  │ │ │   └── assert-plus@1.0.0 

  │ │ └─┬ sshpk@1.13.1 

  │ │   ├── asn1@0.2.3 

  │ │   ├── assert-plus@1.0.0 

  │ │   ├── bcrypt-pbkdf@1.0.1 

  │ │   ├─┬ dashdash@1.14.1 

  │ │   │ └── assert-plus@1.0.0 

  │ │   ├── ecc-jsbn@0.1.1 

  │ │   ├─┬ getpass@0.1.7 

  │ │   │ └── assert-plus@1.0.0 

  │ │   ├── jsbn@0.1.1 

  │ │   └── tweetnacl@0.14.5 

  │ ├── is-typedarray@1.0.0 

  │ ├── isstream@0.1.2 

  │ ├── json-stringify-safe@5.0.1 

  │ ├─┬ mime-types@2.1.17 

  │ │ └── mime-db@1.30.0 

  │ ├── oauth-sign@0.8.2 

  │ ├── performance-now@0.2.0 

  │ ├── qs@6.4.0 

  │ ├── safe-buffer@5.1.1 

  │ ├── stringstream@0.0.5 

  │ ├─┬ tough-cookie@2.3.3 

  │ │ └── punycode@1.4.1 

  │ ├── tunnel-agent@0.6.0 

  │ └── uuid@3.2.1 

  ├─┬ rimraf@2.6.2 

  │ └─┬ glob@7.1.2 

  │   ├── fs.realpath@1.0.0 

  │   ├── inflight@1.0.6 

  │   ├─┬ minimatch@3.0.4 

  │   │ └─┬ brace-expansion@1.1.8 

  │     ├── balanced-match@1.0.0 

  │     └── concat-map@0.0.1 

  │   └── path-is-absolute@1.0.1 

  ├── semver@5.5.0 

  ├─┬ tar@2.2.1 

  │ ├── block-stream@0.0.9 

  │ ├─┬ fstream@1.0.11 

  │ │ └── graceful-fs@4.1.11 

  │ └── inherits@2.0.3 

  └─┬ tar-pack@3.4.1 

    ├─┬ debug@2.6.9 

    │ └── ms@2.0.0 

    ├── fstream-ignore@1.0.5 

    ├─┬ once@1.4.0 

    │ └── wrappy@1.0.2 

    ├─┬ readable-stream@2.3.3 

    │ ├── core-util-is@1.0.2 

    │ ├── isarray@1.0.0 

    │ ├── process-nextick-args@1.0.7 

    │ ├── string_decoder@1.0.3 

    │ └── util-deprecate@1.0.2 

    └── uid-number@0.0.6 

 

pi@rasp2-smart-mirror:~/utils/smart-mirror $ 

 

node-pre-gyp가 설치되었네요...

귀찮으니 npm 을 path에 넣어놔야 겠어요..

미리 할걸...

pi@rasp2-smart-mirror:~/utils/smart-mirror $ which npm

pi@rasp2-smart-mirror:~/utils/smart-mirror $ ls -al /usr/local/

total 40

drwxrwsr-x 10 root staff 4096 Nov 29 10:06 .

drwxr-xr-x 11 root root  4096 Nov 29 11:09 ..

drwxrwsr-x  2 root staff 4096 Nov 29 10:06 bin

drwxrwsr-x  2 root staff 4096 Nov 29 10:06 etc

drwxrwsr-x  2 root staff 4096 Nov 29 10:06 games

drwxrwsr-x  2 root staff 4096 Nov 29 10:06 include

drwxrwsr-x  5 root staff 4096 Nov 29 11:16 lib

lrwxrwxrwx  1 root staff    9 Nov 29 10:06 man -> share/man

drwxrwsr-x  2 root staff 4096 Nov 29 10:06 sbin

drwxrwsr-x  8 root staff 4096 Nov 29 10:49 share

drwxrwsr-x  2 root staff 4096 Nov 29 10:06 src

pi@rasp2-smart-mirror:~/utils/smart-mirror $ cd ..

pi@rasp2-smart-mirror:~/utils $ sudo mv node-v6.10.1-linux-armv7l /usr/local/

pi@rasp2-smart-mirror:~/utils $ sudo ln -s /usr/local/node-v6.10.1-linux-armv7l/bin/npm /usr/local/bin/npm

pi@rasp2-smart-mirror:~/utils $ which npm

/usr/local/bin/npm

pi@rasp2-smart-mirror:~/utils $ npm -v

3.10.10

pi@rasp2-smart-mirror:~/utils $ 

이제 다시 npm update

 

드디어 설치가 끝났네요

짝짝짝

pi@rasp2-smart-mirror:~/utils $ cd smart-mirror/

pi@rasp2-smart-mirror:~/utils/smart-mirror $ npm update

 

> snowboy@1.2.0 preinstall /home/pi/utils/smart-mirror/node_modules/.staging/snowboy-a806ab14

> npm install node-pre-gyp

 

snowboy@1.2.0 /home/pi/utils/smart-mirror/node_modules/.staging/snowboy-a806ab14

└─┬ node-pre-gyp@0.6.39 

  ├── detect-libc@1.0.3 

  ├─┬ hawk@3.1.3 

  │ ├── boom@2.10.1 

  │ ├── cryptiles@2.0.5 

  │ ├── hoek@2.16.3 

  │ └── sntp@1.0.9 

  ├─┬ mkdirp@0.5.1 

  │ └── minimist@0.0.8 

  ├─┬ nopt@4.0.1 

  │ ├── abbrev@1.1.1 

  │ └─┬ osenv@0.1.4 

  │   ├── os-homedir@1.0.2 

  │   └── os-tmpdir@1.0.2 

  ├─┬ npmlog@4.1.2 

  │ ├─┬ are-we-there-yet@1.1.4 

  │ │ └── delegates@1.0.0 

  │ ├── console-control-strings@1.1.0 

  │ ├─┬ gauge@2.7.4 

  │ │ ├── aproba@1.2.0 

  │ │ ├── has-unicode@2.0.1 

  │ │ ├── object-assign@4.1.1 

  │ │ ├── signal-exit@3.0.2 

  │ │ ├─┬ string-width@1.0.2 

  │ │ │ ├── code-point-at@1.1.0 

  │ │ │ └─┬ is-fullwidth-code-point@1.0.0 

  │ │ │   └── number-is-nan@1.0.1 

  │ │ ├─┬ strip-ansi@3.0.1 

  │ │ │ └── ansi-regex@2.1.1 

  │ │ └── wide-align@1.1.2 

  │ └── set-blocking@2.0.0 

  ├─┬ rc@1.2.4 

  │ ├── deep-extend@0.4.2 

  │ ├── ini@1.3.5 

  │ ├── minimist@1.2.0 

  │ └── strip-json-comments@2.0.1 

  ├─┬ request@2.81.0 

  │ ├── aws-sign2@0.6.0 

  │ ├── aws4@1.6.0 

  │ ├── caseless@0.12.0 

  │ ├─┬ combined-stream@1.0.5 

  │ │ └── delayed-stream@1.0.0 

  │ ├── extend@3.0.1 

  │ ├── forever-agent@0.6.1 

  │ ├─┬ form-data@2.1.4 

  │ │ └── asynckit@0.4.0 

  │ ├─┬ har-validator@4.2.1 

  │ │ ├─┬ ajv@4.11.8 

  │ │ │ ├── co@4.6.0 

  │ │ │ └─┬ json-stable-stringify@1.0.1 

  │ │ │   └── jsonify@0.0.0 

  │ │ └── har-schema@1.0.5 

  │ ├─┬ http-signature@1.1.1 

  │ │ ├── assert-plus@0.2.0 

  │ │ ├─┬ jsprim@1.4.1 

  │ │ │ ├── assert-plus@1.0.0 

  │ │ │ ├── extsprintf@1.3.0 

  │ │ │ ├── json-schema@0.2.3 

  │ │ │ └─┬ verror@1.10.0 

  │ │ │   └── assert-plus@1.0.0 

  │ │ └─┬ sshpk@1.13.1 

  │ │   ├── asn1@0.2.3 

  │ │   ├── assert-plus@1.0.0 

  │ │   ├── bcrypt-pbkdf@1.0.1 

  │ │   ├─┬ dashdash@1.14.1 

  │ │   │ └── assert-plus@1.0.0 

  │ │   ├── ecc-jsbn@0.1.1 

  │ │   ├─┬ getpass@0.1.7 

  │ │   │ └── assert-plus@1.0.0 

  │ │   ├── jsbn@0.1.1 

  │ │   └── tweetnacl@0.14.5 

  │ ├── is-typedarray@1.0.0 

  │ ├── isstream@0.1.2 

  │ ├── json-stringify-safe@5.0.1 

  │ ├─┬ mime-types@2.1.17 

  │ │ └── mime-db@1.30.0 

  │ ├── oauth-sign@0.8.2 

  │ ├── performance-now@0.2.0 

  │ ├── qs@6.4.0 

  │ ├── safe-buffer@5.1.1 

  │ ├── stringstream@0.0.5 

  │ ├─┬ tough-cookie@2.3.3 

  │ │ └── punycode@1.4.1 

  │ ├── tunnel-agent@0.6.0 

  │ └── uuid@3.2.1 

  ├─┬ rimraf@2.6.2 

  │ └─┬ glob@7.1.2 

  │   ├── fs.realpath@1.0.0 

  │   ├── inflight@1.0.6 

  │   ├─┬ minimatch@3.0.4 

  │   │ └─┬ brace-expansion@1.1.8 

  │   │   ├── balanced-match@1.0.0 

  │   │   └── concat-map@0.0.1 

  │   └── path-is-absolute@1.0.1 

  ├── semver@5.5.0 

  ├─┬ tar@2.2.1 

  │ ├── block-stream@0.0.9 

  │ ├─┬ fstream@1.0.11 

  │ │ └── graceful-fs@4.1.11 

  │ └── inherits@2.0.3 

  └─┬ tar-pack@3.4.1 

    ├─┬ debug@2.6.9 

    │ └── ms@2.0.0 

    ├── fstream-ignore@1.0.5 

    ├─┬ once@1.4.0 

    │ └── wrappy@1.0.2 

    ├─┬ readable-stream@2.3.3 

    │ ├── core-util-is@1.0.2 

    │ ├── isarray@1.0.0 

    │ ├── process-nextick-args@1.0.7 

    │ ├── string_decoder@1.0.3 

    │ └── util-deprecate@1.0.2 

    └── uid-number@0.0.6 

 

 

> grpc@1.8.4 install /home/pi/utils/smart-mirror/node_modules/grpc

> node-pre-gyp install --fallback-to-build --library=static_library

 

[grpc] Success: "/home/pi/utils/smart-mirror/node_modules/grpc/src/node/extension_binary/node-v46-linux-arm-glibc/grpc_node.node" is installed via remote

 

> snowboy@1.2.0 install /home/pi/utils/smart-mirror/node_modules/snowboy

> node-pre-gyp install --fallback-to-build

 

[snowboy] Success: "/home/pi/utils/smart-mirror/node_modules/snowboy/lib/node/binding/Release/node-v46-linux-arm/snowboy.node" is installed via remote

 

> protobufjs@6.8.4 postinstall /home/pi/utils/smart-mirror/node_modules/protobufjs

> node scripts/postinstall

 

 

> electron@1.8.1 postinstall /home/pi/utils/smart-mirror/node_modules/electron

> node install.js

 

smart-mirror@0.0.16 /home/pi/utils/smart-mirror

├── electron@1.8.1 

└── sonus@0.1.9 

 

pi@rasp2-smart-mirror:~/utils/smart-mirror $ 

 

npm start 를 진행합니다

근데 에러... 하아... 결국 nodejs 도 바꿔줬습니다

sudo ln -s /usr/local/node-v6.10.1-linux-armv7l/bin/node /usr/local/bin/node

 

다시 npm install

pi@rasp2-smart-mirror:~/utils/smart-mirror $ npm install

npm WARN deprecated bower@1.8.2: ...psst! Your project can stop working at any moment because its dependencies can change. Prevent this by migrating to Yarn: https://bower.io/blog/2017/how-to-migrate-away-from-bower/

 

> snowboy@1.2.0 preinstall /home/pi/utils/smart-mirror/node_modules/.staging/snowboy-a806ab14

> npm install node-pre-gyp

 

snowboy@1.2.0 /home/pi/utils/smart-mirror/node_modules/.staging/snowboy-a806ab14

└─┬ node-pre-gyp@0.6.39 

  ├── detect-libc@1.0.3 

  ├─┬ hawk@3.1.3 

  │ ├── boom@2.10.1 

  │ ├── cryptiles@2.0.5 

  │ ├── hoek@2.16.3 

  │ └── sntp@1.0.9 

  ├─┬ mkdirp@0.5.1 

  │ └── minimist@0.0.8 

  ├─┬ nopt@4.0.1 

  │ ├── abbrev@1.1.1 

  │ └─┬ osenv@0.1.4 

  │   ├── os-homedir@1.0.2 

  │   └── os-tmpdir@1.0.2 

  ├─┬ npmlog@4.1.2 

  │ ├─┬ are-we-there-yet@1.1.4 

  │ │ └── delegates@1.0.0 

  │ ├── console-control-strings@1.1.0 

  │ ├─┬ gauge@2.7.4 

  │ │ ├── aproba@1.2.0 

  │ │ ├── has-unicode@2.0.1 

  │ │ ├── object-assign@4.1.1 

  │ │ ├── signal-exit@3.0.2 

  │ │ ├─┬ string-width@1.0.2 

  │ │ │ ├── code-point-at@1.1.0 

  │ │ │ └─┬ is-fullwidth-code-point@1.0.0 

  │ │ │   └── number-is-nan@1.0.1 

  │ │ ├─┬ strip-ansi@3.0.1 

  │ │ │ └── ansi-regex@2.1.1 

  │ │ └── wide-align@1.1.2 

  │ └── set-blocking@2.0.0 

  ├─┬ rc@1.2.4 

  │ ├── deep-extend@0.4.2 

  │ ├── ini@1.3.5 

  │ ├── minimist@1.2.0 

  │ └── strip-json-comments@2.0.1 

  ├─┬ request@2.81.0 

  │ ├── aws-sign2@0.6.0 

  │ ├── aws4@1.6.0 

  │ ├── caseless@0.12.0 

  │ ├─┬ combined-stream@1.0.5 

  │ │ └── delayed-stream@1.0.0 

  │ ├── extend@3.0.1 

  │ ├── forever-agent@0.6.1 

  │ ├─┬ form-data@2.1.4 

  │ │ └── asynckit@0.4.0 

  │ ├─┬ har-validator@4.2.1 

  │ │ ├─┬ ajv@4.11.8 

  │ │ │ ├── co@4.6.0 

  │ │ │ └─┬ json-stable-stringify@1.0.1 

  │ │ │   └── jsonify@0.0.0 

  │ │ └── har-schema@1.0.5 

  │ ├─┬ http-signature@1.1.1 

  │ │ ├── assert-plus@0.2.0 

  │ │ ├─┬ jsprim@1.4.1 

  │ │ │ ├── assert-plus@1.0.0 

  │ │ │ ├── extsprintf@1.3.0 

  │ │ │ ├── json-schema@0.2.3 

  │ │ │ └─┬ verror@1.10.0 

  │ │ │   └── assert-plus@1.0.0 

  │ │ └─┬ sshpk@1.13.1 

  │ │   ├── asn1@0.2.3 

  │ │   ├── assert-plus@1.0.0 

  │ │   ├── bcrypt-pbkdf@1.0.1 

  │ │   ├─┬ dashdash@1.14.1 

  │ │   │ └── assert-plus@1.0.0 

  │ │   ├── ecc-jsbn@0.1.1 

  │ │   ├─┬ getpass@0.1.7 

  │ │   │ └── assert-plus@1.0.0 

  │ │   ├── jsbn@0.1.1 

  │ │   └── tweetnacl@0.14.5 

  │ ├── is-typedarray@1.0.0 

  │ ├── isstream@0.1.2 

  │ ├── json-stringify-safe@5.0.1 

  │ ├─┬ mime-types@2.1.17 

  │ │ └── mime-db@1.30.0 

  │ ├── oauth-sign@0.8.2 

  │ ├── performance-now@0.2.0 

  │ ├── qs@6.4.0 

  │ ├── safe-buffer@5.1.1 

  │ ├── stringstream@0.0.5 

  │ ├─┬ tough-cookie@2.3.3 

  │ │ └── punycode@1.4.1 

  │ ├── tunnel-agent@0.6.0 

  │ └── uuid@3.2.1 

  ├─┬ rimraf@2.6.2 

  │ └─┬ glob@7.1.2 

  │   ├── fs.realpath@1.0.0 

  │   ├── inflight@1.0.6 

  │   ├─┬ minimatch@3.0.4 

  │   │ └─┬ brace-expansion@1.1.8 

  │     ├── balanced-match@1.0.0 

  │     └── concat-map@0.0.1 

  │   └── path-is-absolute@1.0.1 

  ├── semver@5.5.0 

  ├─┬ tar@2.2.1 

  │ ├── block-stream@0.0.9 

  │ ├─┬ fstream@1.0.11 

  │ │ └── graceful-fs@4.1.11 

  │ └── inherits@2.0.3 

  └─┬ tar-pack@3.4.1 

    ├─┬ debug@2.6.9 

    │ └── ms@2.0.0 

    ├── fstream-ignore@1.0.5 

    ├─┬ once@1.4.0 

    │ └── wrappy@1.0.2 

    ├─┬ readable-stream@2.3.3 

    │ ├── core-util-is@1.0.2 

    │ ├── isarray@1.0.0 

    │ ├── process-nextick-args@1.0.7 

    │ ├── string_decoder@1.0.3 

    │ └── util-deprecate@1.0.2 

    └── uid-number@0.0.6 

 

 

> snowboy@1.2.0 install /home/pi/utils/smart-mirror/node_modules/snowboy

> node-pre-gyp install --fallback-to-build

 

[snowboy] Success: "/home/pi/utils/smart-mirror/node_modules/snowboy/lib/node/binding/Release/node-v48-linux-arm/snowboy.node" is installed via remote

 

> grpc@1.8.4 install /home/pi/utils/smart-mirror/node_modules/grpc

> node-pre-gyp install --fallback-to-build --library=static_library

 

[grpc] Success: "/home/pi/utils/smart-mirror/node_modules/grpc/src/node/extension_binary/node-v48-linux-arm-glibc/grpc_node.node" is installed via remote

 

> protobufjs@6.8.4 postinstall /home/pi/utils/smart-mirror/node_modules/protobufjs

> node scripts/postinstall

 

 

> electron@1.7.11 postinstall /home/pi/utils/smart-mirror/node_modules/electron

> node install.js

 

 

> smart-mirror@0.0.16 install /home/pi/utils/smart-mirror

> bower install

 

bower not-cached    https://github.com/darkskyapp/skycons.git#*

bower resolve       https://github.com/darkskyapp/skycons.git#*

bower not-cached    https://github.com/PascalPrecht/bower-angular-translate.git#2.11.0

bower resolve       https://github.com/PascalPrecht/bower-angular-translate.git#2.11.0

bower not-cached    https://github.com/jkbr/rrule.git#2.1.0

bower resolve       https://github.com/jkbr/rrule.git#2.1.0

bower not-cached    https://github.com/angular/bower-angular.git#^1.5.0

bower resolve       https://github.com/angular/bower-angular.git#^1.5.0

bower not-cached    https://github.com/angular/bower-angular-i18n.git#1.5.0

bower resolve       https://github.com/angular/bower-angular-i18n.git#1.5.0

bower not-cached    https://github.com/moment/moment.git#2.10.6

bower resolve       https://github.com/moment/moment.git#2.10.6

bower not-cached    https://github.com/angular/bower-angular-animate.git#1.5.0

bower resolve       https://github.com/angular/bower-angular-animate.git#1.5.0

bower not-cached    https://github.com/lgalfaso/angular-dynamic-locale.git#0.1.*

bower resolve       https://github.com/lgalfaso/angular-dynamic-locale.git#0.1.*

bower not-cached    https://github.com/PascalPrecht/bower-angular-translate-loader-static-files.git#2.11.0

bower resolve       https://github.com/PascalPrecht/bower-angular-translate-loader-static-files.git#2.11.0

bower download      https://github.com/darkskyapp/skycons/archive/master.tar.gz

bower download      https://github.com/PascalPrecht/bower-angular-translate/archive/2.11.0.tar.gz

bower download      https://github.com/jkbr/rrule/archive/v2.1.0.tar.gz

bower download      https://github.com/angular/bower-angular-i18n/archive/v1.5.0.tar.gz

bower download      https://github.com/PascalPrecht/bower-angular-translate-loader-static-files/archive/2.11.0.tar.gz

bower download      https://github.com/lgalfaso/angular-dynamic-locale/archive/0.1.32.tar.gz

bower download      https://github.com/moment/moment/archive/2.10.6.tar.gz

bower download      https://github.com/angular/bower-angular/archive/v1.6.8.tar.gz

bower retry         Download of https://github.com/darkskyapp/skycons/archive/master.tar.gz failed with ESOCKETTIMEDOUT, retrying in 1.9s

bower download      https://github.com/angular/bower-angular-animate/archive/v1.5.0.tar.gz

bower extract       angular-translate#2.11.0 archive.tar.gz

bower extract       skycons#* archive.tar.gz

bower extract       angular-dynamic-locale#0.1.* archive.tar.gz

bower extract       angular-animate#1.5.0 archive.tar.gz

bower extract       angular-i18n#1.5.0 archive.tar.gz

bower extract       rrule#2.1.0 archive.tar.gz

bower extract       angular-translate-loader-static-files#2.11.0 archive.tar.gz

bower resolved      https://github.com/darkskyapp/skycons.git#41ff933289

bower extract       angular#^1.5.0 archive.tar.gz

bower extract       moment#2.10.6 archive.tar.gz

bower resolved      https://github.com/PascalPrecht/bower-angular-translate.git#2.11.0

bower resolved      https://github.com/PascalPrecht/bower-angular-translate-loader-static-files.git#2.11.0

bower resolved      https://github.com/angular/bower-angular-animate.git#1.5.0

bower not-cached    https://github.com/angular/bower-angular.git#>=1.2.26 <1.6

bower resolve       https://github.com/angular/bower-angular.git#>=1.2.26 <1.6

bower download      https://github.com/angular/bower-angular/archive/v1.5.11.tar.gz

bower resolved      https://github.com/lgalfaso/angular-dynamic-locale.git#0.1.32

bower resolved      https://github.com/angular/bower-angular.git#1.6.8

bower mismatch      Version declared in the json (2.0.1) is different than the resolved one (2.1.0)

bower resolved      https://github.com/jkbr/rrule.git#2.1.0

bower extract       angular#>=1.2.26 <1.6 archive.tar.gz

bower resolved      https://github.com/angular/bower-angular.git#1.5.11

bower not-cached    https://github.com/angular/bower-angular.git#1.5.0

bower resolve       https://github.com/angular/bower-angular.git#1.5.0

bower download      https://github.com/angular/bower-angular/archive/v1.5.0.tar.gz

bower extract       angular#1.5.0 archive.tar.gz

bower resolved      https://github.com/angular/bower-angular.git#1.5.0

bower resolved      https://github.com/moment/moment.git#2.10.6

bower resolved      https://github.com/angular/bower-angular-i18n.git#1.5.0

bower install       skycons#41ff933289

bower install       angular-translate#2.11.0

bower install       angular-translate-loader-static-files#2.11.0

bower install       angular-animate#1.5.0

bower install       angular-dynamic-locale#0.1.32

bower install       angular#1.5.0

bower install       rrule#2.1.0

bower install       moment#2.10.6

bower install       angular-i18n#1.5.0

bower postinstall   npm run wiredep

bower postinstall   > smart-mirror@0.0.16 wiredep /home/pi/utils/smart-mirror

bower postinstall   > wiredep -s index.html

 

skycons#41ff933289 bower_components/skycons

 

angular-translate#2.11.0 bower_components/angular-translate

└── angular#1.5.0

 

angular-translate-loader-static-files#2.11.0 bower_components/angular-translate-loader-static-files

└── angular-translate#2.11.0

 

angular-animate#1.5.0 bower_components/angular-animate

└── angular#1.5.0

 

angular-dynamic-locale#0.1.32 bower_components/angular-dynamic-locale

 

angular#1.5.0 bower_components/angular

 

rrule#2.1.0 bower_components/rrule

 

moment#2.10.6 bower_components/moment

 

angular-i18n#1.5.0 bower_components/angular-i18n

smart-mirror@0.0.16 /home/pi/utils/smart-mirror

├── angular-i18n@1.6.8 

├── angular-moment@1.2.0 

├── annyang@2.6.0 

├── bower@1.8.2 

├─┬ electron@1.7.11 

│ ├── @types/node@7.0.52 

│ ├─┬ electron-download@3.3.0 

│ │ ├─┬ fs-extra@0.30.0 

│ │ │ ├── graceful-fs@4.1.11 

│ │ │ ├── jsonfile@2.4.0 

│ │ │ └── klaw@1.3.1 

│ │ ├── home-path@1.0.5 

│ │ ├── minimist@1.2.0 

│ │ ├─┬ nugget@2.0.1 

│ │ │ ├── minimist@1.2.0 

│ │ │ ├─┬ pretty-bytes@1.0.4 

│ │ │ │ ├── get-stdin@4.0.1 

│ │ │ │ └─┬ meow@3.7.0 

│ │ │ │   ├─┬ camelcase-keys@2.1.0 

│ │ │ │   │ └── camelcase@2.1.1 

│ │ │ │   ├── decamelize@1.2.0 

│ │ │ │   ├─┬ loud-rejection@1.6.0 

│ │ │ │   │ └─┬ currently-unhandled@0.4.1 

│ │ │ │     └── array-find-index@1.0.2 

│ │ │ │   ├── map-obj@1.0.1 

│ │ │ │   ├── minimist@1.2.0 

│ │ │ │   ├─┬ normalize-package-data@2.4.0 

│ │ │ │   │ ├── hosted-git-info@2.5.0 

│ │ │ │   │ ├─┬ is-builtin-module@1.0.0 

│ │ │ │   │ │ └── builtin-modules@1.1.1 

│ │ │ │   │ └─┬ validate-npm-package-license@3.0.1 

│ │ │ │     ├─┬ spdx-correct@1.0.2 

│ │ │ │     │ └── spdx-license-ids@1.2.2 

│ │ │ │     └── spdx-expression-parse@1.0.4 

│ │ │ │   ├─┬ read-pkg-up@1.0.1 

│ │ │ │   │ ├── find-up@1.1.2 

│ │ │ │   │ └─┬ read-pkg@1.1.0 

│ │ │ │     ├─┬ load-json-file@1.1.0 

│ │ │ │     │ ├─┬ parse-json@2.2.0 

│ │ │ │     │ │ └─┬ error-ex@1.3.1 

│ │ │ │     │ │   └── is-arrayish@0.2.1 

│ │ │ │     │ └─┬ strip-bom@2.0.0 

│ │ │ │       └── is-utf8@0.2.1 

│ │ │ │     └── path-type@1.1.0 

│ │ │ │   ├─┬ redent@1.0.0 

│ │ │ │   │ ├─┬ indent-string@2.1.0 

│ │ │ │   │ │ └─┬ repeating@2.0.1 

│ │ │ │   │ │   └── is-finite@1.0.2 

│ │ │ │   │ └── strip-indent@1.0.1 

│ │ │ │   └── trim-newlines@1.0.0 

│ │ │ ├─┬ progress-stream@1.2.0 

│ │ │ │ ├── speedometer@0.1.4 

│ │ │ │ └─┬ through2@0.2.3 

│ │ │ │   ├─┬ readable-stream@1.1.14 

│ │ │ │   │ └── string_decoder@0.10.31 

│ │ │ │   └─┬ xtend@2.1.2 

│ │ │ │     └── object-keys@0.4.0 

│ │ │ ├── single-line-log@1.1.2 

│ │ │ └── throttleit@0.0.2 

│ │ ├─┬ path-exists@2.1.0 

│ │ │ └─┬ pinkie-promise@2.0.1 

│ │ │   └── pinkie@2.0.4 

│ │ ├─┬ rc@1.2.4 

│ │ │ ├── deep-extend@0.4.2 

│ │ │ ├── ini@1.3.5 

│ │ │ └── minimist@1.2.0 

│ │ ├── semver@5.5.0 

│ │ └─┬ sumchecker@1.3.1 

│ │   └── es6-promise@4.2.4 

│ └─┬ extract-zip@1.6.6 

  ├── mkdirp@0.5.0 

  └─┬ yauzl@2.4.1 

    └─┬ fd-slicer@1.0.1 

      └── pend@1.2.0 

├─┬ electron-json-storage@2.0.0 

│ ├── async@1.5.2 

│ ├── exists-file@1.0.2 

│ ├── lodash@4.17.4 

│ └── rimraf@2.6.2 

├─┬ eslint@3.19.0 

│ ├─┬ babel-code-frame@6.26.0 

│ │ └── js-tokens@3.0.2 

│ ├─┬ chalk@1.1.3 

│ │ ├── ansi-styles@2.2.1 

│ │ ├── escape-string-regexp@1.0.5 

│ │ ├── has-ansi@2.0.0 

│ │ ├── strip-ansi@3.0.1 

│ │ └── supports-color@2.0.0 

│ ├─┬ concat-stream@1.6.0 

│ │ ├── inherits@2.0.3 

│ │ ├─┬ readable-stream@2.3.3 

│ │ │ ├── core-util-is@1.0.2 

│ │ │ ├── isarray@1.0.0 

│ │ │ ├── process-nextick-args@1.0.7 

│ │ │ ├── string_decoder@1.0.3 

│ │ │ └── util-deprecate@1.0.2 

│ │ └── typedarray@0.0.6 

│ ├─┬ debug@2.6.9 

│ │ └── ms@2.0.0 

│ ├── doctrine@2.1.0 

│ ├─┬ escope@3.6.0 

│ │ ├─┬ es6-map@0.1.5 

│ │ │ ├── d@1.0.0 

│ │ │ ├── es5-ext@0.10.38 

│ │ │ ├── es6-iterator@2.0.3 

│ │ │ ├── es6-set@0.1.5 

│ │ │ ├── es6-symbol@3.1.1 

│ │ │ └── event-emitter@0.3.5 

│ │ ├── es6-weak-map@2.0.2 

│ │ └── esrecurse@4.2.0 

│ ├─┬ espree@3.5.2 

│ │ ├── acorn@5.3.0 

│ │ └─┬ acorn-jsx@3.0.1 

│ │   └── acorn@3.3.0 

│ ├── esquery@1.0.0 

│ ├── estraverse@4.2.0 

│ ├── esutils@2.0.2 

│ ├─┬ file-entry-cache@2.0.0 

│ │ └─┬ flat-cache@1.3.0 

│ │   ├── circular-json@0.3.3 

│ │   ├─┬ del@2.2.2 

│ │   │ ├─┬ globby@5.0.0 

│ │   │ │ └── arrify@1.0.1 

│ │   │ ├── is-path-cwd@1.0.0 

│ │   │ ├─┬ is-path-in-cwd@1.0.0 

│ │   │ │ └── is-path-inside@1.0.1 

│ │   │ └── pify@2.3.0 

│ │   └── write@0.2.1 

│ ├─┬ glob@7.1.2 

│ │ ├── fs.realpath@1.0.0 

│ │ ├─┬ inflight@1.0.6 

│ │ │ └── wrappy@1.0.2 

│ │ ├─┬ minimatch@3.0.4 

│ │ │ └─┬ brace-expansion@1.1.8 

│ │ │   ├── balanced-match@1.0.0 

│ │ │   └── concat-map@0.0.1 

│ │ ├── once@1.4.0 

│ │ └── path-is-absolute@1.0.1 

│ ├── globals@9.18.0 

│ ├── ignore@3.3.7 

│ ├── imurmurhash@0.1.4 

│ ├─┬ inquirer@0.12.0 

│ │ ├── ansi-escapes@1.4.0 

│ │ ├── ansi-regex@2.1.1 

│ │ ├─┬ cli-cursor@1.0.2 

│ │ │ └─┬ restore-cursor@1.0.1 

│ │ │   ├── exit-hook@1.1.1 

│ │ │   └── onetime@1.1.0 

│ │ ├── cli-width@2.2.0 

│ │ ├── figures@1.7.0 

│ │ ├─┬ readline2@1.0.1 

│ │ │ ├── code-point-at@1.1.0 

│ │ │ ├─┬ is-fullwidth-code-point@1.0.0 

│ │ │ │ └── number-is-nan@1.0.1 

│ │ │ └── mute-stream@0.0.5 

│ │ ├── run-async@0.1.0 

│ │ ├── rx-lite@3.1.2 

│ │ ├── string-width@1.0.2 

│ │ └── through@2.3.8 

│ ├─┬ is-my-json-valid@2.17.1 

│ │ ├── generate-function@2.0.0 

│ │ ├─┬ generate-object-property@1.2.0 

│ │ │ └── is-property@1.0.2 

│ │ ├── jsonpointer@4.0.1 

│ │ └── xtend@4.0.1 

│ ├── is-resolvable@1.1.0 

│ ├─┬ js-yaml@3.10.0 

│ │ ├─┬ argparse@1.0.9 

│ │ │ └── sprintf-js@1.0.3 

│ │ └── esprima@4.0.0 

│ ├─┬ json-stable-stringify@1.0.1 

│ │ └── jsonify@0.0.0 

│ ├─┬ levn@0.3.0 

│ │ ├── prelude-ls@1.1.2 

│ │ └── type-check@0.3.2 

│ ├─┬ mkdirp@0.5.1 

│ │ └── minimist@0.0.8 

│ ├── natural-compare@1.4.0 

│ ├─┬ optionator@0.8.2 

│ │ ├── deep-is@0.1.3 

│ │ ├── fast-levenshtein@2.0.6 

│ │ └── wordwrap@1.0.0 

│ ├── path-is-inside@1.0.2 

│ ├── pluralize@1.2.1 

│ ├── progress@1.1.8 

│ ├─┬ require-uncached@1.0.3 

│ │ ├─┬ caller-path@0.1.0 

│ │ │ └── callsites@0.2.0 

│ │ └── resolve-from@1.0.1 

│ ├─┬ shelljs@0.7.8 

│ │ ├── interpret@1.1.0 

│ │ └─┬ rechoir@0.6.2 

│ │   └─┬ resolve@1.5.0 

│ │     └── path-parse@1.0.5 

│ ├── strip-bom@3.0.0 

│ ├── strip-json-comments@2.0.1 

│ ├─┬ table@3.8.3 

│ │ ├─┬ ajv@4.11.8 

│ │ │ └── co@4.6.0 

│ │ ├── ajv-keywords@1.5.1 

│ │ ├── slice-ansi@0.0.4 

│ │ └─┬ string-width@2.1.1 

│ │   ├── is-fullwidth-code-point@2.0.0 

│ │   └─┬ strip-ansi@4.0.0 

│ │     └── ansi-regex@3.0.0 

│ ├── text-table@0.2.0 

│ └─┬ user-home@2.0.0 

  └── os-homedir@1.0.2 

├─┬ express@4.16.2 

│ ├─┬ accepts@1.3.4 

│ │ ├─┬ mime-types@2.1.17 

│ │ │ └── mime-db@1.30.0 

│ │ └── negotiator@0.6.1 

│ ├── array-flatten@1.1.1 

│ ├─┬ body-parser@1.18.2 

│ │ ├── bytes@3.0.0 

│ │ ├─┬ http-errors@1.6.2 

│ │ │ ├── depd@1.1.1 

│ │ │ └── setprototypeof@1.0.3 

│ │ ├── iconv-lite@0.4.19 

│ │ └── raw-body@2.3.2 

│ ├── content-disposition@0.5.2 

│ ├── content-type@1.0.4 

│ ├── cookie@0.3.1 

│ ├── cookie-signature@1.0.6 

│ ├── depd@1.1.2 

│ ├── encodeurl@1.0.2 

│ ├── escape-html@1.0.3 

│ ├── etag@1.8.1 

│ ├─┬ finalhandler@1.1.0 

│ │ └── unpipe@1.0.0 

│ ├── fresh@0.5.2 

│ ├── merge-descriptors@1.0.1 

│ ├── methods@1.1.2 

│ ├─┬ on-finished@2.3.0 

│ │ └── ee-first@1.1.1 

│ ├── parseurl@1.3.2 

│ ├── path-to-regexp@0.1.7 

│ ├─┬ proxy-addr@2.0.2 

│ │ ├── forwarded@0.1.2 

│ │ └── ipaddr.js@1.5.2 

│ ├── qs@6.5.1 

│ ├── range-parser@1.2.0 

│ ├── safe-buffer@5.1.1 

│ ├─┬ send@0.16.1 

│ │ ├── destroy@1.0.4 

│ │ └── mime@1.4.1 

│ ├── serve-static@1.13.1 

│ ├── setprototypeof@1.1.0 

│ ├── statuses@1.3.1 

│ ├─┬ type-is@1.6.15 

│ │ └── media-typer@0.3.0 

│ ├── utils-merge@1.0.1 

│ └── vary@1.1.2 

├─┬ fitbit-oauth2@0.0.1 

│ ├─┬ request@2.83.0 

│ │ ├── aws-sign2@0.7.0 

│ │ ├── aws4@1.6.0 

│ │ ├── caseless@0.12.0 

│ │ ├─┬ combined-stream@1.0.5 

│ │ │ └── delayed-stream@1.0.0 

│ │ ├── extend@3.0.1 

│ │ ├── forever-agent@0.6.1 

│ │ ├─┬ form-data@2.3.1 

│ │ │ └── asynckit@0.4.0 

│ │ ├─┬ har-validator@5.0.3 

│ │ │ ├─┬ ajv@5.5.2 

│ │ │ │ ├── fast-deep-equal@1.0.0 

│ │ │ │ ├── fast-json-stable-stringify@2.0.0 

│ │ │ │ └── json-schema-traverse@0.3.1 

│ │ │ └── har-schema@2.0.0 

│ │ ├─┬ hawk@6.0.2 

│ │ │ ├── boom@4.3.1 

│ │ │ ├─┬ cryptiles@3.1.2 

│ │ │ │ └── boom@5.2.0 

│ │ │ ├── hoek@4.2.0 

│ │ │ └── sntp@2.1.0 

│ │ ├─┬ http-signature@1.2.0 

│ │ │ ├── assert-plus@1.0.0 

│ │ │ ├─┬ jsprim@1.4.1 

│ │ │ │ ├── extsprintf@1.3.0 

│ │ │ │ ├── json-schema@0.2.3 

│ │ │ │ └── verror@1.10.0 

│ │ │ └─┬ sshpk@1.13.1 

│ │ │   ├── asn1@0.2.3 

│ │ │   ├── bcrypt-pbkdf@1.0.1 

│ │ │   ├── dashdash@1.14.1 

│ │ │   ├── ecc-jsbn@0.1.1 

│ │ │   ├── getpass@0.1.7 

│ │ │   ├── jsbn@0.1.1 

│ │ │   └── tweetnacl@0.14.5 

│ │ ├── is-typedarray@1.0.0 

│ │ ├── isstream@0.1.2 

│ │ ├── json-stringify-safe@5.0.1 

│ │ ├── oauth-sign@0.8.2 

│ │ ├── performance-now@2.1.0 

│ │ ├── stringstream@0.0.5 

│ │ ├─┬ tough-cookie@2.3.3 

│ │ │ └── punycode@1.4.1 

│ │ ├── tunnel-agent@0.6.0 

│ │ └── uuid@3.2.1 

│ └─┬ simple-oauth2@0.2.1 

  ├── date-utils@1.2.21 

  ├── querystring@0.1.0 

  └─┬ request@2.12.0 

    ├─┬ form-data@0.0.3 

    │ ├── async@0.1.9 

    │ └─┬ combined-stream@0.0.3 

      └── delayed-stream@0.0.5 

    └── mime@1.2.7 

├── humanize-duration@3.12.1 

├── hyperion-client@1.0.3 

├── moment@2.20.1 

├─┬ socket.io@1.7.4 

│ ├─┬ debug@2.3.3 

│ │ └── ms@0.7.2 

│ ├─┬ engine.io@1.8.5 

│ │ ├── accepts@1.3.3 

│ │ ├── base64id@1.0.0 

│ │ ├─┬ debug@2.3.3 

│ │ │ └── ms@0.7.2 

│ │ ├─┬ engine.io-parser@1.3.2 

│ │ │ ├── after@0.8.2 

│ │ │ ├── arraybuffer.slice@0.0.6 

│ │ │ ├── base64-arraybuffer@0.1.5 

│ │ │ ├── blob@0.0.4 

│ │ │ └── wtf-8@1.0.0 

│ │ └─┬ ws@1.1.5 

│ │   ├── options@0.0.6 

│ │   └── ultron@1.0.2 

│ ├─┬ has-binary@0.1.7 

│ │ └── isarray@0.0.1 

│ ├── object-assign@4.1.0 

│ ├─┬ socket.io-adapter@0.5.0 

│ │ └─┬ debug@2.3.3 

│ │   └── ms@0.7.2 

│ ├─┬ socket.io-client@1.7.4 

│ │ ├── backo2@1.0.2 

│ │ ├── component-bind@1.0.0 

│ │ ├── component-emitter@1.2.1 

│ │ ├─┬ debug@2.3.3 

│ │ │ └── ms@0.7.2 

│ │ ├─┬ engine.io-client@1.8.5 

│ │ │ ├── component-emitter@1.2.1 

│ │ │ ├── component-inherit@0.0.3 

│ │ │ ├─┬ debug@2.3.3 

│ │ │ │ └── ms@0.7.2 

│ │ │ ├── has-cors@1.1.0 

│ │ │ ├── parsejson@0.0.3 

│ │ │ ├── parseqs@0.0.5 

│ │ │ ├── xmlhttprequest-ssl@1.5.3 

│ │ │ └── yeast@0.1.2 

│ │ ├── indexof@0.0.1 

│ │ ├── object-component@0.0.3 

│ │ ├─┬ parseuri@0.0.5 

│ │ │ └─┬ better-assert@1.0.2 

│ │ │   └── callsite@1.0.0 

│ │ └── to-array@0.1.4 

│ └─┬ socket.io-parser@2.3.1 

  ├── component-emitter@1.1.2 

  ├─┬ debug@2.2.0 

  │ └── ms@0.7.1 

  └── json3@3.3.2 

├─┬ sonus@0.1.9 

│ ├─┬ @google-cloud/speech@0.10.3 

│ │ ├─┬ google-gax@0.13.5 

│ │ │ ├─┬ globby@6.1.0 

│ │ │ │ └─┬ array-union@1.0.2 

│ │ │ │   └── array-uniq@1.0.3 

│ │ │ ├─┬ google-auto-auth@0.5.4 

│ │ │ │ ├── async@2.6.0 

│ │ │ │ ├─┬ google-auth-library@0.10.0 

│ │ │ │ │ ├─┬ gtoken@1.2.3 

│ │ │ │ │ │ └─┬ google-p12-pem@0.1.2 

│ │ │ │ │ │   └── node-forge@0.7.1 

│ │ │ │ │ ├─┬ jws@3.1.4 

│ │ │ │ │ │ ├── base64url@2.0.0 

│ │ │ │ │ │ └─┬ jwa@1.1.5 

│ │ │ │ │ │   ├── buffer-equal-constant-time@1.0.1 

│ │ │ │ │ │   └── ecdsa-sig-formatter@1.0.9 

│ │ │ │ │ └── lodash.noop@3.0.1 

│ │ │ │ └── object-assign@3.0.0 

│ │ │ ├─┬ grpc@1.8.4 

│ │ │ │ ├── arguejs@0.2.3 

│ │ │ │ ├── nan@2.8.0 

│ │ │ │ ├─┬ node-pre-gyp@0.6.39 

│ │ │ │ │ ├── detect-libc@1.0.3 

│ │ │ │ │ ├─┬ hawk@3.1.3 

│ │ │ │ │ │ ├── boom@2.10.1 

│ │ │ │ │ │ ├── cryptiles@2.0.5 

│ │ │ │ │ │ ├── hoek@2.16.3 

│ │ │ │ │ │ └── sntp@1.0.9 

│ │ │ │ │ ├─┬ mkdirp@0.5.1 

│ │ │ │ │ │ └── minimist@0.0.8 

│ │ │ │ │ ├─┬ nopt@4.0.1 

│ │ │ │ │ │ ├── abbrev@1.1.1 

│ │ │ │ │ │ └─┬ osenv@0.1.4 

│ │ │ │ │ │   ├── os-homedir@1.0.2 

│ │ │ │ │ │   └── os-tmpdir@1.0.2 

│ │ │ │ │ ├─┬ npmlog@4.1.2 

│ │ │ │ │ │ ├─┬ are-we-there-yet@1.1.4 

│ │ │ │ │ │ │ └── delegates@1.0.0 

│ │ │ │ │ │ ├── console-control-strings@1.1.0 

│ │ │ │ │ │ ├─┬ gauge@2.7.4 

│ │ │ │ │ │ │ ├── aproba@1.2.0 

│ │ │ │ │ │ │ ├── has-unicode@2.0.1 

│ │ │ │ │ │ │ ├── object-assign@4.1.1 

│ │ │ │ │ │ │ ├── signal-exit@3.0.2 

│ │ │ │ │ │ │ ├─┬ string-width@1.0.2 

│ │ │ │ │ │ │ │ ├── code-point-at@1.1.0 

│ │ │ │ │ │ │ │ └─┬ is-fullwidth-code-point@1.0.0 

│ │ │ │ │ │ │ │   └── number-is-nan@1.0.1 

│ │ │ │ │ │ │ ├─┬ strip-ansi@3.0.1 

│ │ │ │ │ │ │ │ └── ansi-regex@2.1.1 

│ │ │ │ │ │ │ └── wide-align@1.1.2 

│ │ │ │ │ │ └── set-blocking@2.0.0 

│ │ │ │ │ ├─┬ rc@1.2.3 

│ │ │ │ │ │ ├── deep-extend@0.4.2 

│ │ │ │ │ │ ├── ini@1.3.5 

│ │ │ │ │ │ ├── minimist@1.2.0 

│ │ │ │ │ │ └── strip-json-comments@2.0.1 

│ │ │ │ │ ├─┬ request@2.81.0 

│ │ │ │ │ │ ├── aws-sign2@0.6.0 

│ │ │ │ │ │ ├── aws4@1.6.0 

│ │ │ │ │ │ ├── caseless@0.12.0 

│ │ │ │ │ │ ├─┬ combined-stream@1.0.5 

│ │ │ │ │ │ │ └── delayed-stream@1.0.0 

│ │ │ │ │ │ ├── extend@3.0.1 

│ │ │ │ │ │ ├── forever-agent@0.6.1 

│ │ │ │ │ │ ├─┬ form-data@2.1.4 

│ │ │ │ │ │ │ └── asynckit@0.4.0 

│ │ │ │ │ │ ├─┬ har-validator@4.2.1 

│ │ │ │ │ │ │ ├─┬ ajv@4.11.8 

│ │ │ │ │ │ │ │ ├── co@4.6.0 

│ │ │ │ │ │ │ │ └─┬ json-stable-stringify@1.0.1 

│ │ │ │ │ │ │ │   └── jsonify@0.0.0 

│ │ │ │ │ │ │ └── har-schema@1.0.5 

│ │ │ │ │ │ ├─┬ http-signature@1.1.1 

│ │ │ │ │ │ │ ├── assert-plus@0.2.0 

│ │ │ │ │ │ │ ├─┬ jsprim@1.4.1 

│ │ │ │ │ │ │ │ ├── assert-plus@1.0.0 

│ │ │ │ │ │ │ │ ├── extsprintf@1.3.0 

│ │ │ │ │ │ │ │ ├── json-schema@0.2.3 

│ │ │ │ │ │ │ │ └─┬ verror@1.10.0 

│ │ │ │ │ │ │ │   └── assert-plus@1.0.0 

│ │ │ │ │ │ │ └─┬ sshpk@1.13.1 

│ │ │ │ │ │ │   ├── asn1@0.2.3 

│ │ │ │ │ │ │   ├── assert-plus@1.0.0 

│ │ │ │ │ │ │   ├── bcrypt-pbkdf@1.0.1 

│ │ │ │ │ │ │   ├─┬ dashdash@1.14.1 

│ │ │ │ │ │ │   │ └── assert-plus@1.0.0 

│ │ │ │ │ │ │   ├── ecc-jsbn@0.1.1 

│ │ │ │ │ │ │   ├─┬ getpass@0.1.7 

│ │ │ │ │ │ │   │ └── assert-plus@1.0.0 

│ │ │ │ │ │ │   ├── jsbn@0.1.1 

│ │ │ │ │ │ │   └── tweetnacl@0.14.5 

│ │ │ │ │ │ ├── is-typedarray@1.0.0 

│ │ │ │ │ │ ├── isstream@0.1.2 

│ │ │ │ │ │ ├── json-stringify-safe@5.0.1 

│ │ │ │ │ │ ├─┬ mime-types@2.1.17 

│ │ │ │ │ │ │ └── mime-db@1.30.0 

│ │ │ │ │ │ ├── oauth-sign@0.8.2 

│ │ │ │ │ │ ├── performance-now@0.2.0 

│ │ │ │ │ │ ├── qs@6.4.0 

│ │ │ │ │ │ ├── safe-buffer@5.1.1 

│ │ │ │ │ │ ├── stringstream@0.0.5 

│ │ │ │ │ │ ├─┬ tough-cookie@2.3.3 

│ │ │ │ │ │ │ └── punycode@1.4.1 

│ │ │ │ │ │ ├── tunnel-agent@0.6.0 

│ │ │ │ │ │ └── uuid@3.1.0 

│ │ │ │ │ ├── rimraf@2.6.2 

│ │ │ │ │ ├── semver@5.4.1 

│ │ │ │ │ ├─┬ tar@2.2.1 

│ │ │ │ │ │ ├── block-stream@0.0.9 

│ │ │ │ │ │ ├─┬ fstream@1.0.11 

│ │ │ │ │ │ │ └── graceful-fs@4.1.11 

│ │ │ │ │ │ └── inherits@2.0.3 

│ │ │ │ │ └─┬ tar-pack@3.4.1 

│ │ │ │ │   ├─┬ debug@2.6.8 

│ │ │ │ │   │ └── ms@2.0.0 

│ │ │ │ │   ├── fstream-ignore@1.0.5 

│ │ │ │ │   ├─┬ once@1.4.0 

│ │ │ │ │   │ └── wrappy@1.0.2 

│ │ │ │ │   ├─┬ readable-stream@2.3.3 

│ │ │ │ │   │ ├── core-util-is@1.0.2 

│ │ │ │ │   │ ├── isarray@1.0.0 

│ │ │ │ │   │ ├── process-nextick-args@1.0.7 

│ │ │ │ │   │ ├── string_decoder@1.0.3 

│ │ │ │ │   │ └── util-deprecate@1.0.2 

│ │ │ │ │   └── uid-number@0.0.6 

│ │ │ │ └─┬ protobufjs@5.0.2 

│ │ │ │   ├─┬ ascli@1.0.1 

│ │ │ │   │ ├── colour@0.7.1 

│ │ │ │   │ └── optjs@3.2.2 

│ │ │ │   ├── bytebuffer@5.0.1 

│ │ │ │   ├─┬ glob@7.1.2 

│ │ │ │   │ ├── fs.realpath@1.0.0 

│ │ │ │   │ ├── inflight@1.0.6 

│ │ │ │   │ ├─┬ minimatch@3.0.4 

│ │ │ │   │ │ └─┬ brace-expansion@1.1.8 

│ │ │ │   │ │   ├── balanced-match@1.0.0 

│ │ │ │   │ │   └── concat-map@0.0.1 

│ │ │ │   │ └── path-is-absolute@1.0.1 

│ │ │ │   └─┬ yargs@3.32.0 

│ │ │ │     ├─┬ cliui@3.2.0 

│ │ │ │     │ └── wrap-ansi@2.1.0 

│ │ │ │     ├─┬ os-locale@1.4.0 

│ │ │ │     │ └─┬ lcid@1.0.0 

│ │ │ │       └── invert-kv@1.0.0 

│ │ │ │     ├── window-size@0.1.4 

│ │ │ │     └── y18n@3.2.1 

│ │ │ ├── is-stream-ended@0.1.3 

│ │ │ └─┬ protobufjs@6.8.4 

│ │ │   ├── @protobufjs/aspromise@1.1.2 

│ │ │   ├── @protobufjs/base64@1.1.2 

│ │ │   ├── @protobufjs/codegen@2.0.4 

│ │ │   ├── @protobufjs/eventemitter@1.1.0 

│ │ │   ├── @protobufjs/fetch@1.1.0 

│ │ │   ├── @protobufjs/float@1.0.2 

│ │ │   ├── @protobufjs/inquire@1.1.0 

│ │ │   ├── @protobufjs/path@1.1.2 

│ │ │   ├── @protobufjs/pool@1.1.0 

│ │ │   ├── @protobufjs/utf8@1.1.0 

│ │ │   ├── @types/long@3.0.32 

│ │ │   ├── @types/node@8.5.9 

│ │ │   └── long@3.2.0 

│ │ ├── google-proto-files@0.13.1 

│ │ ├─┬ pumpify@1.4.0 

│ │ │ ├─┬ duplexify@3.5.3 

│ │ │ │ ├── end-of-stream@1.4.1 

│ │ │ │ └── stream-shift@1.0.0 

│ │ │ └── pump@2.0.1 

│ │ ├─┬ stream-events@1.0.2 

│ │ │ └── stubs@3.0.0 

│ │ └── through2@2.0.3 

│ ├── node-record-lpcm16@0.3.0 

│ └─┬ snowboy@1.2.0 

  └─┬ node-pre-gyp@0.6.39 

    ├── detect-libc@1.0.3 

    ├─┬ hawk@3.1.3 

    │ ├── boom@2.10.1 

    │ ├── cryptiles@2.0.5 

    │ ├── hoek@2.16.3 

    │ └── sntp@1.0.9 

    ├─┬ nopt@4.0.1 

    │ └── abbrev@1.1.1 

    ├─┬ npmlog@4.1.2 

    │ ├─┬ are-we-there-yet@1.1.4 

    │ │ └── delegates@1.0.0 

    │ ├── console-control-strings@1.1.0 

    │ ├─┬ gauge@2.7.4 

    │ │ ├── aproba@1.2.0 

    │ │ ├── has-unicode@2.0.1 

    │ │ ├── signal-exit@3.0.2 

    │ │ └── wide-align@1.1.2 

    │ └── set-blocking@2.0.0 

    ├─┬ request@2.81.0 

    │ ├── aws-sign2@0.6.0 

    │ ├── form-data@2.1.4 

    │ ├─┬ har-validator@4.2.1 

    │ │ ├── ajv@4.11.8 

    │ │ └── har-schema@1.0.5 

    │ ├─┬ http-signature@1.1.1 

    │ │ └── assert-plus@0.2.0 

    │ ├── performance-now@0.2.0 

    │ └── qs@6.4.0 

    ├─┬ tar@2.2.1 

    │ ├── block-stream@0.0.9 

    │ └── fstream@1.0.11 

    └─┬ tar-pack@3.4.1 

      ├── fstream-ignore@1.0.5 

      └── uid-number@0.0.6 

└─┬ wiredep-cli@0.1.0 

  ├── minimist@1.2.0 

  └─┬ wiredep@4.0.0 

    ├─┬ bower-config@1.4.1 

    │ ├── mout@1.1.0 

    │ ├─┬ optimist@0.6.1 

    │ │ └── wordwrap@0.0.3 

    │ ├─┬ osenv@0.1.4 

    │ │ └── os-tmpdir@1.0.2 

    │ └── untildify@2.1.0 

    └── propprop@0.3.1 

 

pi@rasp2-smart-mirror:~/utils/smart-mirror $ 

드디어 설치가 끝났네요

 

다시 npm start

pi@rasp2-smart-mirror:~/utils/smart-mirror $ npm start

 

> smart-mirror@0.0.16 start /home/pi/utils/smart-mirror

> electron main.js 

 

 

npm ERR! Linux 4.9.59-v7+

npm ERR! argv "/usr/local/node-v6.10.1-linux-armv7l/bin/node" "/usr/local/bin/npm" "start"

npm ERR! node v6.10.1

npm ERR! npm  v3.10.10

npm ERR! code ELIFECYCLE

npm ERR! smart-mirror@0.0.16 start: `electron main.js `

npm ERR! Exit status 1

npm ERR! 

npm ERR! Failed at the smart-mirror@0.0.16 start script 'electron main.js '.

npm ERR! Make sure you have the latest version of node.js and npm installed.

npm ERR! If you do, this is most likely a problem with the smart-mirror package,

npm ERR! not with npm itself.

npm ERR! Tell the author that this fails on your system:

npm ERR!     electron main.js 

npm ERR! You can get information on how to open an issue for this project with:

npm ERR!     npm bugs smart-mirror

npm ERR! Or if that isn't available, you can get their info via:

npm ERR!     npm owner ls smart-mirror

npm ERR! There is likely additional logging output above.

 

npm ERR! Please include the following file with any support request:

npm ERR!     /home/pi/utils/smart-mirror/npm-debug.log

pi@rasp2-smart-mirror:~/utils/smart-mirror $ 

근데 다시 에러가...?

 

아무래도 터미널 원격에서 실행해서 그런것 같은 느낌이 네요

 

pi 에 직접 해봐야겠네요

 

결론은 node는 설치된 버전이랑 상관없이 npm 만 잡아주면되고

실행은 GUI모드에서 실행해줘야 합니다

특히... ssh 를 원격에서 실행하면 안되네요

 

VNC Viewer를 사용해서 원격으로 실행하니 잘되네요


 

log를 보니 8080포트로 웹서비스가 되는것 같으니 브라우져로 접속을 해봅니다


오... 원격 메뉴를 지원해주네요

 

일단 설치는 끝났고

다음은 한글이랑 다른 설정을 잡아봐야겠네요

 

요건 맥에서 소스 수정하려고 잠깐

webstorm으로 실행해본 캡쳐

UI랑 변경하려면 직접 수정해야되니까요

 

다만...fork를 한것까진 좋은데...git을 안써봐서

어떻게 쓰는지 부터 공부해야 하는 단점이...

 


반응형

관련글 더보기

댓글 영역