CentOS 7にMonoDevelopをインストールする

提供: MonoBook
ナビゲーションに移動 検索に移動

CentOS 7MonoDevelopをインストールする手順を忘れないようにメモしておく。 CentOSを含むRHEL系とMonoの組み合わせはUbuntuSuSEのように一発ではいかない苦難の道である。 しかしサーバーの世界ではRHELは避けては通れないという。 難しい問題だ。

手順

Monoのリポジトリを追加する

この手順は公式サイトにある通りである[1]

準備

yum install yum-utils

プロキシ不要な場合。

rpm --import "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF"

プロキシが必要な場合。yumは/etc/yum.confでプロキシ設定するがrpmは別途コマンドラインで指定する必要がある。

rpm --httpproxy x.x.x.x --httpport xxxx --import "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF"

リポジトリ追加

yum-config-manager --add-repo http://download.mono-project.com/repo/centos/

EPELのリポジトリを追加する

GTK#やGNOME#などのMono公式ライブラリはなぜかEPELにある。 これに気がつくのに小一時間ほど悩んだ。

yum install epel-release

同じくNuGetもEPELにある。パッケージ復元なんかで必要になる。

yum install nuget

mono関連をぶち込む

mono本体などのコマンドラインツール群を入れる。

yum install mono-complete

MonoDevelopをぶち込む

前述のEPELのリポジトリを追加していないとここでエラーになる。

yum install monodevelop

MonoDevelopの起動スクリプトを書き換える

GNOMEを使っている場合は「GNOME_DESKTOP_SESSION_ID」という環境変数が悪さをしてコンソールアプリのデバッグ実行が失敗する。 「/usr/bin/monodevelop」はシェルスクリプトなので、2行目あたりに以下の一文を追加することで回避することができる。

unset GNOME_DESKTOP_SESSION_ID

xtermをぶち込む

xtermはMonoDevelopでコンソールアプリをデバッグ実行する際に必要となる。 gnome-terminalにxtermという名前のシンボリックリンクを貼ってみたが動かない。引数に互換性がないようだ。

yum install xterm

レジストリ保存ディレクトリを作る

初期状態ではレジストリっぽいものを保存するディレクトリがないようだ。 このディレクトリが存在しないとMonoDevelopでASP.NETプロジェクトなどをデバッグ実行した際にエラーになる。

sudo mkdir /etc/mono/registry
sudo chmod uog+rw /etc/mono/registry/

関連項目

参考文献