2010-08-16T23:19:50の更新内容

programming/mono/install_from_git-master/index.wiki.txt

current previous
1,388 0,0
+
${smdncms:title,Monoのインストール (Git masterから)}
+
${smdncms:keywords,Mono,Git,master,ビルド,インストール}
+
[[Mono:http://www.mono-project.com/Main_Page]]を[[Gitのソース:http://github.com/mono]]からビルドしてインストールする手順。 ビルドに使用した環境はUbuntu 10.04 Desktop。 本文は2010年08月16日現在のバージョンに基づく。
+

          
+
-関連するページ
+
--[[programming/mono]]
+
--[[programming/mono/install_trunk]]
+

          
+
ここで紹介する手順はMono本体といくつかのアセンブリをインストールするためのもの。 ディストリビューションが提供しているバージョンのMonoと共存できるようにするため、/opt/mono/masterにインストールする。
+

          
+
1つの環境に複数のMonoをインストールする方法については[[Parallel Mono Environments - Mono:http://www.mono-project.com/Parallel_Mono_Environments]]で詳しく解説されている。
+

          
+
ビルドにはgcc、libtool、autotools、gettext、pkg-config等が必要になるので、あらかじめインストールしておく必要がある。
+

          
+
*libgdiplus
+
**依存するパッケージのインストール
+
#code(sh){{
+
sudo apt-get install \
+
libcairo2-dev libexif-dev libfreetype6-dev libfontconfig1-dev libgif-dev libglib2.0-dev libjpeg62-dev \
+
libpng12-dev libtiff4-dev libungif4-dev libx11-dev libxrender-dev
+
}}
+

          
+
**ソースのチェックアウトとautogen、configure
+
#code(sh){{
+
git clone git://github.com/mono/libgdiplus.git
+
cd ./libgdiplus
+
./autogen.sh --prefix=/opt/mono/master
+
}}
+

          
+
configureの結果例。
+
#prompt{{
+
---
+
Configuration summary
+

          
+
   * Installation prefix = /opt/mono/master
+
   * Cairo = 1.8.10 (system)
+
   * Text = cairo
+
   * EXIF tags = yes
+
   * Codecs supported:
+

          
+
      - TIFF: yes
+
      - JPEG: yes
+
      - GIF: yes
+
      - PNG: yes
+
      NOTE: if any of the above say 'no' you may install the
+
            corresponding development packages for them, rerun
+
            autogen.sh to include them in the build.
+

          
+
---
+
Now type `make' to compile
+
}}
+

          
+
**ビルド、インストール
+
configureした結果に問題が無ければmake、make installする。
+
#code(sh){{
+
make
+
sudo make install
+
}}
+

          
+
正しくインストールできたか確認する。
+
#code(sh){{
+
ls -l /opt/mono/master/lib/libgdiplus*
+
}}
+

          
+
*Mono本体(コンパイラ、クラスライブラリ)
+
**依存するパッケージのインストール
+
#code(sh){{
+
sudo apt-get install \
+
bison
+
}}
+

          
+
**ソースのチェックアウトとautogen、configure
+
.NET Framework 4のアセンブリを含めない場合は、--with-profile4=noを指定する。
+
#code(sh){{
+
git clone git://github.com/mono/mono.git
+
cd mono
+
./autogen.sh --prefix=/opt/mono/master --with-libgdiplus=installed --with-ikvm-native=no --with-moonlight=no --with-monotouch=no --with-mcs-docs=no --with-x
+
}}
+

          
+
configureの結果例。
+
#prompt{{
+
        mcs source:    mcs
+
        olive source:  
+

          
+
   Engine:
+
	GC:	       sgen and bundled Boehm GC with typed GC and parallel mark
+
	GLIB:	       embedded
+
	TLS:           __thread
+
	SIGALTSTACK:   yes
+
	Engine:        Building and using the JIT
+
	oprofile:      no
+
	BigArrays:     no
+
	DTrace:        no
+
	Parallel Mark: yes
+
	LLVM Back End: no (dynamically loaded: no)
+

          
+
    Libraries:
+
	Moon Profile:  no
+
	MonoTouch:     no
+
	JNI support:   
+
	libgdiplus:    assumed to be installed
+
	zlib:          system zlib
+
	
+

          
+
Now type `make' to compile
+
}}
+

          
+
-コンパイルオプションに関するドキュメント
+
--[[Advanced Mono Compile Options - Mono:http://www.mono-project.com/Advanced_Mono_Compile_Options]]
+
--[[Unsupported Advanced Mono Compile Options - Mono:http://www.mono-project.com/Unsupported_Advanced_Mono_Compile_Options]]
+

          
+
**ビルド、インストール
+
コンパイルする環境にMonoおよびmcsがない場合は、makeする前に最新のMonoLite([[Mono Daily Packages:http://mono.ximian.com/daily/]])を取得しておく。
+
#code(sh){{
+
make get-monolite-latest
+
}}
+

          
+
なお、このコマンドでから取得したバイナリでビルドできない場合は、以下の5つのバイナリを別の環境からコピーするなどして../mcs/class/lib/monolite/に配置すればビルドできるようになる。
+
-mscorlib.dll
+
-System.dll
+
-System.Xml.dll
+
-Mono.Security.dll
+
-mcs.exe
+

          
+
準備が整ったら、make、make installする。
+
#code(sh){{
+
make
+
sudo make install
+
}}
+

          
+
-コンパイルに関するドキュメント
+
--[[Compiling Mono From Git - Mono:http://www.mono-project.com/Compiling_Mono_From_Git]]
+

          
+
**動作確認
+
***新しくMonoをインストールした場合
+
mono -Vでmonoが動作することを確認する。
+
#prompt{{
+
$ mono -V
+
Mono JIT compiler version 2.7.1 (master/f29ae1c 2010年  8月 16日 月曜日 21:36:04 JST)
+
Copyright (C) 2002-2010 Novell, Inc and Contributors. www.mono-project.com
+
	TLS:           __thread
+
	SIGSEGV:       altstack
+
	Notifications: epoll
+
	Architecture:  x86
+
	Disabled:      none
+
	Misc:          debugger softdebug 
+
	LLVM:          supported, not enabled.
+
	GC:            Included Boehm (with typed GC and Parallel Mark)
+
}}
+

          
+
***既に別のバージョンのMonoが存在する環境にインストールした場合
+
新しく/opt/monoにインストールしたMonoを参照できるように、環境変数を設定するスクリプトを用意しておく。 参考: [[Parallel Mono Environments - Mono:http://www.mono-project.com/Parallel_Mono_Environments]]
+
#code(sh,mono-master-env){{
+
#!/bin/bash
+
MONO_PREFIX=/opt/mono/master
+
export DYLD_LIBRARY_PATH=$MONO_PREFIX/lib:$DYLD_LIBRARY_PATH
+
export LD_LIBRARY_PATH=$MONO_PREFIX/lib:$LD_LIBRARY_PATH
+
export C_INCLUDE_PATH=$MONO_PREFIX/include
+
export ACLOCAL_PATH=$MONO_PREFIX/share/aclocal
+
export PKG_CONFIG_PATH=$MONO_PREFIX/lib/pkgconfig
+
PATH=$MONO_PREFIX/bin:$PATH
+
}}
+

          
+
まずmono -Vで既にインストールされているmonoが動作することを確認する。
+
#prompt{{
+
$ which mono
+
/usr/bin/mono
+
$ mono -V
+
Mono JIT compiler version 2.4.4 (Debian 2.4.4~svn151842-1ubuntu4)
+
Copyright (C) 2002-2010 Novell, Inc and Contributors. www.mono-project.com
+
	TLS:           __thread
+
	GC:            Included Boehm (with typed GC)
+
	SIGSEGV:       altstack
+
	Notifications: epoll
+
	Architecture:  x86
+
	Disabled:      none
+
}}
+

          
+
続いて、先ほど用意したスクリプトを読み込んだあとでmono -Vを実行し、新しくインストールしたmonoが動作することを確認する。
+
#prompt{{
+
$ source mono-master-env
+
$ which mono
+
/opt/mono/master/bin/mono
+
$ mono -V
+
Mono JIT compiler version 2.7.1 (master/f29ae1c 2010年  8月 16日 月曜日 21:36:04 JST)
+
Copyright (C) 2002-2010 Novell, Inc and Contributors. www.mono-project.com
+
	TLS:           __thread
+
	SIGSEGV:       altstack
+
	Notifications: epoll
+
	Architecture:  x86
+
	Disabled:      none
+
	Misc:          debugger softdebug 
+
	LLVM:          supported, not enabled.
+
	GC:            Included Boehm (with typed GC and Parallel Mark)
+
}}
+

          
+
***GAC
+
gacutil -lでアセンブリがGACに登録されていることを確認する。 GACのパスを明示的に指定する場合は-rootオプションで指定する(例えばgacutil2 -l -root /usr/lib/など)。
+
#prompt{{
+
$ gacutil2 -l 
+
The following assemblies are installed into the GAC:
+
  :
+
System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
System.ComponentModel.Composition, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
System.ComponentModel.DataAnnotations, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
+
System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
+
System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
System.Configuration.Install, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
System.Configuration.Install, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
  :
+
}}
+

          
+
***gmcs, dmcs
+
gmcs(2.0ランタイム用C#コンパイラ), dmcs(同4.0用)の動作を確認する。
+
#prompt{{
+
$ gmcs mono/mcs/tests/gtest-001.cs -out:test.exe && mono test.exe
+
$ dmcs mono/mcs/tests/dtest-001.cs -out:test.exe && mono test.exe
+
mono/mcs/tests/dtest-001.cs(17,24): warning CS0649: Field `C.a' is never assigned to, and will always have its default value `null'
+
mono/mcs/tests/dtest-001.cs(31,26): warning CS0649: Field `C.t' is never assigned to, and will always have its default value `null'
+
mono/mcs/tests/dtest-001.cs(32,27): warning CS0649: Field `C.t2' is never assigned to, and will always have its default value `null'
+
mono/mcs/tests/dtest-001.cs(33,46): warning CS0649: Field `C.v' is never assigned to, and will always have its default value `null'
+
Compilation succeeded - 4 warning(s)
+
ok
+
}}
+

          
+
***csharp(C#シェル)
+
csharpシェルが動作するか確認する。
+
#prompt{{
+
$ csharp
+
Mono C# Shell, type "help;" for help
+

          
+
Enter statements below.
+
csharp> Console.WriteLine(Environment.Version);
+
4.0.30319.1
+
csharp> Console.WriteLine(Environment.OSVersion);
+
Unix 2.6.32.24
+
csharp> quit;
+
}}
+

          
+
----
+

          
+
*その他のアセンブリ・ライブラリ
+
**gluezilla
+
依存するパッケージのインストール。
+
#code(sh){{
+
sudo apt-get install \
+
libgtk2.0-dev libnss3-dev libnspr4-dev xulrunner-dev
+
}}
+

          
+
ソースのチェックアウトとautogen、configure。
+
#code(sh){{
+
git clone git://github.com/mono/gluezilla.git
+
cd gluezilla/
+
./autogen.sh --prefix=/opt/mono/master/
+
}}
+

          
+
configureの結果例。
+
#prompt{{
+
checking Gtk+ 2.0... found
+
checking Mono... found
+
checking Mozilla NSPR... nspr
+
checking Mozilla NSS... nss
+
checking Mozilla XPCOM > 1.8... libxul-embedding-unstable
+
  :
+
Now type `make' to compile
+
}}
+

          
+
問題が無ければ、make、make installする。
+
#code(sh){{
+
make
+
sudo make install
+
}}
+

          
+
***gluezillaの動作テスト
+
gluezillaが動作するかテストしたい場合は、tests/browser/にあるテスト用のアプリケーションをビルド・起動して動作を確認できる。
+

          
+
まず、ldconfigでライブラリのリンク・キャッシュを再構成する。
+
#code(sh){{
+
sudo ldconfig
+

          
+
}}
+
次に、テスト用のMakefileで指定されているアセンブリ参照の誤りを修正する。
+
#prompt{{
+
$ cd tests/browser/
+
$ diff Makefile.org Makefile
+
348c348
+
< 	gmcs -debug -pkg:dotnet -r:Mono.Mozilla.dll -target:exe -out:$@ $(test_build_sources)
+
---
+
> 	gmcs -debug -pkg:dotnet -r:Mono.WebBrowser.dll -target:exe -out:$@ $(test_build_sources)
+
}}
+

          
+
修正後、make testでテスト用のアプリケーションが起動する。 起動するとウィンドウが開くので、アドレスバーに適当なURLを入れてページが表示されるか確認する。
+

          
+
**Mono.Addins
+
gtk-sharp-2.0が必要になるので、別途ビルドするかパッケージをインストールする。
+
#code(sh){{
+
sudo apt-get install gtk-sharp2
+
}}
+

          
+
ソースのチェックアウトとautogen、configure。
+
#code(sh){{
+
git clone git://github.com/mono/mono-addins.git
+
cd mono-addins/
+
./autogen.sh --prefix=/opt/mono/master/
+
}}
+

          
+
configureの結果例。
+
#prompt{{
+
Configuration summary
+

          
+
   * Installation prefix = /opt/mono/master
+
   * gui support: yes
+
   * unit tests: no
+
   * documentation: no
+
}}
+

          
+
問題が無ければ、make、make installする。
+
#code(sh){{
+
make
+
sudo make install
+
}}
+

          
+
**mono-tools
+
gtk-sharp-2.0, gnome-sharp(2.0または3.14)が必要になるので、別途ビルドするかパッケージをインストールする。
+
#code(sh){{
+
sudo apt-get install gtk-sharp2 gnome-sharp2
+
}}
+

          
+
また、オプションで以下のパッケージも参照されるので、必要ならインストールしておく。
+
-gecko-sharp
+
-gtkhtml-sharp
+
-webkit-sharp
+

          
+
ソースのチェックアウトとautogen、configure。
+
#code(sh){{
+
git clone git://github.com/mono/mono-tools.git
+
cd mono-tools/
+
./autogen.sh --prefix=/opt/mono/master/
+
}}
+

          
+
configureの結果例。
+
#prompt{{
+
---
+
Configuration summary
+

          
+
   * Installation prefix = /opt/mono/master
+
   * Using Gecko = no
+
   * Using GtkHtml = no
+
   * Using Mono.WebBrowser = yes
+
   * Using WebKit = no
+
   * Using Gnome = yes
+

          
+
      NOTE: if any of the above say 'no' you may install the
+
            corresponding development packages for them, rerun
+
            autogen.sh to include them in the build.
+
}}
+

          
+
問題が無ければ、make、make installする。
+
#code(sh){{
+
make
+
sudo make install
+
}}
+

          
+
**mono-debugger
+
作成中。
+
#commentout{{{
+
依存するパッケージのインストール。
+
#code(sh){{
+
sudo apt-get install libncurses5-dev
+
}}
+

          
+
ソースのチェックアウトとautogen、configure。
+
#code(sh){{
+
git clone git://github.com/mono/debugger.git
+
cd debugger/
+
./autogen.sh --prefix=/opt/mono/master/
+
}}
+

          
+
configureの結果に問題が無ければ、make、make installする。
+
#code(sh){{
+
make
+
sudo make install
+
}}
+
}}}

programming/mono/install_trunk/index.wiki.txt

current previous
4,7 4,6
 

        

        
 
-関連するページ
-関連するページ
 
--[[programming/mono]]
--[[programming/mono]]
+
--[[programming/mono/install_from_git-master]]
 

        

        
 
ここで紹介する手順はMono本体といくつかのアセンブリをインストールするためのもの。 ディストリビューションが提供しているバージョンのMonoと共存できるようにするため、/opt/mono/trunkにインストールする。
ここで紹介する手順はMono本体といくつかのアセンブリをインストールするためのもの。 ディストリビューションが提供しているバージョンのMonoと共存できるようにするため、/opt/mono/trunkにインストールする。
 

        

        

programming/mono/install_2.6/index.wiki.txt

current previous
6,7 6,6
 
--[[Release Notes Mono 2.6 - Mono:http://www.mono-project.com/Release_Notes_Mono_2.6]]
--[[Release Notes Mono 2.6 - Mono:http://www.mono-project.com/Release_Notes_Mono_2.6]]
 
--[[Download - Mono:http://www.go-mono.com/mono-downloads/download.html]]
--[[Download - Mono:http://www.go-mono.com/mono-downloads/download.html]]
 
-関連するページ
-関連するページ
+
--[[programming/mono/install_from_git-master]]
 
--[[programming/mono/install_trunk]]
--[[programming/mono/install_trunk]]
 
--[[programming/mono]]
--[[programming/mono]]