제가 했던 일을 그저 정리하려고 이렇게 글을 씁니다.

 

문의사항은 환영이지만... 그에 대한 답은... 제몫이죠.ㅜ 좀 답장이 느린편이랍니다.ㅜ

 

우선 목적은

 

github 프로젝트중

 

nightscout/cgm-remote-monitor를

 

제 NAS에서 실행하고자 함입니다.

 

요 녀석이 npm을 활용해서 설치되는지라..ㅜ

 

저도 잘 node js가 뭔지는 모르면서 무작정 설치하고 있네요 ^^;;;

 

이곳 저곳 뒤져보니 node js를 활용하는 분들이 많으셔서 혹시 도움이 되실까 하고 적어봅니다~

 

제가 NAS에 설치할 node js 버전은 낮습니다. 이유는 armv5te라는 arm 코어는 node js를 설치하기 위한 v8이라는 녀석이 3.12? 버전부터인가 지원하지 않는다고 하네요.ㅜ

 

뭐 가타부타 서론이 길군요...;;

 

우선 ssh모드 활성화 후에 작업하는 

 

1. ipkg인스톨 부터 시작하겠습니다.

 

ipkg 인스톨 같은경우는

 

Iptime 홈페이지 NAS관련 질문에서 SSH활성화에 자세히 설명되어 있습니다.

 

Iptime 홈페이지 -> 고객지원 -> 제품 분류별 -> NAS 및 저장장치

 

23번 글 "NAS에서 SSH모드 활용하기"

 

(1) ipkg 명령어 설치.


- 다음 명령어를 수행하여 NAS에 ipkg 명령어를 설치 할 수 있습니다. (터미널에 따라, 명령어 복사/붙여넣기 하여 실행 가능)
test -e /opt && mv /opt /opt.bak
mkdir -p /big-disk/opt && ln -sf /big-disk/opt /opt
wget http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/ipkg-opt_0.99.163-10_arm.ipk
tar -xOvzf ipkg-opt_0.99.163-10_arm.ipk ./data.tar.gz | tar -C / -xzvf -
mkdir -p /opt/etc/ipkg

 

간단히 위에있는거 복사 붙여넣기 해서 실행하면 끝.

 

여기서 원래있던 아래 두줄은 아래와 같이 바꾸었다.

 

원래는 이걸 적어야 하는데


echo "src cross http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable" > /opt/etc/ipkg/armel-feed.conf
echo "src native http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/native/unstable" >> /opt/etc/ipkg/armel-feed.conf

 

아래와 같이 수정했다.

 

echo "src cross http://ipkg.nslu2-linux.org/optware-ng/buildroot-armv5eabi-ng" > /opt/etc/ipkg/armel-feed.conf

 

이유는 하나 버전이 너무 낮고 지원하는 툴이 없다.. 우선 gcc버전이 4.2.3버전은... 뭘 할래야 할수가 없다.ㅜ

wget -O - http://ipkg.nslu2-linux.org/optware-ng/bootstrap/buildroot-armv5eabi-ng-legacy-bootstrap.sh | sh

위의 한줄로 놀랍게도 ipkg설치 완료 ^^!


vi /opt/etc/ipkg/ipkg.conf

에서 

dest /opt/ / 

dest /opt/

로 바꾸어줌.


이후에

 

ipkg update

 

실행 하면 ipkg 설치는 완료이다.


그다음 필수 적으로 해줘야 하는 일은.


ipkg install busybox


그리고 


/opt/bin/update-alternatives: 185: head: not found

를 해결하기 위해서


ln -s /opt/bin/busybox /opt/sbin/head

ln -s /opt/bin/busybox /opt/sbin/sort

ln -s /opt/bin/busybox /opt/sbin/tail


ipkg upgrade


해주면 끝 ^^!


(2) node js 다운 받을 환경 설정.

 

일련의 이과정은... 아래 여기에 잘 소개되어 있다.. 비슷하지만 다른... synology..ㅜㅜ

위와 같은 자질구질한 현상은 하나도 소개가 없지만.ㅜㅜ

 

http://www.gridshore.nl/2011/04/04/installing-node-js-on-my-new-synology/

 

이 글을 읽기 불편하다면 바로 가셔서 따라하시면 됩니다~ ^^;

 

마무리로 좀더 설치해야 할것들이 있다.

 

ipkg install gcc

 

gcc부분이 시간을 좀 잡아먹습니다~ (오류 아님)

 

Package libc-dev wants to install file /opt/include/iconv.h
        But that file is already provided by package libiconv

마지막에 이렇게 뜨길래...


ipkg remove libc-dev

ipkg install gcc


설치 완료.


ipkg install git libidn openssl wget-ssl openssl-dev python make nano


(3) node js 다운받기

 

그럼 node 를 git을 통해 받아서 컴파일 후에 설치 하게 됩니다.

여기서 폴더를 저는

/install 이라는 폴더를 만들어서 사용했습니다.

원하시는 폴더를 만드셔도 되고

root나 home과 같은곳에 하셔도 됩니다. 다만... ssh를 풀고 다시 활성화 시킬때 기존의 폴더들이 초기화 되기에..ㅜ

잘 선택하셔서 하십시오 ^^;

 

cd /install

git clone https://github.com/joyent/node.git

 

/install # git clone https://github.com/joyent/node.git

Cloning into 'node'...

remote: Counting objects: 145792, done.

remote: Compressing objects: 100% (22/22), done.

remote: Total 145792 (delta 18), reused 4 (delta 4), pack-reused 145766

Receiving objects: 100% (145792/145792), 139.96 MiB | 1.63 MiB/s, done.

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

Checking connectivity... done.

/install #

ㅊㅇ 

하면 적잖이 충격이다.

140MB에다가 시간도 꽤걸렸는데 결과물이

 

README.md

달랑 하나다.ㅜ

 

겨우 뒤져서 찾아낸게 바로 git checkout으로 버전 관리된다는것.ㅜ

 

/install/node # git checkout v0.10.40

Note: checking out 'v0.10.40'.


You are in 'detached HEAD' state. You can look around, make experimental

changes and commit them, and you can discard any commits you make in this

state without impacting any branches by performing another checkout.


If you want to create a new branch to retain commits you create, you may

do so (now or later) by using -b with the checkout command again. Example:


  git checkout -b <new-branch-name>


HEAD is now at 0439a28... 2015.07.09, Version 0.10.40 (Maintenance)


/install/node # ls

configure        lib              LICENSE          doc

AUTHORS          node.gyp         README.md        ChangeLog

common.gypi      CONTRIBUTING.md  deps             Makefile

test             vcbuild.bat      tools

benchmark        src              BSDmakefile

/install/node #


/install/node # ./configure
ash: ./configure: not found

이럴수가..안되는건가..하고.. 실망하지 마시고..ㅋ

 

nano ./configure

 

첫줄의

#!/usr/bin/env python
=> #!/opt/bin/python

 

이렇게 바꿔주면 끝~

 

간단히 테스트 식으로

 

./configure 해보면

실행 되는걸 확인할수 있습니다.

 

물론 바로 make는 안되죠 .ㅜ

 

./configure --help옵션으로 선택하실부분은 선택하세요~

 

저는... 아직 이부분을 설명할정도는 못되네요.ㅜ

 

성공한 케이스로 알려드릴게요

 

./configure --without-snapshot --prefix=/opt/nodejs

 

/install/node # ./configure --without-snapshot --prefix=/opt/nodejs
creating  ./icu_config.gypi
{ 'target_defaults': { 'cflags': [],
                       'default_configuration': 'Release',
                       'defines': [],
                       'include_dirs': [],
                       'libraries': []},
  'variables': { 'arm_float_abi': 'default',
                 'arm_fpu': 'vfpv3',
                 'arm_neon': 0,
                 'arm_thumb': 0,
                 'arm_version': 'default',
                 'clang': 0,
                 'gcc_version': 53,
                 'host_arch': 'arm',
                 'icu_small': 'false',
                 'node_install_npm': 'true',
                 'node_prefix': '/opt/nodejs',
                 'node_shared_cares': 'false',
                 'node_shared_http_parser': 'false',
                 'node_shared_libuv': 'false',
                 'node_shared_openssl': 'false',
                 'node_shared_v8': 'false',
                 'node_shared_zlib': 'false',
                 'node_tag': '',
                 'node_use_dtrace': 'false',
                 'node_use_etw': 'false',
                 'node_use_mdb': 'false',
                 'node_use_openssl': 'true',
                 'node_use_perfctr': 'false',
                 'openssl_no_asm': 0,
                 'python': '/opt/bin/python',
                 'target_arch': 'arm',
                 'uv_library': 'static_library',
                 'uv_parent_path': '/deps/uv/',
                 'uv_use_dtrace': 'false',
                 'v8_enable_gdbjit': 0,
                 'v8_enable_i18n_support': 0,
                 'v8_no_strict_aliasing': 1,
                 'v8_optimized_debug': 0,
                 'v8_random_seed': 0,
                 'v8_use_snapshot': 'false',
                 'want_separate_host_toolset': 0}}
creating  ./config.gypi
creating  ./config.mk

--prefix는 꼭 해주셔야 합니다. NAS폴더 사용 접근권한이 제한적이라

안해주면 나중에 후회하십니다.ㅜㅜ(경험자임..ㅜㅜ)

 

이렇게 까지 하고

 

ipkg install make

 

로 make도 설치~후에

 

make

 

여기서 인내의 싸움이..ㅜ

전 이게 4시간에서6시간 정도 걸린것 같네요 정확히 재보지 않아서요.ㅜ

 

그리고서는 


make install


하면 


/install/node # cd /opt/node/

/opt/node # ls

share    lib      bin      include

/opt/node #

/opt/node #


설치 완료

/opt/node/bin # ./node -v
v0.10.40
/opt/node/bin # ./npm -v
1.4.28
/opt/node/bin # 

PATH 환경설정 등록

PATH=$PATH:/opt/node/bin

그럼 완료!!! 끝.


'Iptime NAS IIe' 카테고리의 다른 글

cgm-remote-monitor 설치하기.  (0) 2017.03.25
[IPTIME NASIIe] mongo-php-driver  (0) 2016.11.17

+ Recent posts