Building Mono 2.6.1 from source on Ubuntu 9.10

안녕하세요? 웹지니입니다.

2010년 새해가 시작된지도 벌써 1주일이나 지났네요. 다들 건강하시죠?
전 요즘 감기가 걸려서 개고생을 하고 있습니다. 사실 아프려면 크게 아파야 좀 쉬기도 하고 그럴텐데 지금처럼 콧물만 졸졸 흐르면 괜히 지저분하기만 하고 일하기만 더 힘들고 그러네요.

2010년 새해에도 웹지니는 여전히 ASP.NET을 이용한 크로스 플랫폼 웹 애플리케이션을 개발하고 있습니다.
물론 Primary Target은 Windows 플랫폼이지만 리눅스/유닉스 계열과 Mac OS 등을 탑재한 시스템에도 저희 팀에서 구현한 애플리케이션이 동작해야 한다는 (그것도 별도의 코드 수정이나 재컴파일 없이 -ㅅ-;;) 다소 난해한 요구 사항과 맞닥뜨린 상황입니다.
해서 Windows 이외의 플랫폼에서는 마이크로소프트가 지원하고 노벨(Novell)이 프로젝트를 주도하는 모노(Mono)를 사용하게 된 것이지요.

사실 10년 간 Windows 플랫폼만 사용해 온 웹지니에게 리눅스 플랫폼은 매우 생소한 녀석이었기에 이런 저런 고생을 좀 했습니다.
특히 Windows 플랫폼에서는 그냥 “다음” 버튼만 누르면 간단히 해결되던 소프트웨어의 설치가 가장 난제였었지요.
해서 이번 포스트는 크게 두 가지 목적으로 작성되었습니다.

1. Ubuntu 리눅스에서 소스 컴파일을 통해 모노 프레임워크를 설치하는 방법을 잊어버리지 않기 위해서
2. 혹시 다른 .NET/모노 개발자에게 도움이 될까봐

그럼 시작해 볼까요?

1. Installing MonoDevelop 2.0 on Ubuntu 9.10

일단 이 포스트는 Ubuntu 리눅스 9.10 버전을 기준으로 하며 여러분이 이미 가상 머신 혹은 실제 물리적 머신에 Ubuntu 9.10을 설치한 상태라고 가정합니다. 사실 Ubuntu 9.10에는 Mono 2.4.2.3 버전이 이미 설치되어 있으며 모노 개발을 위한 IDE인 MonoDevelop 2.0이 미리 패키징되어 있어 손쉽게 설치가 가능합니다.

Mono 2.4.2.3과 MonoDevelop 2.0만으로도 얼마든지 리눅스 플랫폼에서 .NET 개발이 가능합니다. 게다가 설치도 참 쉽죠~잉. 리눅스 터미널에서 다음과 같은 커맨드만 실행하면 됩니다.

  1: sudo apt-get install monodevelop monodevelop-database

그런 후 리눅스 사용자 계정의 비밀 번호를 입력해 주면 간단히 MonoDevelop 2.0을 설치할 수 있습니다. 그러나 최신 버전은 Mono 2.6.1과 MonoDevelop 2.2이며 늘 최신 버전에 목말라 하는 웹지니는 미리 패키징 된 개발 도구들 대신 최신 소스를 다운로드하여 직접 컴파일 후 설치하는 과정에 도전해 보기로 한 것이지요.

2. Building and Installing Mono 2.6.1 on Ubuntu 9.10

Mono 2.6.1을 설치는 과정은 제 개인적으로는 절대 쉽지 않았습니다. 우선 Ubuntu에 필요한 라이브러리들이 모두 설치되어 있어야 하기에 어떤 것들을 먼저 설치해야 하는지 알아내는 것도 쉽지 않았지요. 그러면 이제 필요한 라이브러리를 먼저 설치해볼까요? 터미널에서 다음과 같은 커맨드를 실행합니다.

  1: sudo apt-get remove mono-common
  2: 
  3: sudo apt-get install build-essential pkg-config bison gettext libglib2.0-dev libcairo2-dev libungif4-dev libjpeg62-dev libtiff4-dev 
  4: 
  5: wget http://ftp.novell.com/pub/mono/sources/libgdiplus/libgdiplus-2.6.tar.bz2
  6: tar xvjf libgdiplus-2.6.tar.bz2
  7: cd libgdiplus-2.6
  8: ./configure && make && sudo make install

자 먼저 1번 라인의 커맨드를 이용하여 이전 버전의 mono-common 라이브러리를 삭제한 후 3번 라인과 같이 필요한 라이브러리들을 모두 설치합니다. 그런 후 마지막으로 libgdiplus 라이브러리를 설치해야 하는데 이 라이브러리는 Mono 2.6.1에 맞춘 최신 버전이 제공되므로 5번 라인과 같이 FTP를 통해 먼저 다운로드 한 후 6번 라인의 커맨드로 압축을 해제하고 8번 라인과 같이 설치해 줍니다.

여기까지 설치했으면 이제 드디어 Mono 2.6.1을 설치할 차례입니다. 다음의 커맨드를 차례로 실행해 보겠습니다.

  1: wget http://ftp.novell.com/pub/mono/sources/mono/mono-2.6.1.tar.bz2
  2: tar xvjf mono-2.6.1.tar.bz2
  3: cd mono2.6.1
  4: ./configure && make && sudo make install

차례대로 설명을 드리자면 1번 라인의 커맨드로 Mono 2.6.1의 소스 코드를 다운로드 한 후 2번 라인의 커맨드로 압축을 해제하고 4번 라인의 커맨드로 설치를 합니다. 설치 과정은 생각보다 오래 걸립니다 (흡연자라면 담배 한 대 때리고 오심이... 쿨럭). 알 수 없는 내용들이 터미널에 가득 출력이 되고 가끔 .NET 컴파일 경고가 보이기도 하지만 일단 불안해 하지 말고 넘어갑니다. 설치 과정이 모두 완료되면 다음과 같이 시스템에 설치된 모노의 버전을 확인할 수 있습니다.

  1: mono --version
  2: 
  3: Mono JIT compiler version 2.6.1 (tarball Thu Jan 7 16:44:43 KST 2010)
  4: Copyright (C) 2002-2008 Novell, Inc and Contributors. www.mono-project.com
  5: 	TLS:		__thread
  6: 	GC:		Included Boehm (with typed GC and Parallel Mark)
  7: 	SIGSEGV:	altstack
  8: 	Architecture:	x86
  9: 	Disabled:	none
 10: 

1번 라인과 같이 mono 실행 파일에 --version 옵션을 주면 3라인 이후의 정보가 출력됩니다. 3번 라인의 버전이 2.6.1로 표시되면 올바르게 설치가 완료된 것입니다.

3. Building and Installing MonoDevelop 2.2 on Ubuntu 9.10

Mono 2.6.1을 설치했으면 이제 모노 개발을 위한 IDE인 MonoDevelop의 최신 버전인 2.2 버전을 설치해 보겠습니다. 안타깝게도 MonoDevelop 2.2는 Windows 플랫폼을 비롯하여 Mac OS X와 노벨의 OpenSUSE 리눅스에서의 설치를 위한 패키지를 지원하지만 Ubuntu 리눅스를 위한 패키지는 지원하지 않습니다. 해서 번거롭지만 소스 컴파일을 통해 설치해야 하는 것이지요. MonoDevelop을 설치하기 이전에 먼저 GTK# 및 Gnome#이라는 라이브러리를 설치해야 합니다. 터미널에서 다음과 같이 커맨드를 실행합니다.

  1: wget http://ftp.novell.com/pub/mono/sources/gtk-sharp212/gtk-sharp-2.12.9.tar.bz2
  2: wget http://ftp.novell.com/pub/mono/sources/gnome-sharp2/gnome-sharp-2.24.1.tar.bz2
  3: wget http://ftp.novell.com/pub/mono/sources/gnome-desktop-sharp2/gnome-desktop-sharp-2.24.0.tar.bz2
  4: 
  5: tar xvjf gtk-sharp-2.12.9.tar.bz2
  6: tar xvjf gnome-sharp-2.24.1.tar.bz2
  7: tar xvjf gnome-desktop-sharp-2.24.0.tar.bz2
  8: 
  9: cd gtk-sharp-2.12.9
 10: ./configure && make && sudo make install
 11: 
 12: cd ../gnome-sharp-2.24.1
 13: ./configure && make && sudo make install
 14: 
 15: cd ../gnome-desktop-sharp-2.24.0
 16: ./configure && make && sudo make install

먼저 위와 같이 세 개의 GTK#및 Gnome# 라이브러리를 다운로드 한 후 각자 압축을 해제하고 각각의 라이브러리가 압축 해제된 폴더에서 설치를 실행합니다. 설치가 완료되면 이제 다음의 커맨드를 이용하여 MonoDevelop 2.2의 소스 코드를 다운로드 하고 설치합니다.

  1: wget http://ftp.novell.com/pub/mono/sources/monodevelop/monodevelop-2.2.tar.bz2
  2: 
  3: tar xvjf monodevelop-2.2.tar.bz2
  4: 
  5: cd monodevelop-2.2
  6: ./configure && make && sudo make install

위의 커맨드를 실행하고 설치가 완료될 때까지 기다립니다. 설치가 완료되면 아래 그림과 같이 Ubuntu 데스크톱의 [Applications] 메뉴에 [Programming > MonoDevelop] 메뉴가 생성됩니다.

img1

MonoDevelop 메뉴를 클릭하면 아래 그림과 같이 MonoDevelop 2.2가 실행됩니다. 새 프로젝트 대화 상자에서 볼 수 있듯이 ASP.NET MVC 1.0 프로젝트과 Silverlight의 리눅스 버전인 Moonlight 애플리케이션 개발을 위한 템플릿도 지원되네요. 훗~

img2

이상으로 Mono 2.6.1과 MonoDevelop 2.2를 설치해 보았습니다. 사실 Mono 2.6.1은 아직 .NET 프레임워크 3.5의 모든 기능을 구현하고 있지는 않습니다만 .NET 2.0의 클래스 라이브러리는 거의 대부분 구현하고 있어 실제 프로젝트를 진행하기에 큰 무리는 없어 보입니다.

앞으로 .NET/Mono 프레임워크로 크로스 플랫폼 웹 애플리케이션을 구현하면서 알게 되는 유용한 정보들도 함께 공유하도록 할게요.
허접한 설치 경험담은 여기서 끝~

평점 4.0 / 1회 참여

  • Currently 4/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Comments

Add comment


 

biuquote
Loading



Search

Recent comments