1

我已经使用 macports 在我的 mac(OS X 10.7.5)上安装了多个版本的 Scala(2.9 和 2.10)。我喜欢这种方式,因为可以通过简单的“端口选择”命令在这两个版本之间轻松切换。但是,该命令不会自动设置 SCALA_HOME 环境变量。

是否有合适的 macport 命令来正确设置 SCALA_HOME 变量?如果不是,那么 SCALA_HOME 应该指向 macport 安装的 scala 中的哪个目录?

谢谢

编辑:到目前为止,我发现最好的方法是使用一个 shell 脚本来查看当前的 scala 命令是什么,并相应地调整 SCALA_HOME 变量。我总是在切换 Scala 版本后运行它。

这是脚本中的重要命令。我不是专业的 shell 程序员,因此我会感谢任何建议:

export SCALA_HOME=$(ls -l `which scala` | gawk 'match($0, "(/opt/local/share/.*)/bin/scala", a) {print a[1]}')

4

4 回答 4

3

我不知道让 MacPorts 为你做这件事的方法,但 Scala 安装在 /opt/local/share/scala-2.10/ 对我来说。所以我加了

export SCALA_HOME="/opt/local/share/scala-2.10/"

到我的 ~/.profile ,现在一切似乎都对我有用(尽管每次切换版本时都必须切换更改 $SCALA_HOME )。

于 2014-02-01T22:46:03.470 回答
2

好的,到目前为止,我发现的最佳解决方案是在更改 scala 版本后运行以下命令:

export SCALA_HOME=$(ls -l `which scala` | gawk 'match($0, "(/opt/local/share/.*)/bin/scala", a) {print a[1]}')

我也在我的命令中包含了这个命令,.bash_profile所以我SCALA_HOME总是指向我当前使用的 scala 版本。

此命令使用从 MacPorts 安装的 gawk 4.1.1。

于 2014-06-03T04:04:42.770 回答
0

目前,当通过 brew 安装 scala 时,它的路径设置为
/usr/local/Cellar/scala/[version]
所以 SCALA_HOME 可以定义如下:

export SCALA_HOME=$(greadlink -f $(dirname "$(greadlink -f $(which scala))")/../../)

ps:您需要为此安装“greadlink”,因为常规的 readlink 不支持“f”标志。

于 2016-05-31T10:22:27.600 回答
-1

如果您正在安装版本,home brew您可以简单地:

brew switch scala 2.10.3
于 2015-01-27T08:10:13.290 回答