之前在園子里看過一篇文章說的是在CentOS 7上安裝MonoDevelop的,一直想照着弄一遍都沒有弄,今天深圳外面下暴雨,就在家里弄一下這個吧,以后也試着在Linux上面寫寫C#玩玩。這一試,還真是試出了一些經驗了,或者說是一些坑吧。
由於園子里這篇文章主要是使用yum安裝的,於是我想用源碼來安裝,於是我先在Linux公社找到了這篇文章。根據作者的說明及經驗,我先下載了幾個包到/usr/local/src下面。
wget http://download.mono-project.com/sources/mono/mono-4.0.1.tar.bz2 wget http://download.mono-project.com/sources/monodevelop/monodevelop-5.9.0.431.tar.bz2 wget http://download.mono-project.com/sources/mono-addins/mono-addins-1.1.tar.gz wget http://download.mono-project.com/sources/gtk-sharp212/gtk-sharp-2.12.26.tar.gz wget http://download.mono-project.com/sources/gnome-sharp2/gnome-sharp-2.24.1.tar.bz2 wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-3.12.tar.gz
接下來就是我的折騰開始,先裝mono-4.0.1
先提示我
error: no acceptable C compiler found in $PATH
於是我先后使用以下兩個補全包后,才./configure --prefix=/usr/local && make && make install 成功。
[root@51xyd ~]# yum -y install gcc [root@51xyd ~]# yum -y install gcc-c++
為了驗證,我使用了mono --version查看了一下,應該算安裝成功了。
[root@51xyd hello]# mono --version Mono JIT compiler version 4.0.1 (tarball Sat May 23 13:38:56 CST 2015) Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com TLS: __thread SIGSEGV: altstack Notifications: epoll Architecture: amd64 Disabled: none Misc: softdebug LLVM: supported, not enabled. GC: sgen [root@51xyd hello]#
接下來,我想安裝接下來的5個包,無一成功, 其中有一項的時候,還出現提示說
No package 'glib-2.0' found
於是我使用
yum install libgnomeui-devel
來解決,不過,最終還是沒有完全安裝成功。
弄了好久,最后我決定就去官網按官方說明來操作一遍。
1,
rpm --import "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF" yum-config-manager --add-repo http://download.mono-project.com/repo/centos/
2,
yum install -y mono-devel yum install -y mono-complete yum install -y referenceassemblies-pcl
3,
yum install monodevelop
沒有出現錯誤,但是點擊卻是沒有任何反應的。時間到了下午了,不想再折騰了,准備先用mono測試一下.NET了。於是新建一個~/Downloads/hello的目錄
然后vim hello.cs,輸入
using System; public class HelloWorld { static public void Main () { Console.WriteLine ("Hello Mono World"); } }
:wq!退出
接着又vim hellowin.cs,並且輸入
using System; using System.Windows.Forms; public class HelloWorld : Form { static public void Main () { Application.Run (new HelloWorld ()); } public HelloWorld () { Text = "Hello Mono World"; } }
:wq!
接着
成功在centos7上開發c#程序了。
休息了一會兒,繼續打發開電腦,在Systemtool里面查看安裝的一些軟件,試着把我上面5個沒安裝成功安裝的軟件安裝上去。
然后我重新打開monodevelop,這時有反應了,不過還有一個錯誤
我試着想用我的下載的源碼包去修復這個問題,但提示說
error CS0006: Metadata file `Mono.GetOptions.dll' could not be found
Bing.com之后有人說是
經過調查,
1. 原來是gnome-sharp版本太舊的原因,
前面用的gnome-sharp-2.20.*用了Mono.GetOptions,更新至gnome-sharp-2.24.*
2. 注釋掉gnome-sharp-2.24.1/sample/gnomevfs/Makefile中關於 Mono.GetOptions的內容
但我注釋掉后,沒有成功解決這個問題,然后我也上網上找了一個版本
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/g/gnome-sharp-2.24.2-7.el7.x86_64.rpm
安裝完之后,也沒有解決這個問題。
但是至少是可以打開了,而且也可以編譯,輸出。最后上圖。