在 macOS Sierra 上使用 Nix 安装 Scala

Installing Scala using Nix on macOS Sierra

我想安装 OpenJDK 8 或 Oracle JDK 8 以及使用 Nix 的 Scala。

我从直接安装 Oracle JDK 开始。然后我通过 运行 nix-env -i scala 通过 Nix 安装了 scala。这就完成了。

但是,运行 scalac 失败了:

% scala
Exception in thread "main" java.lang.UnsupportedClassVersionError: scala/tools/nsc/MainGenericRunner : Unsupported major.minor version 52.0
    at java.lang.ClassLoader.findBootstrapClass(Native Method)
    at java.lang.ClassLoader.findBootstrapClassOrNull(ClassLoader.java:1070)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:414)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:412)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

我有 JAVA_HOME 设置:

% echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home

重申一下,我想通过 Nix 安装 Scala。我想学习一种或多种方法来做到这一点。一些注意事项:

首先,我用 nix-env --uninstall scala 卸载了 scala。

然后我更新了我的 ~/.nixpkgs/config.nix 以包括:

{
  packageOverrides = pkgs: {
    scala = pkgs.scala.override { 
      jre = pkgs.jre8;
    };
  };
}

然后我用 nix-env -i scala 重新安装了 scala。急!

更新 1:将 jre = pkgs.openjdk8 更改为 jre = pkgs.jre8

更新 2:我在 https://github.com/NixOS/nixpkgs/issues/22439

提交了一个关于 nixpkgs 的问题