아직도 외국 리스퍼들 이나 커뮤니티에 가보면 Windows 에서 Lisp 개발 환경 꾸미느라 고생한다는 글이 종종 보이곤 합니다. 

예전에 Weblock 프로젝트 개발 환경을 Windows 에서 구현하는 것이 의미 있다고 생각해서 정말 열심히 노력해서 8시간만에 세팅한 적이 있었습니다. 뭔가 모잘란 듯 하지만 잘 구성되서 만족하며 썼었습니다. 

그 후로 잠시 잊고 있다가 , 다시 같은 개발 환경을 Ubuntu 에서 할 경우가 있었습니다. (CentOS 가 아닌 Ubuntu 입니다). 3분 걸리더군요..

8시간대 3분 , 게다가 8시간짜리 환경은 완벽한 환경도 아니였습니다. SBCL 윈도우즈 버젼은 그 때 당시에는 쓰레드 지원이 안됐습니다.

제대로 되지도 않는 개발 환경을 세팅한다고 8시간을 허비해야 할 가치가 있는 것일까요?  차라리 그 시간에 버추얼 데스크탑을 설치하고 거기다 우분투를 설치하는 시간이 더 빠를듯합니다. 한시간 안쪽에 모든 개발 환경이 설정 될 것입니다. 

ps.
 물론 이렇게 이야기 하지만 Emacs 환경 설정에는 특별히 공을 들이곤 합니다. 없는 기능이면 친절하게 코딩까지 다 해가면서 ㅎㅎ  
    EmacsW32 에서 grep 을 이용하여 정규표현식으로 검사할려고 하면 "memory exhausted" 에러가 발생하는
     현상을 수정하는 방법입니다. 이 현상은 굳이 EmacsW32 의 문제라기 보다는 grep for Windows 버젼의
     문제인것 같습니다. 따라서 버젼이 다른 grep 을 사용하고 있었다면 발생 안했을 확률이 높습니다.

     왜냐하면 EmacsW32 안에 포함되어 있는 grep 의 버젼이 문제가 있는 버젼이기 때문입니다. grep 의
     버젼이 2.5.1 인데 그러한 문제를 포함하고 있습니다.

     Grep for Windows(클릭) 사이트에서 최신 버젼으로 다운 받습니다. 최신 버젼은 2.5.4 버젼이군요. 



     1. 여기에서 Setup File을 받아서 설치합니다. 

'Complete package, except sources' 를 받아서 설치합니다. 

'C:\Program Files\Emacs\EmacsW32\gnuwin32\bin' 안에 있는 grep.exe 파일을 지워버립니다. 

     2. 수동으로 설치하는 방법입니다. (제가 선택한 방법입니다)

'Binaries' 와 'Dependencies' 를 내려 받습니다. 

'bin' 디렉토리 안에 있는 내용을 전부 'C:\Program Files\Emacs\EmacsW32\gnuwin32\bin' 에다가
        강제로 복사해 줍니다. 




     이제 그러한 문제는 사라졌군요. 




윈도에 테마 같은걸 까는것을 안 좋아하는 편인데요. 이 테마는 진짜 마음에 들더군요. 어디선가 우연히 본게 기억나서 한참을 뒤졌습니다. 

시원하게 라이트 세이버로 사과(?)를 베어 버리는 군요. 여러모로 마음에 드는 그림 아닌가요? ㅎㅎ 

테마는 위에 링크된 곳에서 받을 수 있습니다. 





coLinux 에서 윈도즈 파티션(ntfs) 를 마운트 하는 방법에 대해서
알아보겠습니다.

윈도즈 파티션 자체를 마운트 해야 합니다.

그런데 config 파일에 설정하는 방법 말고 서비스를 띄울때 띄우는 방법이
있습니다. (config 에서 하는 방법은 아직 못 찾았습니다) 서비스를
등록할때 기존 방식으로 등록하는 대신 실행할때 볼륨을 알려주는 방식으로
해야 합니다.

colinux-daemon.exe @example.conf cofs0=c:\ --install-service "coLinux"

이런 방식으로 서비스를 등록합니다. 그리고 coLinux 콘솔창에 접속해서
prompt 상에서

mount -t cofs 0 /mnt

일반 유저는 sudo 를 포함해서 실행시키면 됩니다.

서버(unix 계열) 일은 해야겠고 그러자고 Linux 를 깔자니 귀찮고,
그렇다고 항상 서버에 접속해서 일을 할 수는 없는 것이고.. 이럴때를 위한
획기적인 방법이 존재합니다.

바로 colinux 라는 솔루션입니다. vmware 에 가깝다고 보시면 되는데 가상의
리눅스 머신을 윈도안에서 띄우는 솔루션이지요. 자 이제 이것을 설치하면
서버머신이 없더라도 윈도에서 놀면서(!) 서버일을 할 수 있는 멋진 장점이
있습니다.

http://www.colinux.org/ 에서 좌측 프레임의 Downloads 링크를 따라가면
나오는 페이지에서 coLinux-0.7.3.exe 를 받아서 설치합니다.
설치중에 어디에다 설치할 것인지 물어보는 부분이 있는데 기본으로
"c:\Program Files\colinux" 입니다. "c:\colinux" 가 여러모로 편하다고
하지만 기본으로 해도 별 지장은 없습니다.

root file system 을 다운 받을까 하는 물음이 있습니다. 나중에 따로
받기가 매우 귀찮을 꺼라는 생각이 팍팍 들더군요. 다루기 쉬운 애로
받아서 깔도록 하지요. 전 'Debian XXX' 를 선택해서 받았습니다.

설치가 끝나고 '시작메뉴' 나 '프로그램 설치정보'를 찾아봐도 colinux 가
설치됐다는 정보가 없습니다. 조금 더 뒤져보면 "c:\Program
Files\colinux' 관련 파일들이 있다는 것을 알게 됩니다.

Debian-4.0r0-etch.ext3.1gb.bz2 이게 위에서 다운 받은 루트 이미지
입니다. 이것을 압축 해제 하고 나온 파일의 이름을 root_fs
수정합니다. 물론 이 파일은 colinux 가 설치된 곳에 저장이 되어야
합니다.여기까지 기본 준비는 끝나고 이제 실행에 옮겨보기로 하지요

"c:\Program Files\colinux" 로 이동해서 콘솔상에서
'colinux-daemon.exe @example.conf'

라고 실행합니다. 이건 어플리케이션 형태로 colinux 를
실행하는 방식인데, 뭔가 될려고 하다가 중지됩니다. "c:\colinux" 밑에
설치했다면 제대로 동작하지만 "c:\Program Files\colinux" 밑에 설치했으면
동작하지 않습니다. example.conf 파일을 열어보기로 하지요.
cobd0="c:\coLinux\root_fs" 라고 되어 있는 부분을 다음과 같이 바꾸어
줍니다.  cobd0="c:\Program Files\coLinux\root_fs" 다시 콘솔에서

'colinux-daemon.exe @example.conf'

라고 실행하면 colinux 가
부팅됩니다. 아이디 패스워드는 루트로 바로 접속이 가능합니다. root/root
이니 로긴해서 사용 아이디 만들어서 사용하시면 됩니다.

저는 어플리케이션 형태로 실행하는걸 테스트 목적으로 쓰고, 그 다음부터는
서비스 형태로 등록해서 필요할때만 서비스를 실행시켜서 리눅스를 부팅하고
사용하는 방법을 즐겨 합니다.  colinux 가 설치되어 있는 디렉토리
콘솔창에서

colinux-daemon.exe @example.conf --install-service "coLinux"

라고 입력합니다. 이러면 'coLinux' 라는 이름으로 서비스가 등록됩니다.

colinux-daemon.exe @example.conf --remove-service "coLinux"

하면 서비스가 해제됩니다.
서비스가 등록되어 있는 상태에서 리눅스를 부팅시키려면

net start "coLinux"

라고 콘솔에서 입력하시면 리눅스가 부팅이 됩니다. 그러면

colinux-console-nt.exe

를 실행해서 콘솔로 연결해서 사용이 가능합니다.



애플 터미널에서 한글 파일을 저장해서 svn에 올리면 제대로 올라가지만 그
파일을 윈도우에서 내려받아서 사용하면 글이 깨지는 현상이 발생합니다.

즉 제가 Mac OS 상에서 '해킹토시.txt' 라고 파일을 만들어서 svn 에
추가하면 잘 올라가지만 레파지토리상에서는 더미와 비슷하게 존재합니다.
따라서 windows 에서 그 파일을 받아서 보면 'ㅎㅐㅋㅣㅇㅌㅅㅣ.txt' 라는
이름으로 한글 자소가 분리된 형태로 파일이 받아집니다. 파일 지울때
rename 을 해줘야 하며, svn 레파지토리 관련 명령들도 잘 먹지 않습니다.

해결할려면 사용자 계정에 홈 디렉토리에 .inputrc 파일을 만들고

set convert-meta off
set meta-flag on
set output-meta on

이렇게 적어주면 파일 깨지는 현상이 사라지고, Mac(UTF-8) 용 터미널과
Windows(Euc-kr) 용 터미널에서의 파일명이 일치하게 됩니다.

+ Recent posts