LoginSignup
6
7

More than 5 years have passed since last update.

Using MonoDevelop on CentOS7

Last updated at Posted at 2014-07-10

Problem

ドはまりポイントが多々あるので,自分用にメモっておきます。
というか明らかにOpenSuSEなりUbuntuでやったほうがいい。あっちならパッケージもあるし。

環境

CentOS-7.0-1406-x86_64
GnomeDesktop + 基本開発環境パッケージをインストール
gcc gcc-c++ libtool bison autoconf automakeが含まれる
アップデートはかけておく

For CentOS6.5 (14/07/14追記)

6.5でインストールされているautoconf, automake, pkg-configはかなり古く,monodevelopがビルドできません。
rpm -e --nodeps でパッケージのみ削除して,ソースを落としてきてmake installしてください。
あとgitは1.8移行が必要になるので,これも同様に。

Mono

方針

Mono 3.4.0をビルド→Githubからクローン→最新をビルド
githubのをビルドするにはMonoが必要なので。

手順

pre
cd /usr/src
wget http://download.mono-project.com/sources/mono/mono-3.4.0.tar.bz2
tar xjf mono-3.4.0.tar.bz2
cd mono-3.4.0/

アーカイブにはtargetsファイルが不足しているので,作っておく。
githubのクローンから同じファイルをコピーしてもよい。

mcs/tools/xbuild/targets/Microsoft.Portable.Common.targets
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Import Project="..\Microsoft.Portable.Core.props" />
    <Import Project="..\Microsoft.Portable.Core.targets" />
</Project>
make
./autogen --prefix=/usr
make && make install

libgdiplus

曲者。

手順

libgdiplus
yum install glib2-devel libX11-devel pixman-devel fontconfig-devel freetype-devel libexif-devel libjpeg-devel libtiff-devel libpng-devel giflib-devel

wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.9.tar.bz2
tar xjf libgdiplus-2.10.9.tar.bz2
cd libgdiplus-2.10.9

ここでsrc/pngcodec.cを下記を参考に修正。
https://bugzilla.xamarin.com/show_bug.cgi?id=1632

configure
export echo=echo
./configure --prefix=/usr

export echo=echo 大事。
さらにtests/Makefileの130行目を以下のように修正。

LIBS = -lpthread -lfontconfig -lglib-2.0 -lX11
make
make && make install

Gtk-sharp

githubからクローンするとGtk3系が対象になっている。MonoDevelopで必要なのはGtk2系なので,アーカイブからビルドする。

手順

gtk-sharp
yum install gtk2-devel libglade2-devel
wget http://download.mono-project.com/sources/gtk-sharp212/gtk-sharp-2.12.21.tar.gz
tar xf gtk-sharp-2.12.21.tar.gz
cd gtk-sharp-2.12.21

ここでPKG_CONFIG_PATH環境変数にプレフィックスを/usrにしたMonoへのパスを通す。

make
echo export PKG_CONFIG_PATH=/usr/lib/pkgconfig:$PKG_CONFIG_PATH>>~/.bash_profile
source ~/.bash_profile

./configure --prefix=/usr
make && make install

Gnome-sharp

うーむ。

手順

pre
yum install pango-devel atk-devel libgnome-devel libgnomecanvas-devel libgnomeui-devel git svn libtool

git clone git://github.com/mono/gnome-sharp
cd gnome-sharp

このままmakeしても成功しない。/usr/bin/gapi2-fixup, /usr/bin/gapi2-codegen をviで開いて,:set ff? の結果が fileformat=DOS になっていたら,

ff
:set fileformat=unix
:wq

と操作する。

make
./bootstrap-2.24 --prefix=/usr
make && make install

Mono Addins

make
git clone git://github.com/mono/mono-addins
cd mono-addins

./autogen.sh --prefix=usr
make && make install

MonoDevelop

やっとたどりついた。

手順

make
git clone git://github.com/mono/monodevelop
cd monodevelop

./configure --prefix=/usr --profile=stable
make && make install

Results

Screen Shot 2014-07-10 at 18.02.24.png

補足 (14/7/11 追記)

/tmp/nuget ディレクトリに書き込み権限を設定しておかないと,一般ユーザーで使うときにNuGetが使えません。chmod 777でOKです。

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7