Node.js on Chromebook (Toshiba Chromebook 2) without removing rootfs verification or crouton
DISCLAIMER:
나의 Chromebook 모델명은 Toshiba CB35-B3340 이며, 다른 Chromebook 에서는 잘 모르겠다.
엊그제 Chromebook을 사서 가지고 놀고 있다. 굉장히 만족한다.
- 가격이 싸고 (환율이 비싸지만 않았으면 정말 좋았을텐데...)
- 가볍고
- 배터리도 오래가고
- 키보드도 좋고 (타이핑 키감이 개인적으로 기계식 키보드보다 나은듯)
- 터치패드도 직관적이고 (Macbook 과 거의 비슷한 것 같음...)
- 굉장히 레어하기 때문에 ㅋㅋㅋ (카페에서 사과북은 많이 보지만 크롬북은 못볼겁니다ㅋㅋㅋ 아마 본다면 저일수도...)
그래서 이것저것 하다가, Node를 Chromebook에 올리려고 하였으나 이상하리만큼 잘 안되더라. 분명 CPU는 Intel Celeron이고 Architecture도 x86_64이니까 Linux 64bit Node는 될 줄 알았는데 자꾸 잘 안되더라. 뭔가 root file system이 read only로 mount 해서 그렇다고, rootfs의 verification을 제거하면 된다는 이야기가 있었으나 거기까지 건드리기는 싫었다. 잘못되면 어떡해 ㅋㅋㅋ 그래서 아예 소스부터 컴파일을 시도했다.
2. Install Chromebrew
감사하게도 skycocker 라는 멋진 분이 제공하는 Chromebrew (이하 crew)를 사용하면 몇 몇 패키지들을 Chromebook 에서 따로 Linux 를 설치하지 않고도 Chromebook의 Linux에서 사용할 수 있다. 그냥 Crosh의 Shell에 들어가서 다음을 입력하면 설치가 끝난다.
감사하게도 skycocker 라는 멋진 분이 제공하는 Chromebrew (이하 crew)를 사용하면 몇 몇 패키지들을 Chromebook 에서 따로 Linux 를 설치하지 않고도 Chromebook의 Linux에서 사용할 수 있다. 그냥 Crosh의 Shell에 들어가서 다음을 입력하면 설치가 끝난다.
$ wget -q -O - https://raw.github.com/skycocker/chromebrew/master/install.sh | bash
3. Get Node source code from github
github에 있는 Master branch의 ... 아마도 버전 5.x ? 의 소스코드를 crew에서 설치된 git을 이용하여 다운로드 받고 configure 해준다....?
$ git clone git://github.com/nodejs/node
$ node/configure
Permission Error 가 나옴.
어? 싶어서 일단 configure 파일을 열어보니, Python 스크립트였다. 근데 crew를 통해서 분명히 Python 3이 설치되었기 때문에, 다음과 같이 실행했다.
$ python ./configure
그런데 뭔가 에러가 난다. 아, Python 2 문법이로구나! 하고 crew의 package 들을 살펴보니 python27 가 있더라. 그래서 crew를 이용해서 설치를 해줬다.
$ crew install python27
약간의 시간이 흐르고, Python 2.7.10 버전이 설치가 된다. 이제 Python 2.7을 이용해서 configure를 진행한다.
$ python2.7 ./configure이후, make를 진행한다.
$ make
영겁의 시간이 흐른 후, 에러를 발견한다. ld가 없단다. 근데 crew 설치 시 분명 binutil을 설치하며 설치가 되었다 (which ld로 찾아보면 분명히 있다.). 대체 이건 무슨 상황?
찾아보니, 뭔가 node 의 버전이 올라가며 다른 dependencies 에 문제가 있는 듯 싶었다.
그래서 어차피 version 4도 안정적이니까 node version 4를 구했다. 뭔가 proposal 버전 보다는 rc 버전이 더 버그가 없을 듯 해서 4.0.0-rc 버전으로 설치해보기로 했다.
(rc는 release candidate의 약자로써, 심각한 버그만 없으면 공개할 수 있는 후보 버전이라는 의미이다.)
$ git checkout v4.0.0-rc
$ python2.7 ./configure
$ make
또 영겁의 시간이 흐른 후,
어? cc를 못 찾는단다. 그래서 찾아보니 gcc로 링크가 안 되어 있었다. 그래서 링크를 걸어주었다.
$ ln -s /usr/local/bin/gcc /usr/local/bin/cc
이후 make를 다시 진행...
오, 에러 없이 정상적으로 잘 진행되었다. 그래서 그대로 설치를 했다.
$ sudo make install
ㅋㅋㅋ 그리고 잘 됨. YES!!!!!
Official site에서 제공하는 4.3 LTS 역시 마찬가지로 ld 에러가 나오더라. 현재까지 발견하기로는 4.0rc 버전만 설치가 된다.