html/css/javascript

cloud9 설치

gonGon 2012. 7. 17. 13:17

nodejs용 에디터를 찾다가 cloud9을 설치해 보았다. 대문은 c9.io 이다.


설치는 아래처럼 npm을 이용하여 간단하게 진행했다.


npm install cloud9


설치되는 내용을 자세히 안 봤더니 어디에 설치되었는지 모르겠다.

/usr/local/에는 없고, ~/node_modules/cloud9을 만들고 그 밑에 풀어놓았다. 설치형이 아닌가보네.

(참고로, npm이 내려받은 파일은 ~/.npm/에 있다.)


~/node_modules/cloud9/README.md를 열어보면 실행할 수 있도록 설명이 나와있다.

linux와 osx는 bin/cloud9.sh을 실행하란다. 그런데 실행하면 에러난다.


>~/node_modules/cloud9/bin/cloud9.sh

OSX

node.js:134
        throw e; // process.nextTick error, or 'error' event on first tick
        ^
TypeError: Object #<Object> has no method 'main'
    at Object.<anonymous> (~/node_modules/cloud9/bin/cloud9.js:42:19)
    at Module.<anonymous> (module.js:402:26)
    at Object..js (module.js:408:10)
    at Module.load (module.js:334:31)
    at Function._load (module.js:293:12)
    at Array.<anonymous> (module.js:421:10)
    at EventEmitter._tickCallback (node.js:126:26)


문제는 bin/cloud9.js파일의42line이다.

구글링해보니 경로에 문제가 있는 것 같다. server/cloud9으로 바꿔주면 된다고 한다.


[변경전] require("cloud9").main(options);

[변경후] require("../server/cloud9").main(options);


뭔가 상대경로가 맞지 않은 것 같다. 음.. 그냥 날로 먹기가 그래서 아래처럼 유추해 보았다.


bin/cloud9.sh에서는 bin/cloud9.js를 호출한다.

cloud9.js 42line에서 require('cloud9')을 하면 bin/cloud9.js를 찾거나, bin/cloud9/index.js를 찾을 것이다. (nodejs document참조)


- bin/cloud9.js라면, 현재 실행되는 자신일텐데 (기동파일에서 재귀라니.. 이상하다.) bin/cloud9.js에는 exprot.main이 없다.

- bin/cloud9/index.js를 찾는 경우라면, bin/cloud9 폴더가 없다.


find로 cloud9.js를 찾으면 bin/cloud9.js 하나 밖에 없다. 어딘가에 있는 cloud9/index.js에서 exports.main하고 있다는 거다.

index.js로 찾으면, server/cloud9/index.js가 나온다. 다른 index.js도 있지만 cloud9/index.js는 이거 하나밖에 없다.

grep으로 exports.main을 찾으면 server/cloud9/index.js 하나만 나온다.


그래서, require("../server/cloud9").main(options); 로 바꾸고 bin/cloud9.sh을 실행하면 3000번 포트로 잘 올라온다. 올라오면서 기본브라우저인 사파리가 열리면서 'http://127.0.0.1:3000/'을 열어준다.


첨에는 하얗게 아무 것도 안 뜨길래 뜨악했는데 firefox로 다시 열어보니 잘 열린다.

safari에서 css관련 issue가 있던 것 같다.


- 오늘 열어보니 safari에서도 잘 뜬다. 좀 전에  update 하나 떠서 적용했는데 그 영향일까?