如何在macport安装的SCALA中正确设置SCALA_主页

如何在macport安装的SCALA中正确设置SCALA_主页,scala,macports,Scala,Macports,我使用macports在mac(OS X 10.7.5)上安装了多个版本的Scala(2.9和2.10)。我喜欢这种方式,因为通过简单的“端口选择”命令,可以轻松地在这两个版本之间切换。 但是,SCALA_HOME环境变量不会使用此命令自动设置 是否有合适的nice macport命令来正确设置SCALA_HOME变量? 如果否,在macport安装的SCALA中,SCALA_主目录应指向哪个目录 谢谢 编辑: 到目前为止,我发现最好的方法是使用一个shell脚本,它查看当前的scala命令,并

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

是否有合适的nice macport命令来正确设置SCALA_HOME变量? 如果否,在macport安装的SCALA中,SCALA_主目录应指向哪个目录

谢谢

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

下面是脚本中的重要命令。我不是一个专业的shell程序员,因此我非常感谢您的建议:


export SCALA_HOME=$(ls-l`哪个SCALA`|gawk'匹配($0,(/opt/local/share/*)/bin/SCALA),a){print a[1]})

我不知道有什么方法可以让MacPorts为您做这件事,但我的Scala安装在/opt/local/share/Scala-2.10/。所以我补充说

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

在我的~/.profile中,现在一切似乎都在为我工作(尽管每次切换版本时,您都必须切换$SCALA_HOME)。

我不知道如何让MacPorts为您这样做,但SCALA安装在/opt/local/share/SCALA-2.10/。所以我补充说

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

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

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

export SCALA_HOME=$(ls -l `which scala` | gawk 'match($0, "(/opt/local/share/.*)/bin/scala", a) {print a[1]}')
我的
.bash\u配置文件中也包含了该命令,因此我的
SCALA\u主页始终指向我当前使用的SCALA版本


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

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

export SCALA_HOME=$(ls -l `which scala` | gawk 'match($0, "(/opt/local/share/.*)/bin/scala", a) {print a[1]}')
我的
.bash\u配置文件中也包含了该命令,因此我的
SCALA\u主页始终指向我当前使用的SCALA版本


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

如果要安装带有
home brew的版本,只需执行以下操作:

brew switch scala 2.10.3

如果要安装带有
home brew
的版本,只需:

brew switch scala 2.10.3

当前,通过brew安装scala时,其路径设置为
/usr/local/Cellar/scala/[版本]
因此SCALA_HOME的定义如下:

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

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

当前通过brew安装scala时,其路径设置为
/usr/local/Cellar/scala/[版本]
因此SCALA_HOME的定义如下:

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

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

谢谢您的回答,是的,这就是我每次切换Scala版本时必须手动执行的操作。我一直在寻找一个更直接、更简单的命令,希望MacPorts支持,但直到现在才找到。谢谢你的回答,是的,这就是我每次切换Scala版本时必须手动执行的操作。我一直在寻找更直接、更简单的命令,希望得到MacPorts的支持,但直到现在还没有找到。