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,