어쨌든 회사에서의 개발환경은 cygwin + gcc + gmake이다. 따라서 cygwin을 설치한다.
http://www.cygwin.com/setup.exe 를 다운받아놓도록 한다.
향후 패키지를 추가/제거할 때도 사용하여야 하니까 그냥 다운 받아놓는 것이 낫다. 용량도 400KB 정도...
이걸 실행시키면 어디를 통해서 install 할 것인지를 물어본다.
여기에서 Install from Internet을 사용한다.
Root Directory는 기본 설정인 C:\cygwin을 그냥 사용하는 것이 제일 무방할 듯 싶다.
검색해본 결과 많은 사람들이 여기에 기반을 두고 작업을 하였기 때문에 헷갈리지 않을터이다.
밑의 설정은 All Users와 Unix/binary에 체크한다. (기본 설정)
여기서 다음을 누르면 어디에 다운을 받을 것인지, 어떤 방법으로 받을 것인지 물어보는데 기본값을 쓰면 되고,
download site는 http://ftp.daum.net을 추가해서 쓰면 괜찮을 듯 하다.
기본값은 진짜 기본만 설치하게 되므로 나중에 되는게 하나도 없다
All 옆에 Install을 몇 번 클릭하여 Uninstall로 바꾸고, 원하는 패키지의 Unintall을 Install로 바궈서. 필요한 패키지만 설치하자.
직감적으로 gcc나 make, gdb, vim 등등은 당연히 해야할 것이라는 느낌이 온다.
다음은 필요하다고 생각되는 package들을 정리한 것이다.
Admin - cygrunsrv (sshd 등을 bg로 돌릴 유틸)
Devel - gcc, make, ctags 관련
Editors - vim 관련
Net - openssh 관련 (ssh를 사용할 것이라면)
Shell - rxvt 관련 (xterm을 사용할 것이라면)
Devel - gcc, make, ctags 관련
Editors - vim 관련
Net - openssh 관련 (ssh를 사용할 것이라면)
Shell - rxvt 관련 (xterm을 사용할 것이라면)
위에서 열거한 package 말고도 필요한 패키지들을 선택하도록 하고,
나중에 또 추가가 되므로 크게 신경 쓸 일은 아닌듯 하다.
어쨌거나 설치가 끝나면 환경변수를 설정하도록 한다.
내 컴퓨터 우클릭하여 '속성'->'고급'->'환경변수'를 선택하여 사용자 변수와 시스템 변수를 추가하도록 한다.
사용자 변수
HOME=d:\home (linux에서의 ~ 를 말함)
LOGNAME= (windows 계정과 동일하게)
시스템 변수
CYGWIN (ntsec binmode)을 새로 만들고
PATH에 C:\Cygwin\bin을 추가한다 (당연히 항목과 항목 사이는 ;으로 구분한다).
만약 cygwin 자체의 terminal을 쓴다면 상관은 없지만, cygwin의 xterm을 사용하고 싶다면, 추가의 작업이 필요하다.
c:\cygwin을 보면 cygwin.bat가 있다. autoexec.bat 이후로 bat 파일은 진짜 오랜만이다. 어쨌거나 이거 내용을 보면 다음과 같다.
@echo off
C:
chdir C:\cygwin\bin
bash --login -i
C:
chdir C:\cygwin\bin
bash --login -i
이거를 응용해서 rxvt,bat를 하나 만든다 (xterm용)
@echo off
C:
chdir C:\cygwin\bin
rxvt.exe -tn xterm -rv -sr -sw -bg gray -fg black -sl 1000 -sbt 15 -fn "Dotumche" -e /bin/bash --login -i
C:
chdir C:\cygwin\bin
rxvt.exe -tn xterm -rv -sr -sw -bg gray -fg black -sl 1000 -sbt 15 -fn "Dotumche" -e /bin/bash --login -i
rxvt의 각 항목의 값들이 궁금하다면 cygwin에서 rxvt --help를 해보면 알 수 있다. 대충 xterm으로 띄우는데 scrolling이 가능하도록 하고 검은 배경에 회색글씨를 쓰겠다... 폰트는 Dotumche를 쓰겠고.. 뭐 이런 거다.
이게 끝난 다음에 만든 rxvt.bat를 실행시키면 익숙한 shell prompt를 확인할 수 있다.
cygwin에서 개발하려면 다른 editor도 있겠지만, 아무래도 vim을 가장 많이 사용하지 않을까 싶다. cygwin에서 vim을 사용하려면 이거저거 걸리는게 많다. 일단 기본적으로 설정 파일이 없기 때문에 원 리눅스에서의 컬러풀(?)한 터미널을 기대하면 안된다. 또 한글입력에 문제가 많아서 요거 2가지 처리를 해줘야 한다.
먼저 vim을 설정해야 되는데, 항목이 워낙 많으니 그냥 /usr/share/vim/vim71/vimrc_example.vim을 home 디렉토리에 .vimrc로 복사하고, 좀 손을 봐준다. 쭉 내리다보면 다음과 같은 부분이 있다.
if has("vms")
set nobackup
else
set backup
endif
set nobackup
else
set backup
endif
요 부분을 주석처리한다. vimrc에서의 주석은 " (double quotation mark)를 맨 앞에 붙여주면 된다. 이거 안하면 저장하고 나올때마다 backup 파일이 생기는 짜증나는 (필요하긴 하지만) 현상을 목격하게 된다. 어쨌거나 이거 됐으면 다음 작업을 진행한다. 역시 .vimrc에 다음과 같은 항목을 추가하여 준다.
set fileencoding=euc-kr
set encoding=cp949
set encoding=cp949
vi에서 한글을 사용하기 위한 설정이다. 이렇게 다 됐으면 저장하고 다시 vi로 아무 c파일이나 짜본다.
#include <stdio.h>
int main (void)
{
printf ("헬로, 시그윈 월드\n");
return 0;
}
int main (void)
{
printf ("헬로, 시그윈 월드\n");
return 0;
}
잘 된다. 하지만 이렇게 하면 vim에서만 한글이 잘 보일뿐, 막상 쉘에서 ls해보면 잘 안나온다. 요것도 수정해야 하는데, 홈 디렉토리에 .bash_profile을 다음과 같은 내용을 추가한다.
alias ls='ls -F --color=auto --show-control-char'
쉘에서 ls를 해도 한글이 무리 없이 잘 나오게 된다. 후아... 이정도 했으면 큰 문제 없이 cygwin을 사용할 수 있을 것 같다. 헌데, 작업하다보면 새로운 terminal을 띄워야 할 때가 있는데 이때마다 마우스로 손이 가는건 상당히 부하가 큰 작업(-_-?)이다. 요거를... 키보드에서만 해결하도록 다음과 같은 alias도 하나 추가한다.
alias rxvtTerm='/cygdrive/c/cygwin/bin/rxvt -tn xterm -rv -sr -sw -bg gray -fg black -sl 1000 -sbt 15 -fn "Dotumche" -e /bin/bash --login -i &'
이러면 그냥 쉘 프롬프트에서 rxvtTerm을 실행시켜서 새로운 xterm 하나를 더 얻을 수 있게 된다.