1. 在 Linux 上安装 sbt

在 Linux 上安装 sbt 

使用 **cs setup** 安装 sbt 

按照 安装 页面,使用 Coursier 安装 Scala。这将安装最新稳定版本的 sbt

从 SDKMAN 安装 

要安装 JDK 和 sbt,请考虑使用 SDKMAN

$ sdk install java $(sdk list java | grep -o "\b8\.[0-9]*\.[0-9]*\-tem" | head -1)
$ sdk install sbt

使用 Coursier 或 SDKMAN 有两个优点。

  1. 它们将安装 Eclipse Adoptium 的官方打包,而不是 “神秘的 OpenJDK 构建“
  2. 它们将安装包含所有 JAR 文件的 sbt 的 tgz 包。(DEB 和 RPM 包不包含这些文件以节省带宽)

安装 JDK 

您必须先安装 JDK。我们推荐 **Eclipse Adoptium Temurin JDK 8**、**JDK 11** 或 **JDK 17**。

包名细节在不同的发行版中有所不同。例如,Ubuntu xenial (16.04LTS) 有 openjdk-8-jdk。Redhat 系列称之为 java-1.8.0-openjdk-devel

从通用包安装 

下载 ZIPTGZ 包并解压。

Ubuntu 和其他基于 Debian 的发行版 

DEB 包由 sbt 官方支持。

Ubuntu 和其他基于 Debian 的发行版使用 DEB 格式,但通常您不会从本地 DEB 文件安装软件。相反,它们带有命令行(例如 apt-getaptitude)或图形用户界面(例如 Synaptic)的包管理器。从终端运行以下命令来安装 sbt(您需要超级用户权限才能执行此操作,因此使用 sudo)。

sudo apt-get update
sudo apt-get install apt-transport-https curl gnupg -yqq
echo "deb https://repo.scala-sbt.org/scalasbt/debian all main" | sudo tee /etc/apt/sources.list.d/sbt.list
echo "deb https://repo.scala-sbt.org/scalasbt/debian /" | sudo tee /etc/apt/sources.list.d/sbt_old.list
curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | sudo -H gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/scalasbt-release.gpg --import
sudo chmod 644 /etc/apt/trusted.gpg.d/scalasbt-release.gpg
sudo apt-get update
sudo apt-get install sbt

包管理器将检查许多配置的仓库,以提供可供安装的包。您只需要将仓库添加到包管理器将检查的位置。

安装 sbt 后,您就可以在 aptitude 或 Synaptic 中管理该包,前提是您更新了它们的包缓存。您还应该能够在系统设置 -> 软件和更新 -> 其他软件列表的底部看到添加的仓库。

Ubuntu Software & Updates Screenshot

注意:有关于 Ubuntu 使用 SSL 错误的报告:服务器访问错误:java.lang.RuntimeException:意外错误:java.security.InvalidAlgorithmParameterException:trustAnchors 参数必须非空 url=https://repo1.maven.org/maven2/org/scala-sbt/sbt/1.1.0/sbt-1.1.0.pom,这显然源于 OpenJDK 9 对 /etc/ssl/certs/java/cacerts cert-bug 使用 PKCS12 格式。根据 https://stackoverflow.com/a/50103533/3827,它在 Ubuntu Cosmic (18.10) 中已修复,但 Ubuntu Bionic LTS (18.04) 仍在等待发布。请参阅答案以了解解决方法。

注意sudo apt-key adv --keyserver hkps://keyserver.ubuntu.com:443 --recv 2EE0EA64E40A89B84B2DF73499E82A75642AC823 在 Ubuntu Bionic LTS (18.04) 上可能无法正常工作,因为它使用的是有问题的 GnuPG,因此我们建议使用 Web API 在上述内容中下载公钥。

Red Hat Enterprise Linux 和其他基于 RPM 的发行版 

RPM 包由 sbt 官方支持。

Red Hat Enterprise Linux 和其他基于 RPM 的发行版使用 RPM 格式。从终端运行以下命令来安装 sbt(您需要超级用户权限才能执行此操作,因此使用 sudo)。

# remove old Bintray repo file
sudo rm -f /etc/yum.repos.d/bintray-rpm.repo
curl -L https://sbt.scala-lang.org.cn/sbt-rpm.repo > sbt-rpm.repo
sudo mv sbt-rpm.repo /etc/yum.repos.d/
sudo yum install sbt

在 Fedora (31 及更高版本) 上,使用 sbt-rpm.repo

# remove old Bintray repo file
sudo rm -f /etc/yum.repos.d/bintray-rpm.repo
curl -L https://sbt.scala-lang.org.cn/sbt-rpm.repo > sbt-rpm.repo
sudo mv sbt-rpm.repo /etc/yum.repos.d/
sudo dnf install sbt

注意:请将这些问题报告给 sbt 项目。

Gentoo 

官方树包含 sbt 的 ebuilds。要安装最新可用的版本,请执行以下操作

emerge dev-java/sbt