天天看點

在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:

[plain]  view plain copy print ?

在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
  1. [email protected]:~$ cat  /etc/issue  
  2. Ubuntu 12.04.2 LTS \n \l  

如果你想更新ubuntu系統,可以運作以下兩個指令:

[plain]  view plain copy print ?

在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
  1. sudo apt-get update  
  2. sudo apt-get upgrade  

因為 ubuntu server在安裝時,一般都會比較“幹淨”,是以我們還需要編譯環境,這些編譯環境,是順利完成mono源碼安裝的必要條件:

[plain]  view plain copy print ?

在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
  1. sudo apt-get install build-essential  
  2. sudo apt-get install automake autoconf  
  3. sudo apt-get install bison gettext libtool libglib2.0-dev libfreetype6-dev libfontconfig-dev  

除了安裝好這些編譯環境外,在安裝mono前,需要先安裝Libgdiplus,而安裝 Libgdiplus 前,又需要先安裝以下的編譯環境及庫檔案:

[plain]  view plain copy print ?

在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
  1. sudo apt-get install libgif-dev libtiff4-dev libpng12-dev libexif-dev libx11-dev libxft-dev libjpeg62-dev  

在運作上面的指令後,報了錯:

[plain]  view plain copy print ?

在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
  1. [email protected]:~$ sudo apt-get install libgif-dev libtiff4-dev libpng12-dev libexif-dev libx11-dev libxft-dev libjpeg62-dev  
  2. Reading package lists... Done  
  3. Building dependency tree         
  4. Reading state information... Done  
  5. Some packages could not be installed. This may mean that you have  
  6. requested an impossible situation or if you are using the unstable  
  7. distribution that some required packages have not yet been created  
  8. or been moved out of Incoming.  
  9. The following information may help to resolve the situation:  
  10. The following packages have unmet dependencies:  
  11.  libtiff4-dev : Depends: libjpeg-dev  
  12. E: Unable to correct problems, you have held broken packages.  

錯誤資訊也顯示出來了,是因為libtiff4-dev需要依賴于libjpeg-dev而不是libjpeg62-dev,是以需要把指令最後一個參數改成libjpeg-dev:

[plain]  view plain copy print ?

在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
  1. sudo apt-get install libgif-dev libtiff4-dev libpng12-dev libexif-dev libx11-dev libxft-dev libjpeg-dev  

這樣就運作成功了。

二、安裝Libgdiplus

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

[plain]  view plain copy print ?

在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
  1. wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.tar.bz2  

最新版本可以在這邊找到: Last modified

下載下傳完成後,解壓:

[plain]  view plain copy print ?

在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
  1. tar jvxf libgdiplus-2.10.tar.bz2  

然後通過安裝“三步曲”完成安裝:

[plain]  view plain copy print ?

在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
  1. cd libgdiplus-2.10  
  2. ./configure --prefix=/usr  
  3. make  
  4. sudo make install  
  5. cd ..  

三、安裝mono

安裝完Libgdiplus,就可以下載下傳mono源碼,并進行安裝了,安裝步驟和安裝Libgdiplus基本一樣:

[plain]  view plain copy print ?

在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
  1. wget http://download.mono-project.com/sources/mono/mono-3.0.10.tar.bz2  

mono最新版本可以在這邊找到: Last modified

下載下傳完成後,解壓:

[plain]  view plain copy print ?

在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
  1. tar jvxf <span style="font-family: Arial, Helvetica, sans-serif;">mono-3.0.10.tar.bz2</span>  

然後通過安裝“三步曲”完成安裝:

[plain]  view plain copy print ?

在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
  1. cd <span style="font-family: Arial, Helvetica, sans-serif;">mono-3.0.10</span>  
  2. ./configure --prefix=/usr  
  3. make  
  4. sudo make install  
  5. cd ..  

如果在這時就進行配置安裝Mono的話,會在make階段得到一個“找不到 Microsoft.Portable.Common.targets 檔案”的錯誤提示,

是以需要先進行如下處理:

#> cd (mono安裝路徑的字首)/mono-3.4.0/mcs/tools/xbuild/targets

#> cp Microsoft.Portable.CSharp_4.0.targets Microsoft.Portable.Common.targets

#> vim Microsoft.Portable.Common.targets

在vim中将Microsoft.Portable.Common.targets檔案中的這行:

<Import Project="$(MSBuildToolsPath)/Microsoft.CSharp.targets" />删除,然後儲存退出。

四、mono另一種安裝方法

虛拟機下的Linux有時候在安裝mono時,在./configure這一步聚上,會出現gcc内部編譯錯誤,這些錯誤很多時候是無頭緒的。在這種情況下,可以使用以下方法來安裝mono:

1、安裝mono所需要的依賴程式 [plain]  view plain copy print ?

在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
  1. sudo apt-get install build-essential bison gettext pkg-config autoconf libtool automake  

2、安裝mono3.0 下載下傳安裝包,解壓,并運作安裝的sh檔案: [plain]  view plain copy print ?

在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
  1. wget http://download.mono-project.com/sources/mono/mono-3.0.10.tar.bz2   
  2. tar -xjvf mono-3.0.0.tar.bz2  
  3. cd mono-3.0.0  
  4. ./autogen.sh  
  5. make  
  6. sudo make install  
  7. cd ..  

這裡應該注意的一點是,./autogen.sh後面是可以帶安裝路徑參數的,預設是安裝路徑是:/usr/local

安裝成功後,檢視mono的版本:

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

五、安裝jexus

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

[plain]  view plain copy print ?

在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
  1. wget http://www.linuxdot.net/down/jexus-5.3.1.tar.gz <span style="font-family: Arial, Helvetica, sans-serif;">tar -zxv -f </span><span style="font-family: Arial, Helvetica, sans-serif;">jexus-5.3.1</span><span style="font-family: Arial, Helvetica, sans-serif;">.tar.gz </span>  

jexus-5.3.1檔案夾,該檔案夾下,有一個install,運作install解壓後,進入

[plain]  view plain copy print ?

在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
  1. cd jexus-5.3.1  
  2. ./install  
在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境

已經安裝成功。

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

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

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

[html]  view plain copy print ?

在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
  1. <html>  
  2.     <head><title>Hello Jexus!</title></head>  
  3.     <body><h1>Hello Jexus!</h1><body>  
  4. </html>  

然後回到/usr/jexus,運作如下指令:

[plain]  view plain copy print ?

在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
在Ubuntu作業系統上安裝mono和jexus搭建.NET的運作環境
  1. ./jws start  
  2. curl http://localhost/index.html  

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

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

已經jexus服務已成功啟動。

下一篇将介紹jexus伺服器下mono的運作.net的web程式。