【自己責任でお願いします】centOS monoファイルをインストール。

2018年10月12日

“centOS" に “c#" を入れ見たいと思い “mono" ファイルをインストールしてみました。
インストールは出来ましたが・・・これが正しいやり方なのか・・・解りません。
このやり方でのインストールは、自己責任でお願いします。
今回は、"checkinstall" 使用します。

【開発環境】
・さくらVPS 2G HDD200
・CentOS release 6.6 (Final) 64ビット版

【前提条件】
・checkinstall をインストールしていることを前提とします。

1.必要なファイルをインストールします。

[user@localhost] yum -y install gcc gcc-c++ bison pkgconfig glibc-devel glib2-devel libX11 libX11-devel libpng-devel giflib giflib-devel libjpeg-devel libtiff-devel libexif-devel httpd-devel cairo-devel gettext make

2.ソースコードの取得とコンパイル・ビルド インストールする。
2.1 libgdiplus をダウンロードする。
libgdiplus-3.12.tar.gz (2015-02-13 現在)

[user@localhost] wget http://origin-download.mono-project.com/sources/libgdiplus/libgdiplus-3.12.tar.gz

2.2 解凍して、解凍先のディレクトリに移動する。

[user@localhost] tar jxvf libgdiplus-3.12.tar.gz
[user@localhost] cd libgdiplus-3.12

2.3 configure を行う。

[user@localhost] ./configure --enable-win64

2.4 makeを行う。

[user@localhost] make

3分ぐらい掛かったと思われます。

 

2.5 checkinstallを行う。

[user@localhost] checkinstall

RPMパッケージに生成する。
エラーが無い限り、rpmファイルが出来ると思われます。

3. mono本体をインストールを行う。
3.1 本体をダウンロードします。
※mono-3.12.0.tar.bz2 (2015-02-13 現在)

[user@localhost] wget http://download.mono-project.com/sources/mono/mono-3.12.0.tar.bz2

3.2 解凍して、解凍先のディレクトリに移動する。

[user@localhost] tar jxvf mono-3.12.0.tar.bz2
[user@localhost] cd mono-3.12.0

3.3 configure を行う。

[user@localhost] ./configure --enable-win64

数秒程度で完了するかと思います。

3.4 make を行う。

[user@localhost] make

自分の場合は・・・15分ぐらい掛かりました。

3.5 checkinstall を行う。

[user@localhost] checkinstall
checkinstall 1.6.3, Copyright 2010 Felipe Eduardo Sanchez Diaz Duran
           このソフトウェアはGNU GPLの下でリリースしています。

The checkinstallrc file was not found at:
/usr/local/lib/checkinstall/checkinstallrc

デフォルトの内容を使うものとします

The package documentation directory ./doc-pak does not exist.
Should I create a default set of package docs?  [y]: y

パッケージのドキュメンテーションを準備..OK

使用するパッケージ方式を選んでください。
Slackwareなら[S], RPMなら[R], Debianなら[D]を入力R


このパッケージの説明を書いてください
説明の末尾は空行かEOFにしてください。
>>

**************************************
**** RPM package creation selected ***
**************************************

このパッケージは以下の内容で構成されます:

1 -  Summary: [ Package created with checkinstall 1.6.3 ]
2 -  Name:    [ mono ]
3 -  Version: [ 3.12.0 ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ Applications/System ]
7 -  Architecture: [ x86_64 ]
8 -  Source location: [ mono-3.12.0 ]
9 -  Alternate source location: [  ]
10 - Requires: [  ]
11 - Provides: [ mono ]

変更するものの番号を入力してください。Enterで続行します:

Installing with make install...
   :
      :
      :

実行を行うと・・・エラーが起きます。

【エラー内容】

===省く~~~
/usr/bin/install -c -c -m 755 ./../../class/lib/net_4_5/mod.exe /usr/local/lib/mono/4.5
test ! -f ./../../class/lib/net_4_5/mod.exe.mdb || /usr/bin/install -c -c -m 755 ./../../class/lib/net_4_5/mod.exe.mdb /usr/local/lib/mono/4.5
test ! -f mod.exe.so || /usr/bin/install -c -c -m 755 mod.exe.so /usr/local/lib/mono/4.5
make[7]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools/mod' から出ます
make[6]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools/mod' から出ます
make[6]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools/installvst' に入ります
make install-local
make[7]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools/installvst' に入ります
/bin/sh ./../../mkinstalldirs /usr/local/lib/mono/4.5
/usr/bin/install -c -c -m 755 ./../../class/lib/net_4_5/installvst.exe /usr/local/lib/mono/4.5
test ! -f ./../../class/lib/net_4_5/installvst.exe.mdb || /usr/bin/install -c -c -m 755 ./../../class/lib/net_4_5/installvst.exe.mdb /usr/local/lib/mono/4.5
test ! -f installvst.exe.so || /usr/bin/install -c -c -m 755 installvst.exe.so /usr/local/lib/mono/4.5
make[7]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools/installvst' から出ます
make[6]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools/installvst' から出ます
make[6]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools/lc' に入ります
make install-local
make[7]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools/lc' に入ります
/bin/sh ./../../mkinstalldirs /usr/local/lib/mono/4.5
/usr/bin/install -c -c -m 755 ./../../class/lib/net_4_5/lc.exe /usr/local/lib/mono/4.5
test ! -f ./../../class/lib/net_4_5/lc.exe.mdb || /usr/bin/install -c -c -m 755 ./../../class/lib/net_4_5/lc.exe.mdb /usr/local/lib/mono/4.5
test ! -f lc.exe.so || /usr/bin/install -c -c -m 755 lc.exe.so /usr/local/lib/mono/4.5
make[7]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools/lc' から出ます
make[6]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools/lc' から出ます
make[6]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools/mono-configuration-crypto' に入ります
make[7]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools/mono-configuration-crypto/lib' に入ります
make install-local
make[8]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools/mono-configuration-crypto/lib' に入ります
/bin/sh ./../../../mkinstalldirs /usr/local/lib/mono/mono-configuration-crypto/4.5
mkdir -p -- /usr/local/lib/mono/mono-configuration-crypto/4.5
mkdir: ディレクトリ `/usr/local/lib/mono/mono-configuration-crypto' を作成できません: そのようなファイルやディレクトリはありません
make[8]: *** [install-local] エラー 1
make[8]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools/mono-configuration-crypto/lib' から出ます
make[7]: *** [do-install] エラー 2
make[7]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools/mono-configuration-crypto/lib' から出ます
make[6]: *** [install-recursive] エラー 1
make[6]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools/mono-configuration-crypto' から出ます
make[5]: *** [install-recursive] エラー 1
make[5]: ディレクトリ `/root/mono/mono-3.12.0/mcs/tools' から出ます
make[4]: *** [install-recursive] エラー 1
make[4]: ディレクトリ `/root/mono/mono-3.12.0/mcs' から出ます
make[3]: *** [profile-do--net_4_5--install] エラー 2
make[3]: ディレクトリ `/root/mono/mono-3.12.0/mcs' から出ます
make[2]: *** [profiles-do--install] エラー 2
make[2]: ディレクトリ `/root/mono/mono-3.12.0/mcs' から出ます
make[1]: *** [install-exec] エラー 2
make[1]: ディレクトリ `/root/mono/mono-3.12.0/runtime' から出ます
make: *** [install-recursive] エラー 1

****  インストールは失敗しました。パッケージの作成を中断します

クリーンアップ..OK

Bye

checkinstall中にディレクトリの作成を試みているみたいですが・・・
なぜか、作成が出来ないみたいです。
自分の場合は・・・ディレクトリを作成しました。
また、「ディレクトリを作成をして下さい」というエラーが数回起きました。

作成をしたディレクトリは以下の通りになります。

/usr/local/share/mono-2.0
/usr/local/share/mono-2.0/mono
/usr/local/etc/mono
/usr/local/etc/mono/2.0
/usr/local/etc/mono/4.0
/usr/local/etc/mono/4.5
/usr/local/lib/mono
/usr/local/lib/mono/xbuild-frameworks
/usr/local/lib/mono/xbuild-frameworks/.NETFramework
/usr/local/lib/mono/xbuild-frameworks/.NETFramework/v2.0
/usr/local/lib/mono/xbuild-frameworks/.NETFramework/v3.0
/usr/local/lib/mono/xbuild-frameworks/.NETFramework/v4.0
/usr/local/lib/mono/xbuild-frameworks/.NETFramework/v4.0/Profile
/usr/local/lib/mono/xbuild-frameworks/.NETFramework/v4.0/Profile/Client
/usr/local/lib/mono/xbuild-frameworks/.NETFramework/v4.5.1
/usr/local/lib/mono/xbuild
/usr/local/lib/mono/xbuild/Microsoft
/usr/local/lib/mono/xbuild/Microsoft/Portable
/usr/local/lib/mono/xbuild/Microsoft/VisualStudio
/usr/local/lib/mono/xbuild/Microsoft/VisualStudio/v9.0
/usr/local/lib/mono/xbuild/Microsoft/VisualStudio/v10.0
/usr/local/lib/mono/xbuild/Microsoft/VisualStudio/v11.0
/usr/local/lib/mono/xbuild-frameworks/.NETFramework/v3.5
/usr/local/lib/mono/xbuild-frameworks/.NETFramework/v4.5
/usr/local/lib/mono/mono-configuration-crypto

ディレクトリを作成したことによって、checkinstall が無事完了してrpmパッケージを生成することが出来ました。

【完了の内容】

~~~ 省く ~~~
./LICENSE
./COPYING.LIB
./NEWS
./AUTHORS
./ChangeLog

tempディレクトリにファイルをコピー..OK

Stripping ELF binaries...OK

manページを圧縮..OK

ファイルリストを作成..OK

RPMパッケージを作成..OK

注意: パッケージはインストールされません

tempファイルを削除..OK

バックアップパッケージを書き込み..OK

temp dirを削除..OK


**********************************************************************

 Done. The new package has been saved to

 /root/rpmbuild/RPMS/x86_64/mono-3.12.0-1.x86_64.rpm
 You can install it in your system anytime using:

      rpm -i mono-3.12.0-1.x86_64.rpm

**********************************************************************

3.6 生成したRPMパッケージをインストールする。

[user@localhost] rpm -ivh /root/rpmbuild/RPMS/x86_64/mono-3.12.0-1.x86_64.rpm

これで、無事にインストールが完了しました。

【参考文献】
ギーク志望。さん – [Bash]CentOS用Mono2.10.8インストールスクリプト
ITmedia エンタープライズさん – Linux Tips 環境設定
ごった煮さん – [CentOS]CentOS6にWineの最新版をソースからインストール