Linux

[linux]가상머신에 설치된 우분투에 C9 ide 설치하기

[2018.11.01 발생하는 오류들 관련 최신 수정]

 

c9 이라는 클라우드 ide 서비스가 있다.

 

(찬양하라.. 구름을..)

 

군대 2년동안 꽤나 편리하게 이용했어서 전역하고도 계속 쓰고 있었는데,

 

터미널 환경을 지원하는 탓에 단순 개발 플랫폼이 아니라 보안 공부를 위한 훌륭한 도구로도 사용이 가능했다.

 

예를 들면, sql injetcion 툴을 짤때도 ide 창에서 코딩하고 바로 아래에 띄워둔 터미널에서 실행한다던지,

 

pwn을 할때도 터미널에서 디버깅하고 바로 위에 띄워둔 ide 창에서 페이로드를 짠다던지,

 

ssh 환경에서는 불가능하거나 불편했던 작업들을 겁나 편리하게 할 수 있게 해주는 것이었다. 

 

또 로컬이나 가상머신 상에서 직접 작업하는것보다는 당연히 편할꺼다. 

 

또한 ssh 클라이언트 설치 없이도 어떤 환경에서든 웹 브라우저만 있다면 언제 어디서든 내 서버에 접속해서 작업이 가능한 장점이 있다.

 

 

(짠짜잔. 아래는 터미널이고 위는 ide다. )

 

 

단점이라고 하면 환경 구성이 자유롭지 않다는것. 일단은 돈을 줘야 내가 원하는 사양의 구성이 가능하기에, 어느정도는 한계점이 명백했다.

 

지금 쓰던 서버가 곧 용량이 터질것 같아서, 가상머신에 설치한 우분투에 c9을 사용할수는 없는지 찾아보니까 

 

역시나 있었다. 다시한번 구름을 찬양하자. 사랑해요 c9!

 

설치에 사용한 우분투 버전 : 14.04.03 LTS

 

 

1. nvm 설치 

 

##사용에 필요한 패키지 설치 

$ sudo apt-get install build-essential libssl-dev

## v0.33.11은 사용 가능한 최신버전 확인후 바꿔서 설치하는게 좋다. https://github.com/creationix/nvm#install-script 에서 최신버전 확인 

## 아래 인스톨 스크립트를 실행하면,사용자 홈디렉토리 아래 .nvm 디렉토리를 만들고 nodejs 버젼 관리를 하게된다.

$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

## 설치하고 나면 쉘 설정파일에 nvm 명령어 스크립트가 추가되어 명령어를 사용할 수 있게 된다. 

$ source ~/.bashrc 

 

2. nvm을 이용한  node 설치 

 

$ nvm install 0.10.33 ## 노드 0.10.33을 설치

$ nvm use 0.10.33 ## 0.10.33버젼 지정

 

3. c9 소스 다운로드

 

$ sudo apt-get install git ## git 설치

$ cd ~ ## 홈디렉토리에 다운받기 위한 경로 이동

$ git clone https://github.com/c9/core.git c9sdk ## 맨 뒤의 이름으로 디렉토리가 만들어지면서 다운로드됨.

 

 

4. c9 설치 

 

$ cd ~/c9sdk

$ ./scripts/install-sdk.sh 

# 시간이 꽤 걸린다. 

 

# error: storage size of 'methods_bufferevent' isn't known 에러가 발생할 수 있다.

# apt-get update > apt-get upgrade > apt-get install openssl 순으로 openssl 최신버전을 설치해주자. 

 

5. 실행

 

$ node ~/c9sdk/server.js --listen 192.168.0.10 -p 4242 -a test:test -w ~/synod2

 

# --listen : 사용하고자 하는 ip주소. 설정을 안하면 루프백 아이피로 접속이 가능하다. 

# -p : 포트번호. 지정 안하면 8181로 기본값 설정된다.

# -a : 계정과 비밀번호. 로컬에서만 쓸거라면 지정 안해도 무방하지만 보안을 위해서 사용하는걸 추천. 

# -w : workstation으로 지정할 경로. 해당 경로가 없다면 새로히 디렉토리를 생성해주고, 지정하지 않으면 s9dsk가 설치된 곳을 기본 경로로 한다.  

 

Cannot find module 'optimist 에러 발생  -> npm install 로 npm 설치

Cannot find module 'amd-loader' 에러 발생 -> git fetch origin; git reset origin/master --hard 로 git 저장소 정보 초기화 

# Unhandled 'error' event 에러 발생시 -> 보통은 c9 서비스가 이미 돌아가고 있는경우에 발생한다.  

# ps -ef 명령어로 서비스를 찾아 종료하거나, 포트 혹은 ip를 변경하고 다시 해보자.

 

 

5번 명령어를 실행하고 Cloud9 is up and running이 뜨면 성공한거다. 

 

여기까지 다 되면 일단 가상머신상 우분투에서 접속 가능한지부터 테스트해보자.

(구름님의 존안을 영접했다면 일단 성공한 것이다.)

 

그 다음, 로컬에서 가상머신상에 있는 서버에 접속해야 하는 것이기 때문에,

 

가상머신에 설치한 웹서버에 들어가는것과 동일하게 생각하고 Bridge로 세팅해주면 된다.

 

(맨처음엔 ssh랑 동일하게 포트포워딩으로 설정해놨다가 왜 안되지.. 하고 한참 삽질했었는데 개념 자체가 달랐다. 댕청..)

 

 

edit - network editor 에서 vmnet0 의 external connection을 실제 하드웨어 네트워크 장치로 설정해주자. 

 

안해줘도 무방하다고는 하지만, 해주는편이 확실해서 설정했다.

 

그 다음, 가상머신 세팅에 들어가서 네트워크 설정을 변경해준다.

 

 

 

사진에 보이는대로만 해주면 된다 . custom 란에서 아까 브릿지 설정해준 네트워크 장치인 vmnet0로 잡아준 다음 가상머신을 재부팅하자.

 

이제 다시 우분투로 돌아가서 서버를 돌려보자.

 

 

켜진것 확인했고, 윈도우상 웹 브라우저에서 192.168.0.10 : 4242 로 들어가면..? 

 

 

(약간의 추가 설치과정이 있다.)

 

이때 설치과정에서 execvp(3) 에러가 터미널창에서 계속 뜨면서 tmux 관련 오류가 발생할 수 있다.

 

당황하지 말고 sudo apt-get install tmux 로 tmux를 설치해주면 된다.

 

서비스를 강제종료하고, tmux 설치후 해당 탭을 완전 종료한 다음 다시 접속하면 재설치를 진행한다. 

 

(당황)

 

 

 

 

 

짠짜잔! 구름님의 존안을 영접할 수 있다. 

 

이제 남은건 서비스 데몬으로 설정해주는것. 켤때마다 러닝 명령어를 일일히 칠수는 없지 않은가..?

 

데몬설정은 아직 안되서 나중에 다시 해보고 일단 저걸로 신나게 놀아야겠다. 헤헤 

 

( 사실 데몬설정 하다가 중간중간 계속 막혀서 진행이 안되는 중이다. 누가 알려주면 좋으련만..)

 

 

 

 

 

참고 문서 : http://html5around.com/wordpress/tutorials/ubuntu-cloud9-sdk-install/

한국어로 된 게시글을 찾기 힘들었었는데.. 다행히 친절하게 설명 해주셔서 잘 되었던것 같다.