Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103724731
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-05-14 10:25:40

作者: drivers  出自:
mit-scheme是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即可。
阅读(313) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~