星期四, 9月 17, 2009

Upgrade Mono to 2.4.2.3 in Ubuntu Jaunty

網路上能看到的,多半都是自己編譯 tarball...

  1. 下載 mono in karmic 頁面 File 指示的三個檔案,先解開 mono_2.4.2.3+dfsg.orig.tar.gz,然後切到解開後的目錄下,打上 patch: cat mono_2.4.2.3+dfsg-1.diff.gz | gunzip | patch -p1,再用 chmod +x 幫 debian/rules 加上可執行的屬性。
  2. 安裝必要的套件: sudo apt-get install debhelper dpkg-dev libglib2.0-dev bison libtool dpatch libxml-dom-perl libxslt1-dev dc, lsb-release, libx11-dev libxt-dev zlib1g-dev autoconf automake
  3. 打開 debian/shlibs.local,把 libsqlite3 後面的 3.6.13 改為 3.6.10,因為 9.04 的 sqlite 是 3.6.10 版。
  4. 切到 mono 下,開始 build: cd mono;dpkg-buildpackage
  5. 把打包好的 deb 作成 local repository: 假設你把這些 deb 都放到 /opt/mono_debs 下,然後建立 Packages.gz: cd /opt/mono_debs && dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz。
  6. 新增 apt repository:在 /etc/apt/sources.list.d/ 下新增一個 mono.list,裡面放:
    deb file:///opt/mono_debs ./
    接下來就可以用 apt-get update、apt-get upgrade 來更新了。


理論上,這樣就可以更新了,但是事實上,因為 dependency 的關係,apt 會試圖安裝舊的 2.0.1 的 deb 來滿足相依性而導致應用程式有問題。
最好,也循上述的方法,把相關的基底 gtk-sharp2、xsp、gecko-sharp、mono-addins...等套件也重新 build 一次,這樣出現問題的情況應該會減少許多。

我個人建議,要用最新的 mono 還是衝 Karmic (9.10) 吧,這樣會省事很多。

沒有留言: