安装

源代码

Gerbil 的源代码托管在 Github 上,最新版本可在 releases 中获取。

要获取最新的 Gerbil,你可以克隆仓库:

$ git clone https://git.cons.io/mighty-gerbils/gerbil.git

依赖

最新的 Gerbil 版本(v0.18.2)包含自己的 Gambit 副本(v4.9.7-6-g64f4d369)。

从 v0.18.2 版本周期开始,不再有外部对 Gambit 的依赖;它作为 git 子树集成在 Gerbil 中。

核心系统没有外部依赖,但标准库有一些大多是可选的依赖。唯一的硬依赖是来自 OpenSSL 的 libssllibcrypto;标准库的重要部分需要它,我们拒绝在 2020 年代发布没有 SSL/TLS 支持的软件。

所有其他依赖都是软依赖。大多数有外部依赖的库模块都是外部包,zlibsqlite 除外。它们无处不在、稳定且通常足够有用,可以保证出现在标准库中并默认启用;如果你想要最小安装,仍然可以禁用它们。

在 Ubuntu 中,你可以使用以下命令安装默认安装的依赖:

$ sudo apt install libssl-dev zlib1g-dev libsqlite3-dev

可以通过向配置脚本传递参数来启用或禁用可选库(见下文)。

构建说明

解压发行版或从 Github 检出源代码后,进入 gerbil 目录。

Gerbil 编译需要相当长的时间,如果你想通过利用多个核心来加速构建,可以:

make -j<number-of-cores>

或者,你可以将 GERBIL_BUILD_CORES 环境变量设置为你想要使用的核心数。

如果你使用默认配置,只需以下命令即可构建 Gerbil:

$ ./configure && make && sudo make install

这将把 Gerbil 安装到 /opt/gerbil;你需要将 /opt/gerbil/bin 添加到你的 PATH 环境变量中。

默认情况下,配置会启用共享库,这对于开发工作站或笔记本电脑来说是明智的选择。另一方面,如果你想构建静态链接的二进制文件,可以这样配置来禁用共享库:

$ ./configure --disable-shared

如果你需要覆盖一些默认配置,你需要使用以下命令(使用你自己的配置选项集):

$ ./configure --prefix=/path/to/which/to/install/gerbil \
  --enable-feature1 --enable-feature2 --disable-feature3 --disable-feature4 --enable-feature5
$ make && sudo make install

可以通过向 ./configure 传递 --enable-FEATURE--disable-FEATURE 来启用或禁用各种功能。使用 ./configure --help 查看可用的功能。

使用二进制发行包安装

如果你想安装最新版本(v0.18.2),你也可以使用适用于 Ubuntu、Debian、Fedora 和 CentOS 的预编译二进制包。它们可在 v0.18.2 发行 页面找到。

在 MacOS 上安装

Gerbil 可通过 homebrew 配方获取。

brew install mighty-gerbils/gerbil/gerbil-scheme

请查看 MacOS 详情

注意 目前,这还没有上游推送。brew 配方将在 v0.18.2 发行版准备好并默认对所有 homebrew 用户可用时更新。

跳过安装,在 Docker 上开始

最新的 Gerbil 镜像可通过 Docker Hub 获取。

基于 Alpine 的版本:

docker pull gerbil/gerbil:$(uname -m)

进入 REPL:

docker run -it gerbil/gerbil:$(uname -m)

获取一个可以编译程序的 bash shell:

docker run -it gerbil/gerbil:$(uname -m) bash

或者你可以使用 Dockerfile 构建自己的容器。请参阅 Docker 指南 了解更多信息。

使用 Nix 和/或 Docker

你可以使用 Nix 安装 Gerbil。请参阅 nix.md 了解详情。

还有基于 Nix 的 Docker 容器,安装了一些 gerbil 库,位于 mukn/glow:develghcr.io/glow-lang/glow:devel,安装了许多库(2026 年更新:目前更新不太及时;如有兴趣请咨询)。

请参阅 Gerbil Clanscripts 目录了解详情。