MonoDevelop 5.0をソースからビルドしてインストールする手順。 検証に使った環境はUbuntu 14.04 LTS 64bit。
以下の手順では/opt/mono/3.12/
にMonoがインストールされているものとし、またMonoDevelopのインストール先も/opt/mono/3.12/
としている。
MonoDevelopが必要とするアセンブリのインストール
MonoDevelopが必要とするアセンブリをあらかじめインストールしておく。 必要になるものは以下のアセンブリ。
- Mono
- gtk-sharp
- gecko-sharp
各アセンブリのインストール方法についてはMono 3.12 のビルド・インストールなどを参照のこと。
ソースのダウンロードとconfigure
tarballの場合
wget http://download.mono-project.com/sources/monodevelop/monodevelop-5.7.0.660.tar.bz2
tar -xvf ./monodevelop-5.7.0.660.tar.bz2
cd monodevelop-5.7/
./configure --prefix=/opt/mono/3.12/ --enable-git
configureの結果を確認する。
Configuration summary * Installation prefix = /opt/mono/3.12 * Version = 5.7 * Version Label = 5.7 * Compat Version = 5.0 * C# compiler = /opt/mono/3.12/bin/dmcs * Mono class library development extensions: yes * Version control providers: * Subversion (Unix): yes * Git: yes * Platform bindings: GNOME * Unit tests: no
MonoDevelop 5.7, NUnitTestRunner.csのビルドで失敗する場合
ビルド前に、以下で紹介されている手順でNUnitのバイナリを用意しておく必要がある。
cd monodevelop-5.7/
mkdir temp
pushd temp
# MonoDevelopのビルド時に必要となるNUnit 2.6バイナリをダウンロードしてソースツリーに配置する
wget https://launchpadlibrarian.net/153448659/NUnit-2.6.3.zip
unzip NUnit-2.6.3.zip
mkdir -p ../packages/NUnit.2.6.3/lib
cp -fR NUnit-2.6.3/bin/framework/* ../packages/NUnit.2.6.3/lib
mkdir -p ../packages/NUnit.Runners.2.6.3/tools/lib
cp -fR NUnit-2.6.3/bin/lib/* ../packages/NUnit.Runners.2.6.3/tools/lib
# cecilのビルド時に必要となるNUnit 2.5バイナリをダウンロードしてソースツリーに配置する
wget https://launchpadlibrarian.net/68057829/NUnit-2.5.10.11092.zip
unzip NUnit-2.5.10.11092.zip
cp -fR NUnit-2.5.10.11092/bin/net-2.0/framework/* ../external/cecil/Test/libs/nunit-2.5.10
# nugetバイナリをソースツリーに配置する
git clone https://github.com/mono/nuget-binary.git
cp -fR nuget-binary/* ../external/nuget-binary/
popd
こののち、configure
, make
する。
gitからソースを取得する場合
git clone git://github.com/mono/monodevelop.git
cd monodevelop/
--selectオプションをつけて./configureを実行し、ビルドするアドインを選択/解除する。
$ ./configure --prefix=/opt/mono/3.6/ --select Select the packages to include in the build for the profile 'default': 1. [X] main 2. [ ] extras/JavaBinding 3. [ ] extras/ValaBinding 4. [ ] extras/MonoDevelop.Database 5. [ ] extras/PyBinding 6. [ ] extras/MonoDevelop.MeeGo Enter the number of an add-in to enable/disable, (q) quit, (c) clear all, (s) select all, or ENTER to continue: Configuring package: main ------------------------- : : :
configureの結果を確認する。
Configuration summary * Installation prefix = /opt/mono/3.6 * Version = 5.2 * Version Label = 5.2 * Compat Version = 5.0 * C# compiler = /opt/mono/3.6/bin/dmcs * Mono class library development extensions: yes * Version control providers: * Subversion (Unix): yes * Git: yes * Platform bindings: GNOME * Unit tests: no Now type `make' to compile MonoDevelop Configuration Summary --------------------- MonoDevelop has been configured with prefix = /opt/mono/3.6/ profile = default Packages included in the build: main
ビルド、起動
問題が無ければ、makeする。
make
試用したい場合など、ビルドしたものをインストールせずに実行したい場合は、make run
するとMonoDevelopが起動する。
make run
起動時に次のようなエラーが発生する場合は、gtk-sharp-2.0のソースを修正する必要がある。 対処法:Mono 3.8 のビルド・インストール §."symbol lookup error"が発生する場合の対処
monodevelop: symbol lookup error: /opt/mono/2.11/lib/libglibsharpglue-2.so: undefined symbol: g_thread_supported
インストールするには、make installする。
sudo make install
NUnitアセンブリの参照の修正
MonoDevelopで単体テストをビルド・実行できない場合がある。 これはMonoDevelopがMonoに同梱されている"mono-nunit"を参照してしまうことが原因。 "nunit 2.4 (Provided by MonoDevelop)"を参照している場合でも、ビルド時には"mono-nunit"が参照されてしまう。 "mono-nunit"はバージョンが2.4.8と古いため、新しいバージョンのNUnit用に書かれたテストコードはビルドに失敗する。
この問題が発生する場合は、pkgconfigを書き換え、MonoDevelopに同梱されているNUnitアセンブリを参照するようにすることで回避できる。
cd /opt/mono/3.8/lib/pkgconfig/
cp mono-nunit.pc mono-nunit.pc.bak
sed "s/mono\/2.0/monodevelop\/AddIns\/NUnit/g" mono-nunit.pc.bak > mono-nunit.pc