1. 程式人生 > >在Ubuntu作業系統上安裝mono和jexus搭建.NET的執行環境

在Ubuntu作業系統上安裝mono和jexus搭建.NET的執行環境

mono在國內的應用已經越來越多了。現在因為商業版權問題,很多公司都不敢將其用於生產環境上,但這無法擋住mono的魅力。.net的程式猿們,如果你還不知道mono那就太可惜了。

“Mono+Jexus”架構模式是Linux承載ASP.NET企業級應用的極為重要的架構方式這種架構中,Jexus很好安裝、配置,基本上就是一個下載、解壓、複製的過程,但mono安裝會麻煩點。這篇文章將記錄下在ubuntu作業系統下,使用Mono原始碼安裝。後續安裝jexus,並使用一個測試頁面來驗證jexus安裝是否成功。jexus與mono的結合將在下一篇進行介紹。

一、選擇作業系統

因為整個過程運行於虛擬機器,並且基於Linux發行版本選用問題,建議大家使用Ubuntu server版,我使用的版本是ubuntu server 12.04.2:

[email protected]:~$ cat  /etc/issue
Ubuntu 12.04.2 LTS \n \l

如果你想升級ubuntu系統,可以執行以下兩個命令:

sudo apt-get update
sudo apt-get upgrade
因為 ubuntu server在安裝時,一般都會比較“乾淨”,所以我們還需要編譯環境,這些編譯環境,是順利完成mono原始碼安裝的必要條件:
sudo apt-get install build-essential
sudo apt-get install automake autoconf
sudo apt-get install bison gettext libtool libglib2.0-dev libfreetype6-dev libfontconfig-dev
除了安裝好這些編譯環境外,在安裝mono前,需要先安裝Libgdiplus,而安裝Libgdiplus前,又需要先安裝以下的編譯環境及庫檔案:
sudo apt-get install libgif-dev libtiff4-dev libpng12-dev libexif-dev libx11-dev libxft-dev libjpeg62-dev
在執行上面的命令後,報了錯:
[email protected]:~$ sudo apt-get install libgif-dev libtiff4-dev libpng12-dev libexif-dev libx11-dev libxft-dev libjpeg62-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libtiff4-dev : Depends: libjpeg-dev
E: Unable to correct problems, you have held broken packages.
錯誤資訊也顯示出來了,是因為libtiff4-dev需要依賴於libjpeg-dev而不是libjpeg62-dev,所以需要把命令最後一個引數改成libjpeg-dev:
sudo apt-get install libgif-dev libtiff4-dev libpng12-dev libexif-dev libx11-dev libxft-dev libjpeg-dev
這樣就執行成功了。

二、安裝Libgdiplus

在前面的做準備工作做好後,其實後面就簡單了,和使用原始碼安裝其他應用程式一樣的步驟。但在安裝mono前記得一定要先安裝Libgdiplus:

wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.tar.bz2
最新版本可以在這邊找到:Last modified

下載完成後,解壓:

tar jvxf libgdiplus-2.10.tar.bz2
然後通過安裝“三步曲”完成安裝:
cd libgdiplus-2.10
./configure --prefix=/usr
make
sudo make install
cd ..

三、安裝mono

安裝完Libgdiplus,就可以下載mono原始碼,並進行安裝了,安裝步驟和安裝Libgdiplus基本一樣:

wget http://download.mono-project.com/sources/mono/mono-3.0.10.tar.bz2
mono最新版本可以在這邊找到:Last modified

下載完成後,解壓:

tar jvxf mono-3.0.10.tar.bz2
然後通過安裝“三步曲”完成安裝:
cd mono-3.0.10
./configure --prefix=/usr
make
sudo make install
cd ..

四、mono另一種安裝方法

虛擬機器下的Linux有時候在安裝mono時,在./configure這一步聚上,會出現gcc內部編譯錯誤,這些錯誤很多時候是無頭緒的。在這種情況下,可以使用以下方法來安裝mono: 1、安裝mono所需要的依賴程式
sudo apt-get install build-essential bison gettext pkg-config autoconf libtool automake
2、安裝mono3.0 下載安裝包,解壓,並執行安裝的sh檔案:
 wget http://download.mono-project.com/sources/mono/mono-3.0.10.tar.bz2 
 tar -xjvf mono-3.0.0.tar.bz2
 cd mono-3.0.0
 ./autogen.sh
 make
 sudo make install
 cd ..

這裡應該注意的一點是,./autogen.sh後面是可以帶安裝路徑引數的,預設是安裝路徑是:/usr/local 安裝成功後,檢視mono的版本:

五、安裝jexus


安裝jexus比較簡單,可到其官網下載:http://www.linuxdot.net/。下載連結位於官網右側“重要下載”一欄中。咱們安裝的是Jexus web server V5.3.1 正式版。安裝命令如下:

wget http://www.linuxdot.net/down/jexus-5.3.1.tar.gz tar -zxv -f jexus-5.3.1.tar.gz 
jexus-5.3.1資料夾,該資料夾下,有一個install,執行install解壓後,進入
cd jexus-5.3.1
./install


已經安裝成功。

檢視下jexus的預設配置,配置檔案在/usr/jexus/siteconf/default:


配置中都有示例,還是相當好理解的,這裡就不多說了。下面我們新在/var/www/default下面新建一個index.html頁面,頁面包含一些簡單的HTML程式碼,如下 :

<html>
	<head><title>Hello Jexus!</title></head>
	<body><h1>Hello Jexus!</h1><body>
</html>

然後回到/usr/jexus,執行如下命令:

./jws start
curl http://localhost/index.html

可以看到,顯示的結果如下圖:


已經jexus服務已成功啟動。

下一篇將介紹jexus伺服器下mono的執行.net的web程式。