리눅스에서 C#을 사용 할 수 있다고 한다.
모노 프로젝트를 이용하여 한번 리눅스에서 C#을 써 보도록 하자.
1. 우선 아래의 사이트로 가서 모노프로젝트를 다운 받자.
http://mono-project.com
2. 어떤 것을 다운 받냐면... 바로~
DownLoad메뉴의 UnSupport 어쩌고저쩌고가 있다. 그 곳으로 가 보자.
3. 그곳에서 Other Linuxes 에서 다운 받으면 된다.
4. 다운로드 한 디렉토리로 이동 후 다운로드 한 mono-1.xx.xx-installer.bin파일에 실행권한을 주고 실행한다.
(아마도 Root권한으로 해야 할 것임... 기본 설치 디렉토리가 /opt이므로... 또는 개인디렉토리에 설치하려면 바꿔주면 된다.)
5. 이제 설치 화면이 뜬다. 앞으로..앞으로...앞으로...
특별히 불만이 없다면 그냥 Accept 해주도록 한다. (불만 있다면 설치 못한 다고 함)
설치 디렉토리를 지정 해 준다. (그냥 냅두는게 가장 좋은거라 생각하는 1人)
PATH등록을 할껀지 묻는다. 알아서 판단...
설치가 되어간다.
6. 필요한 라이브러리가 없다고 경고...
설치할 환경이 안될 경우(필요한 라이브러리가 존재하지 않을 경우)
아래와 같은 화면이 나타나면서 필요한 라이브러리를 설치해 달라고 징징댄다.
그럴 경우 yum이나 http://rpmfind.net 을 이용하여 필요한 라이브러리를 설치한다.
(yum을 사용하는 경우 : yum -install XXX XXX는 라이브러리 이름. 설마 libglitz.so.1 이렇게 다 입력하는 사람 없겠지비..)
보통 특정 버전대를 요구하는 경우라 rpmfind을 이용하여 rpm으로 설치하는데
의존성이나 상위 버전이 시스템에 존재하는 경우 그것도 여의치 않다.
이럴 경우 그냥 소스컴파일 해서 사용하자.(개인적으로 이것이 가장 속 편하다.)
특히 gail 라이브러리 같은 경우 18,17 버전대 동시에 두개가 필요하다고 하기때문에 17버전은
손수 소스컴파일로 설치를 하여 라이브러리 파일을 /usr/lib/ 아래에 링크시켜주었다. (/usr/lib/libgailutil.so.17)
7. 설치 완료 후 설치 디렉토리에서 쉘스크립트 실행
모노가 설치된 디렉토리안의 bin 디렉토리에 존재하는 "setup.sh"를 실행 시킨다.
8. 모노를 실행시키지만...
이제 모노를 실행시켜 보자. (/Mono설치디렉토리/bin/monodevelop)
반가운 에러메세지를 볼 수 있을 것이다. (리눅스에서 한번에 설치 되면 의심할만 하다.... 뭔가 찜찜..)
9. 에러를 잡자
경로가 잘못 설정 되어 있어 에러가 나는 것이기 때문에
monodevelop 파일을 vi로 열어 수정하도록 한다.
수정 할 부분은 /usr/bin/으로 되어 있는 경로를 자신이 설치한 경로로 바꿔주면 된다.
[수정 전]
[수정 후]
편하게 하기 위해 모노 설치 디렉토리를 지정
위에서 설정한 모노디렉토리의 MD_BIN_PATH를 각 경로에 붙여준다.
혹시 수정하고도 에러가 난다면 제일 마지막줄을 아래와 같이 썼나 확인 해 본다.
10. 모노 실행~!!
모노가 설치된 디렉토리 아래 bin디렉토리 안에 있는 monodevelop을 다시 실행시켜 본다.
아래와 같은 화면을 못만난다면 분명 monodevelop파일을 잘못 수정 했을 가능성이 크므로 다시 한번 확인
프로그램 정보는 아래와 같다.
11. 헬로우 월드 만들어 보기
Visual Studio와 비슷하므로 그냥 사용하면 된다.
단, 약간은 다르기 때문에 유념. 특히 이벤트 핸들러는 옆 Properties쪽에서 해 줘야 한다.(더블클릭으로 안됨)
MainWindow.cs 를 클릭하면 소스를 편집 할 수 있다. 아래 Designer 클릭 하면 gui builder 로 편집가능
(ToolBox의 Containers의 Fixed를 사용하면 아래와 같은 화면이 됨. 취향에 따라 선택해서 사용 - 레이아웃에 관련한 내용)
그냥 Hello World만 넣으면 심심하므로 달력도 넣어 본다.
프로젝트를 빌드 시킨다. (프로젝트가 1개니깐 Build Solution이나 test1이나...)
아래와 같은 실행 결과를 볼 수 있따~
자! 이상 끝.
여담이지만 모노는 Gtk를 사용하여 GUI를 표현한단다...
그래서 아무래도 윈도우와 소스를 공유하는 것은 GUI쪽이 아닌 부분으로 해야 할듯 하다.
윈도우에도 모노가 있다면 이야기가 틀려지나.. 안해봐서 그것은...
이 글과 관련있는 글을 자동검색한 결과입니다 [?]