如何在macport安装的scala中正确设置SCALA_HOME

时间:2013-11-13 08:41:49

标签: scala macports

我使用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 个答案:

答案 0 :(得分: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。

答案 1 :(得分:1)

我不知道有什么方法可以让MacPorts为您完成,但Scala安装在/opt/local/share/scala-2.10/。所以我添加了

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

到我的〜/ .profile,现在一切似乎都在为我工作(虽然你每次切换版本时都必须切换$ SCALA_HOME)。

答案 2 :(得分:0)

目前,当通过brew安装scala时,它的路径设置为
的/ usr /本地/地窖/阶/ [版]
所以SCALA_HOME可以定义如下:

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

p.s:您需要为此安装'greadlink',因为常规readlink不支持'f'标志。

答案 3 :(得分:-1)

如果您使用home brew安装版本,则只需:

brew switch scala 2.10.3