在Linux Mint13下編譯安裝mono執行時

2021-09-08 09:37:02 字數 2087 閱讀 8805

最近一直想體驗下mono在web開發上到底進展到什麼程度,挑戰一下它對web開發的極限。因為asp.net mvc本身依賴windows平台的東西不太多,所以這些assembly移植到mono/linux上來應該不是大問題。網上很多人很早也介紹了相關主題,但是他們大部分是基於這樣的模式:在visual studio裡開發asp.net mvc**,然後再部署到linux上。我個人覺得這種做法只能驗證mono執行時有支援asp.net mvc的能力,這個確實也在mono 2.10的release note裡提到了。但是如果想要在linux上開發asp.net mvc**怎麼辦呢?有同學會說:那在linux上裝個虛擬機器做開發吧~~

本文我將會介紹怎樣在linux上用用monodevelop開發乙個簡單的asp.net mvc3**。asp.net mvc3是mono執行時目前支援的最新的版本,這個版本相對2比較成熟點 。然後會介紹我在這個過程中碰到的一些問題以及解決辦法。從下面這個截圖,我們可以知道請求是從ubuntu chromium/28.0.1500.52上發出的,我本機是linux mint,屬於ubuntu系的,再檢視response,可以知道asp.net版本是4.0.30319,mvc版本是3.0,我用的開發伺服器是mono.webserver.xsp/3.0.0.0。

既然我們的目的是帶有探索性的,那麼我採用的是最近的原始碼,從github上我獲取了3個專案:mono,monodevelop,xsp。第乙個是mono執行時,第二個是ide,第三個是開發版web伺服器。我會把所有的這些專案都安裝到/usr/local目錄下,以免跟從軟體源裡安裝的版本衝突,另外,因為畢竟是不穩定版本,如果貿然裝到/usr下的話,系統也不穩定。首先編譯mono執行時,這個可以參考我以前的一篇文章在linux mint13下編譯安裝mono執行時

。接下來就是編譯ide,不出意外您也應該跟我一樣碰到一些編譯錯誤,主要是由於引用的dll找不到引起的。很多依賴的csharp binding assembly找不到,例如,glib-sharp,gtk-sharp等,解決方法就是把這些assembly的pc檔案從/usr/lib/pkgconfig下拷貝到/usr/local/lib/pkgconfig。下面看看gtk-sharp-2.0的pc檔案的一部分,我們看它的第一行prefix是乙個相對值,在拷貝到/usr/local/lib/pkgconfig之後,gtk-sharp.dll在/usr/local下仍然找不到,因此需要把它變成乙個絕對路徑prefix=/usr。

然後我把我這邊/usr/local/lib/pkgconfig目錄下所有的pc檔案截個圖出來

等build通過後,在monodevelop目錄下執行make run,這樣就啟動ide了。

我用gtksharp拖出了個簡單的介面,編譯,執行,除錯,都可以的。神器阿~~~~

接下來再編譯xsp的原始碼。我本打算用源裡的那個xsp,但是編譯出來的ide總是報找不到xsp,這個我就沒有深究,因為可以yy的原因實在太多,不想浪費時間調查這個。所以就決定自己編譯xsp。沒想到編譯相當順利並且快(1分鐘左右在我機器上),出乎意料。xsp原始碼裡自帶了乙個測試用的asp.net**,然後我切換到目錄/usr/local/lib/xsp/test目錄下執行xsp4,伺服器在埠9000上起來了。

在瀏覽器中輸入localhost:9000,很cool,asp.net**在linux上執行了。但是有些asp.net web控制項顯示錯誤,例如menu,grid。因為這些控制項的實現依賴gdi+,所以我從源裡安裝libgdiplus,也需要把它的pc檔案拷貝到/usr/local/lib/pkgconfig下。這樣,整個test**顯示都沒問題了。

LinuxMint13搭建gitolite伺服器

linuxmint13搭建gitolite伺服器 1.首先需要閱讀 linuxmint13安裝無密碼訪問git 在該博文中講到客戶端的id rsa.pub在執行 ssh copy id i ssh id rsa.pub git localhost 以後,id rsa.pub的內容就被拷貝到了伺服器端...

linux mint 13安裝Nvidia顯示卡驅動

linux mint13安裝開源的nvidia顯示卡驅動後關機不能自動切斷電源,重新使用nouveau後能偶正常關機確定是顯示卡驅動的問題。但是想開啟opengl的特效,安裝nvidia官方的閉源驅動來解決吧。驅動必須在非圖形介面,root許可權下安裝。執行命令sudo telinit 3,無法退出...

在Windows下編譯OpenSSL

如何在windows下編譯openssl vs2005使用vc8的cl編譯器 1 安裝activeperl 初始化的時候,需要用到perl直譯器 2 使用vs2005下的visual studio 2005 command prompt進入控制台模式 這個模式會自動設定各種環境變數 3 解壓縮ope...