来源:
是SICP(计算机程序构造与解释)使用的教学语言,现在也是GNU官方维护的一个软件。可惜的是,GNU只提供Debian, Ubuntu, Mac OS X和Windows的二进制包,对于其他Linux和BSD的发行版本只提供。所以,如果不是用上面支持的4种操作系统,大部分情况下只能从编译。
本文用于指导从编译安装mit-scheme的读者,希望为中国人学习scheme能提供一点帮助(提醒:FreeBSD的ports目录里有mit-scheme,安装起来还是很容易的,不在此文讨论范围)。本文参考了mit-scheme包里README文档,结合mit-scheme20080130版本和Fedora 8的实际情况做了简化操作,我们假定你:
1.机器是x86的平台
2.看不太懂,或者不太愿意看里带的自述文件
3.安装Fedora时装好了必要的开发环境(一般这都不会有什么问题)
4.从 下载了最新的为Debian GNU/Linux编译的二进制包mit-scheme-20080130-ix86-gnu-linux.tar.gz,以及portable c的通用包mit-scheme-c-20080130.tar.gz
5.这2个包被解压到/tmp,构成了目录树:/tmp/{bin,lib,mit-scheme-c-20080130}。这不是必须的,只是为了叙述的方便。如果你不知道怎么作,只需要进入存放着下载包的目录,分别执行:
tar zxvf mit-scheme-c-20080130.tar.gz -C /tmp
tar zxvf mit-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执行文件。现在我们用其替换为Debian GNU/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的运行环境:
# export MITSCHEME_LIBRARY_PATH="/tmp/lib/mit-scheme"
# export PATH="$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 #这一步需要时间稍长
# make install #需要root身份
进入 /tmp/mit-scheme-c-20080130/doc ,执行./configure, make, make install(需要ROOT身份) 安装文档。
如果你喜欢用emacs调用mit-scheme,可以进入 /tmp/mit-scheme-c-20080130/etc/,把xscheme.el拷贝到emacs的加载路径
# cp -fp xscheme.el /usr/share/emacs/site-lisp/
现在,在emacs里M-x,键入load-library,回车后再键入xscheme,emacs应该就可以加载成功了。要运行scheme的解释器,此时M-x,键入run-scheme即可。
阅读(239) | 评论(0) | 转发(0) |