インストール - Mono(SUSE)

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動

概要

ここでは、MonoDevelop IDEをインストールして開始する方法を記載する。
また、MonoDevelopを使用すると、Linux、Windows、Mac OS XでデスクトップおよびWebアプリケーションを作成できる。
さらに、MonoDevelopにより、開発者はVisual Studioで作成された.NETアプリケーションをLinuxおよびMac OS Xに簡単に移植でき、
全てのプラットフォームで単一のコードベースを維持できる。


Mono Completeのインストール

パッケージ管理システムからインストール

sudo zypper install mono-complete mono-addins-msbuild
                    patterns-devel-mono-devel_mono  # Monoに関連する全てのパッケージをインストールする場合


リポジトリを追加してインストール

SUSEソフトウェアセンターからMono Completeのリポジトリを追加して、インストールする。
ただし、これは有志が作成しているリポジトリのため、自己責任であることに注意する。


※注意
SUSEの公式リポジトリを追加して、より新しいMono Completeをインストールすることもできる。
ただし、現在 (2024/01) は、最新のSUSE向けのパッケージが削除されていることに注意する。

# SLE 15 SP1のみ
sudo zypper ar -cfp 90 https://download.opensuse.org/repositories/Mono/SLE_15_SP1/ Mono


ソースコードからインストール

Monoの公式Webサイトに記載されている方法で、ソースコードからコンパイルしてインストールする。

まず、Monoのビルドに必要なライブラリをインストールする。

sudo zypper install git autoconf libtool automake gettext cmake python3 curl


次に、Monoの公式Webサイトからソースコードをダウンロードして解凍する。

 tar xf mono-<バージョン名>.tar.xz


git cloneコマンドを実行して、Monoのソースコードをダウンロードすることもできる。

git clone --recursive https://github.com/mono/mono.git
cd mono
git submodule update --init --recursive


Monoをビルドおよびインストールする。
この時、ビルドディレクトリは作成しないこと。(ビルドディレクトリを作成してビルドする場合、configureスクリプトでエラーが出力される)

cd mono-<バージョン名>

# Tarballの場合
./configure --prefix=<Monoのインストールディレクトリ> \
            --with-profile4=yes \
            --with-core         \  # .NET Coreを有効にする場合
            --with-x               # X11を使用する場合

# Gitからソースコードをダウンロードした場合
./autogen.sh --prefix=<Monoのインストールディレクトリ> \
            --with-profile4=yes \
            --with-core         \  # .NET Coreを有効にする場合
            --with-x               # X11を使用する場合

make -j $(nproc)
make install


ビルドの詳細を知りたい場合は、Monoの公式Webサイトを参照すること。

※注意
Gitからソースコードをダウンロードしてコンパイルする場合、C#コンパイラが必要なため、既にMonoがインストールされている必要がある。
パッケージ管理システムでMonoをインストールした後、GitからMonoのソースコードをダウンロードしてコンパイルする。

ビルドテスト

ビルドテストを行う場合、make -j $(nproc) checkコマンドを実行する。
また、Mono-test-installスクリプトファイルを実行して、Monoのインストールに関連する問題を診断することもできる。

scripts/mono-test-install


上記のコマンドを実行した時、以下に示すようなエラーが出力される場合がある。

Your system has a broken System.Drawing setup


この時、libgdiplusパッケージをインストールする。

sudo zypper install libgdiplus0 libgdiplus-devel


<onoがSystem.Drawingが壊れていると結論づけた原因となったエラーメッセージを見るために、このプロセスを手動で行うことができる。

 // <C#のソースコードファイル名>.cs
 
 using System;
 using System.Drawing;
 
 class X { 
    static void Main ()
    {
       Bitmap b = new Bitmap (100, 100);
    }
 }


# ビルド
mcs -pkg:dotnet <C#のソースコードファイル名>.cs

# 実行
mono <C#の実行ファイル名>.exe



Mono Developのインストール

パッケージ管理システムからインストール

現在 (2024/01現在) 、SUSEではパッケージ管理システムからMono Developが削除されている。

リポジトリを追加してインストール

現在 (2024/01現在) 、SUSEソフトウェアセンターではopenSUSE TWのみMono Developのリポジトリが存在する。

ソースコードからインストール

Mono Developは、2019年に開発が止まっている。

Mono Developの公式Webサイトにアクセスして、ソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。

tar xf monodevelop-<バージョン>.tar.bz2


また、Mono DevelopのGithubからソースコードをダウンロードすることもできる。
Githubからソースコードをダウンロードした場合は、リポジトリに含まれるサブモジュールを初期化する必要がある。
(Mono Developのリポジトリは、2021年10月5日にアーカイブされており、現在は読み取り専用となっている)

git clone https://github.com/mono/monodevelop.git
cd  monodevelop
git submodule update --init --recursive


Mono Developをビルドおよびインストールする。

mkdir monobuild && cd monobuild

../configure --prefix=<Mono Developのインストールディレクトリ>
             --enable-gnomeplatform  # DEがGNOMEの場合
             --enable-git            # Gitを有効にする場合 
make -j $(nproc)
make install


Mono Developのデスクトップエントリファイルを作成する。

vi ~/.local/share/applications/MonoDevelop.desktop


 # ~/.local/share/applications/MonoDevelop.desktopファイル
 
 [Desktop Entry]
 Version=1.0
 Encoding=UTF-8
 Type=Application
 Name=MonoDevelop
 GenericName=Integrated Development Environment
 GenericName[ja]=統合開発環境
 Comment=Develop .NET applications in an Integrated Development Environment
 Comment[ja]=.NETアプリケーション開発を行うための統合開発環境
 TryExec=/<Mono Developのインストールディレクトリ>/bin/monodevelop
 Exec=/<Mono Developのインストールディレクトリ>/bin/monodevelop %F
 Icon=monodevelop
 Categories=GNOME;GTK;Development;IDE;
 MimeType=text/x-csharp;application/x-mds;application/x-mdp;application/x-cmbx;application/x-prjx;application/x-csproj;application/x-vbproj;application/x-sln;application/x-aspx;
 StartupNotify=true
 Terminal=false
 X-GNOME-Bugzilla-Bugzilla=Ximian
 X-GNOME-Bugzilla-Product=MonoDevelop
 X-GNOME-Bugzilla-OtherBinaries=monodevelop



Monoコマンド

実行ファイルのコンパイル

mcs -pkg:dotnet <C#のソースファイル名>.cs

# デバッグ情報を付加する場合
mcs -pkg:dotnet -debug+ <C#のソースファイル名>.cs


ライブラリのコンパイル

mcs -pkg:dotnet -target:library <C#のソースファイル名>.cs

# デバッグ情報を付加する場合
mcs -pkg:dotnet -target:library -debug+ <C#のソースファイル名>.cs



エラー

Riderとの連携

Riderを使用する場合、Monoの環境を取得できない不具合が存在する。
この時、~/.profileファイル等に、環境変数FrameworkPathOverrideを設定する必要がある。

 export FrameworkPathOverride="/usr/lib/mono/<Monoのバージョン  例: 4.5>"