sudo apt-get install mit-scheme
下列的軟體包有不能滿足的依賴關係:
mit-scheme: 依賴: libltdl3 (>= 1.5.2-2) 但卻無法安裝它
到這個網站下載一個libtdl3的deb,安裝之,然後再裝mit-scheme。
mit-scheme是SICP(電腦程式構造與解釋)使用的教學語言,現在也是GNU官方維護的一個軟體。可惜的是,GNU只提供Debian,Ubuntu,MacOSX和Windows的二進位包,對於其他Linux和BSD的發行版本只提供源碼。所以,如果不是用上面支援的4種作業系統,大部分情況下只能從源碼編譯。
本文用於指導從源碼編譯安裝mit-scheme的讀者,希望為中國人學習scheme能提供一點協助(提醒:FreeBSD的ports目錄裡有mit-scheme,安裝起來還是很容易的,不在此文討論範圍)。本文參考了mit-scheme源碼包裡README文檔,結合mit-scheme20080130版本和Fedora8的實際情況做了簡化操作,我們假定你:
1.機器是x86的平台
2.看不太懂,或者不太願意看源碼裡帶的讀我檔案
3.安裝Fedora時裝好了必要的開發環境(一般這都不會有什麼問題)
4.從http://www.gnu.org/software/mit-scheme/下載了最新的為DebianGNU/Linux編譯的二進位包mit-scheme-20080130-ix86-gnu-linux.tar.gz,以及portablec的通用源碼包mit-scheme-c-20080130.tar.gz
5.這2個包被解壓到/tmp,構成了分類樹:/tmp/{bin,lib,mit-scheme-c-20080130}。這不是必須的,只是為了敘述的方便。如果你不知道怎麼作,只需要進入存放著下載源碼包的目錄,分別執行:tarzxvfmit-scheme-c-20080130.tar.gz-C/tmp
tarzxvfmit-scheme-20080130-ix86-gnu-linux.tar.gz-C/tmp
首先,要解決一個雞和蛋的問題:要從源碼編譯mit-scheme,你必須已經有了一個能工作的mit-scheme。
是不是像在開玩笑?編譯的指令碼需要調用scheme,而你編譯這個scheme正是為了有一個能用的scheme...
下面我們來解決這個問題:
進入到源碼的目錄的/tmp/mit-scheme-c-20080130/src/microcode下面,分別執行
#./configure
#make
這樣,我們就產生了一個和自身平台相關的scheme執行檔案。現在我們用其替換為DebianGNU/Linux編譯的二進位包裡的執行檔案:在目前這個發行版本,你可能會發現解壓後/tmp/bin/下面有多個執行檔案,mit-scheme-native是真正的檔案,而其他幾個都是mit-scheme-native的符號連結(這可能是為了保證向前相容);
執行#cp-f/tmp/mit-scheme-c-20080130/src/microcode/scheme/tmp/bin/mit-scheme-native即可替換。
接下來設定好這個scheme的運行環境:
#exportMITSCHEME_LIBRARY_PATH="/tmp/lib/mit-scheme"
#exportPATH="$PATH:/tmp/bin/"
現在,如果你在終端鍵入scheme-no-init-file,應該會看到sheme解譯器起來了。在=>提示符後鍵入(exit)退出。
如果以上步驟沒出錯,現在你便有了一個可以編譯mit-scheme的環境。進入/tmp/mit-scheme-c-20080130/src源碼目錄,確保變數MITSCHEME_LIBRARY_PATH為/tmp/lib/mit-scheme,PATH中有/tmp/bin/。
接下來,按順序執行
#./Setup.sh
#./configure
#make#這一步需要時間稍長
#makeinstall#需要root身份
進入/tmp/mit-scheme-c-20080130/doc,執行./configure,make,makeinstall(需要ROOT身份)安裝文檔。
如果你喜歡用emacs調用mit-scheme,可以進入/tmp/mit-scheme-c-20080130/etc/,把xscheme.el拷貝到emacs的載入路徑
#cp-fpxscheme.el/usr/share/emacs/site-lisp/
現在,在emacs裡M-x,鍵入load-library,斷行符號後再鍵入xscheme,