【发布时间】:2014-06-06 23:08:33
【问题描述】:
我在 Ubuntu (14.04) 上,刚刚安装了最新版本的 GVM (1.3.13)。然后我用它来安装 Grails (2.3.7)、Groovy (2.2.2) 和 Gradle (1.11)。
Groovy 和 Gradle 似乎安装得非常好(我可以执行他们的 SDK 命令,例如groovyc 等)。但是每当我从 any 目录执行 any Grails 命令时,我的整个终端屏幕都会清除,暂停一秒钟,然后重新绘制我的命令行提示符。该命令永远不会被执行。几个月前,在 Nabble 上,另一位用户报告了a very similar issue。
在 shell 中,如果我执行 echo $GRAILS_HOME,我会得到:
/home/myuser/.gvm/grails/current
如果我执行echo $PATH,我确实看到/home/myuser/.gvm/grails/current/bin 在我的系统路径上。
然后我决定深入挖掘并实际访问$GRAILS_HOME。这是一个实际指向/home/myuser/.gvm/grails/2.3.7 的符号链接。所以当我去那里时,我看到一个正常的 Grails 安装,包括一个bin 目录。当我进入 bin 目录时,我看到了:
grails-debug
grails.bat
grails-debug.bat
startGrails.bat
startGrails
grails
我打开grails(一个shell脚本)并看到:
#!/bin/sh
trap "reset" EXIT
trap "reset" INT
trap "reset" TERM
DIRNAME=`dirname "$0"`
. "$DIRNAME/startGrails"
startGrails org.codehaus.groovy.grails.cli.GrailsScriptRunner "$@"
我修改如下:
#!/bin/sh
trap "reset" EXIT
trap "reset" INT
trap "reset" TERM
echo "1..."
sleep 2s
DIRNAME=`dirname "$0"`
echo "2...dirname is $DIRNAME"
sleep 8s
. "$DIRNAME/startGrails"
echo "3..."
sleep 2s
startGrails org.codehaus.groovy.grails.cli.GrailsScriptRunner "$@"
然后保存/退出并从外壳运行grails help。这是我的输出:
1...
2...dirname is /home/zharvey/.gvm/grails/current/bin
输出的最后一行 ("2...dirname is...") 暂停 2 秒,然后我的屏幕清空(就像我发出了 clear 命令一样)我的提示再次出现。我的实际命令(grails help)在任何时候都不会实际执行或生成输出。因此,似乎存在错误的确切行是:
. "$DIRNAME/startGrails"
这一行到底在做什么,为什么会导致脚本失败?
我的问题
- 有人可以确认这实际上是 Grails 或 GVM 错误,而不是我安装错误的情况吗?
- 最重要的是,谁能告诉我我能做些什么来解决这个问题并让 Grails 尽快启动并运行?
【问题讨论】:
-
你'...打开一个新终端,或在现有终端中运行以下命令:source "${GVM_DIR}/bin/gvm-init.sh"' 在安装 gvm 结束时(安装完成时打印)?
-
感谢@tim_yates (+1) - 不,我没有(最初)。我现在只是这样做了,但它并没有改变任何东西。仍然与上述功能相同。
标签: shell grails ubuntu path gvm