2013-09-24T14:12:59の更新内容

programming/mono/build_install/mono-3.2/index.wiki.txt

current previous
1,8 1,9
~
${smdncms:title,Mono 3.2 のビルド・インストール}
${smdncms:title,Mono 3.0 のビルド・インストール}
~
${smdncms:keywords,Mono 3.2,Ubuntu 12.04}
${smdncms:keywords,Mono 3.0,Ubuntu 12.04}
~
[[Mono 3.2:http://www.mono-project.com/Main_Page]]をソースからビルドしてインストールする手順。 検証に使った環境はUbuntu 12.04 (Precise Pangolin)。
[[Mono 3.0:http://www.mono-project.com/Main_Page]]をソースからビルドしてインストールする手順。 検証に使った環境はUbuntu 12.04 (Precise Pangolin)。
 

        

        
 
-リンク
-リンク
-
--[[Release Notes Mono 3.0 - Mono:http://www.mono-project.com/Release_Notes_Mono_3.0]]
 
--[[Release Notes Mono 3.2 - Mono:http://www.mono-project.com/Release_Notes_Mono_3.2]]
--[[Release Notes Mono 3.2 - Mono:http://www.mono-project.com/Release_Notes_Mono_3.2]]
 
--[[Download - Mono:http://www.go-mono.com/mono-downloads/download.html]]
--[[Download - Mono:http://www.go-mono.com/mono-downloads/download.html]]
 
-関連するページ
-関連するページ
11,7 12,7
 
--[[programming/mono/build_install]]
--[[programming/mono/build_install]]
 

        

        
 
//ここで紹介する手順は[[MonoDevelop 3.0>programming/mono/build_install/monodevelop-3.0]]を動作させるために必要なアセンブリ一式をインストールするためのもの。
//ここで紹介する手順は[[MonoDevelop 3.0>programming/mono/build_install/monodevelop-3.0]]を動作させるために必要なアセンブリ一式をインストールするためのもの。
~
ディストリビューションが提供しているバージョンのMonoと共存できるようにするため、/opt/mono/3.2にインストールする。
ディストリビューションが提供しているバージョンのMonoと共存できるようにするため、/opt/mono/3.0にインストールする。
 

        

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

        

        
28,13 29,13
 
}}
}}
 

        

        
 
**ソースのダウンロードとconfigure
**ソースのダウンロードとconfigure
~
Mono 3.2リリース時点では3.2にバージョン付けされたlibgdiplusはリリースされていないため、現時点で最新の2.10.9を使用する。
Mono 3.0リリース時点では3.0にバージョン付けされたlibgdiplusはリリースされていないため、現時点で最新の2.10.9を使用する。
 

        

        
 
#code(sh){{
#code(sh){{
 
wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.9.tar.bz2
wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.9.tar.bz2
 
tar -xvf libgdiplus-2.10.9.tar.bz2 
tar -xvf libgdiplus-2.10.9.tar.bz2 
 
cd libgdiplus-2.10.9/
cd libgdiplus-2.10.9/
~
./configure --prefix=/opt/mono/3.2/
./configure --prefix=/opt/mono/3.0/
 
}}
}}
 

        

        
 
configureの結果例。
configureの結果例。
42,7 43,7
 
---
---
 
Configuration summary
Configuration summary
 

        

        
~
   * Installation prefix = /opt/mono/3.2
   * Installation prefix = /opt/mono/3.0
 
   * Cairo = 1.10.2 (system)
   * Cairo = 1.10.2 (system)
 
   * Text = cairo
   * Text = cairo
 
   * EXIF tags = yes
   * EXIF tags = yes
69,7 70,7
 

        

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

        

        
 
*Mono本体(コンパイラ、クラスライブラリ)
*Mono本体(コンパイラ、クラスライブラリ)
81,10 82,10
 

        

        
 
**ソースのダウンロードとconfigure
**ソースのダウンロードとconfigure
 
#code(sh){{
#code(sh){{
~
wget http://download.mono-project.com/sources/mono/mono-3.2.3.tar.bz2
wget http://download.mono-project.com/sources/mono/mono-3.2.0.tar.bz2
~
tar -xvf ./mono-3.2.3.tar.bz2
tar -xvf ./mono-3.2.0.tar.bz2 
~
cd mono-3.2.3/
cd mono-3.2.0/
~
./configure --prefix=/opt/mono/3.2/ --with-libgdiplus=installed --with-ikvm-native=no --with-moonlight=no --with-monotouch=no --with-monodroid=no --with-mobile=no --with-mcs-docs=no --with-x
./configure --prefix=/opt/mono/3.0/ --with-libgdiplus=installed --with-ikvm-native=no --with-moonlight=no --with-monotouch=no --with-monodroid=no --with-mobile=no --with-mcs-docs=no --with-x
 
}}
}}
 

        

        
 
configureの結果例。
configureの結果例。
134,9 135,9
 
参考までに、Core 2 Duo E6600を積んだマシンを使用してmakeに掛かった時間は以下のとおり。
参考までに、Core 2 Duo E6600を積んだマシンを使用してmakeに掛かった時間は以下のとおり。
 
#prompt{{
#prompt{{
 
$ time make
$ time make
~
real	25m30.211s
real	23m32.748s
~
user	20m2.259s
user	19m50.422s
~
sys	1m21.809s
sys	1m19.909s
 
}}
}}
 

        

        
 
-コンパイルに関するドキュメント
-コンパイルに関するドキュメント
147,7 148,7
 
mono -Vでmonoが動作することを確認する。
mono -Vでmonoが動作することを確認する。
 
#prompt{{
#prompt{{
 
$ mono -V
$ mono -V
~
Mono JIT compiler version 3.2.3 (tarball 2013年  9月 24日 火曜日 13:46:42 JST)
Mono JIT compiler version 3.2.0 (tarball 2013年  8月  2日 金曜日 00:11:49 JST)
 
Copyright (C) 2002-2012 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
Copyright (C) 2002-2012 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
 
	TLS:           __thread
	TLS:           __thread
 
	SIGSEGV:       altstack
	SIGSEGV:       altstack
161,9 162,9
 

        

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

        

        
 
続いて、先ほど用意したスクリプトを読み込んだあとでmono -Vを実行し、新しくインストールしたmonoが動作することを確認する。
続いて、先ほど用意したスクリプトを読み込んだあとでmono -Vを実行し、新しくインストールしたmonoが動作することを確認する。
 
#prompt{{
#prompt{{
~
$ source mono-3.2-env
$ source mono-3.0-env
 
$ which mono
$ which mono
~
/opt/mono/3.2/bin/mono
/opt/mono/3.0/bin/mono
 
$ mono -V
$ mono -V
~
Mono JIT compiler version 3.2.3 (tarball 2013年  9月 24日 火曜日 13:46:42 JST)
Mono JIT compiler version 3.2.0 (tarball 2013年  8月  2日 金曜日 00:11:49 JST)
 
Copyright (C) 2002-2012 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
Copyright (C) 2002-2012 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
 
	TLS:           __thread
	TLS:           __thread
 
	SIGSEGV:       altstack
	SIGSEGV:       altstack
208,7 209,7
 
}}
}}
 

        

        
 
***GAC
***GAC
~
gacutil2 -lでアセンブリがGACに登録されていることを確認する。 GACのパスを明示的に指定する場合は-rootオプションで指定する(例えばgacutil2 -l -root /opt/mono/3.2/lib/など)。
gacutil2 -lでアセンブリがGACに登録されていることを確認する。 GACのパスを明示的に指定する場合は-rootオプションで指定する(例えばgacutil2 -l -root /opt/mono/3.0/lib/など)。
 
#prompt{{
#prompt{{
 
$ gacutil2 -l 
$ gacutil2 -l 
 
The following assemblies are installed into the GAC:
The following assemblies are installed into the GAC:
267,7 268,7
 
$ csharp -e 'Environment.Version;'
$ csharp -e 'Environment.Version;'
 
4.0.30319.17020
4.0.30319.17020
 
$ csharp -e 'Environment.OSVersion;'
$ csharp -e 'Environment.OSVersion;'
~
Unix 3.2.0.53
Unix 3.2.0.32
 
$ csharp
$ csharp
 
Mono C# Shell, type "help;" for help
Mono C# Shell, type "help;" for help
 

        

        
300,7 301,7
 
wget http://download.mono-project.com/sources/gtk-sharp212/gtk-sharp-2.12.11.tar.bz2
wget http://download.mono-project.com/sources/gtk-sharp212/gtk-sharp-2.12.11.tar.bz2
 
tar -xvf gtk-sharp-2.12.11.tar.bz2 
tar -xvf gtk-sharp-2.12.11.tar.bz2 
 
cd gtk-sharp-2.12.11/
cd gtk-sharp-2.12.11/
~
./configure --prefix=/opt/mono/3.2/
./configure --prefix=/opt/mono/3.0/
 
}}
}}
 

        

        
 
configureの結果例。
configureの結果例。
342,7 343,7
 
wget http://download.mono-project.com/sources/mono-addins/mono-addins-0.6.2.tar.bz2
wget http://download.mono-project.com/sources/mono-addins/mono-addins-0.6.2.tar.bz2
 
tar -xvf mono-addins-0.6.2.tar.bz2 
tar -xvf mono-addins-0.6.2.tar.bz2 
 
cd mono-addins-0.6.2/
cd mono-addins-0.6.2/
~
./configure --prefix=/opt/mono/3.2/
./configure --prefix=/opt/mono/3.0/
 
}}
}}
 

        

        
 
configureの結果例。
configureの結果例。
376,7 377,7
 
wget http://download.mono-project.com/sources/gnome-sharp2/gnome-sharp-2.24.1.tar.bz2
wget http://download.mono-project.com/sources/gnome-sharp2/gnome-sharp-2.24.1.tar.bz2
 
tar -xvf gnome-sharp-2.24.1.tar.bz2
tar -xvf gnome-sharp-2.24.1.tar.bz2
 
cd gnome-sharp-2.24.1/
cd gnome-sharp-2.24.1/
~
./configure --prefix=/opt/mono/3.2/
./configure --prefix=/opt/mono/3.0/
 
}}
}}
 

        

        
 
configureの結果例。
configureの結果例。
431,7 432,7
 
wget http://download.mono-project.com/sources/gecko-sharp2/gecko-sharp-2.0-0.13.tar.bz2
wget http://download.mono-project.com/sources/gecko-sharp2/gecko-sharp-2.0-0.13.tar.bz2
 
tar -xvf gecko-sharp-2.0-0.13.tar.bz2
tar -xvf gecko-sharp-2.0-0.13.tar.bz2
 
cd gecko-sharp-2.0-0.13/
cd gecko-sharp-2.0-0.13/
~
./configure --prefix=/opt/mono/3.2/
./configure --prefix=/opt/mono/3.0/
 
}}
}}
 

        

        
 
configureの結果例。
configureの結果例。
469,7 470,7
 
wget http://download.mono-project.com/sources/gnome-desktop-sharp2/gnome-desktop-sharp-2.24.0.tar.bz2
wget http://download.mono-project.com/sources/gnome-desktop-sharp2/gnome-desktop-sharp-2.24.0.tar.bz2
 
tar -xvf gnome-desktop-sharp-2.24.0.tar.bz2
tar -xvf gnome-desktop-sharp-2.24.0.tar.bz2
 
cd gnome-desktop-sharp-2.24.0/
cd gnome-desktop-sharp-2.24.0/
~
./configure --prefix=/opt/mono/3.2/
./configure --prefix=/opt/mono/3.0/
 
}}
}}
 

        

        
 
configureの結果例。
configureの結果例。