在Debian上安装Scala和SBT并使用Java 8。

3
我在Debian上安装了Java 8服务器运行时。尝试使用命令"dpkg -i scala-2.11.7.deb"安装Scala,但是出现了以下错误:scala依赖于java6-runtime-headless,但是java6-runtime-headless包未被安装。不过,使用命令"scala -version"可以看到Scala代码运行器版本为2.11.7。现在我要从bintray仓库安装SBT,但我的Java 8已被禁用,系统开始安装openjdk-7-* ...。我需要使用命令"apt-get purge openjdk-7-*"彻底卸载openjdk-7-*。编辑后,使用命令"update-alternatives --config java"解决了问题。

编辑:Scala安装留下了未满足的Java 6依赖项... apt-get -f install...再次安装OpenJDK 7...太好了! - Joe
1个回答

8

以下是我在使用Vagrant创建的干净的Debian Jessie实例中安装的命令列表:

安装Java 8

sudo add-apt-repository ppa:webupd8team/java

编辑文件/etc/apt/sources.list.d/webupd8team-java-jessie.list,将jessie替换为trusty,使其具有以下行:

deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main

然后执行:

sudo apt-get update
sudo apt-get install oracle-java8-installer

确认 Java 8 已正确安装:

java -version

这将输出:

java version "1.8.0_72"
Java(TM) SE Runtime Environment (build 1.8.0_72-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.72-b15, mixed mode)

安装Scala 2.11.7:

wget -c www.scala-lang.org/files/archive/scala-2.11.7.deb
sudo dpkg -i scala-2.11.7.deb

这对我来说很好用,为了确认我正在使用最新版本,我已经执行了以下操作:
sudo apt-get update
sudo apt-get install scala

然后:
scala -version

这将输出:

Scala code runner version 2.11.7 -- Copyright 2002-2013, LAMP/EPFL

安装SBT:

wget -c https://bintray.com/artifact/download/sbt/debian/sbt-0.13.9.deb
sudo dpkg -i sbt-0.13.9.deb

一切都按照预期运行,然后我执行了以下命令,以确保我正在使用最新版本的SBT:

sudo apt-get update
sudo apt-get install sbt

目前为止,Java 8、Scala和SBT已成功安装在我的计算机上。


您无需安装Scala,只需使用SBT即可,在此过程中它会拉取您项目所指定的Scala版本。 - Reactormonk
@Reactormonk 我知道。我也试图做他想做的事情。 - marcospereira
截至2019年10月28日,此方法已不再适用。添加PPA会产生以下结果:“[...]现在下载Oracle Java需要登录Oracle帐户以下载Java更新,例如最新的Oracle Java 8u211 / Java SE 8u212。由于这个原因,我无法使用最新的Java更新PPA(旧链接已被Oracle删除)。除非我找到某种方式绕过此限制,否则此PPA已停止使用。” - flyx
1
这个答案的另一个问题是,截至2021年8月,bintray.com不再提供软件包。 - Robert P. Goldman
答案有效,直到 wget -c https://bintray.com/artifact/download/sbt/debian/sbt-0.13.9.deb,但现在已经无法使用:HTTP请求已发送,等待响应...403 Forbidden - Caleb Stanford

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接