6

私はUbuntu(14.04)を使用しており、GVM(1.3.13)の最新バージョンをインストールしました。次に、それを使用して Grails (2.3.7)、Groovy (2.2.2)、および Gradle (1.11) をインストールしました。

Groovy と Gradle は問題なくインストールされているようです ( などの SDK コマンドを実行できますgroovyc)。しかし、任意のディレクトリから Grails コマンドを実行すると、端末の画面全体がクリアされ、1 秒間停止してから、コマンド ライン プロンプトが再表示されます。コマンドは実行されません。数か月前、Nabble で、別のユーザーが非常によく似た問題を報告しました。

シェルから を実行する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です。binそのため、そこに行くと、ディレクトリを含む通常の Grails インストールが表示されます。binそのディレクトリにドロップすると、次のように表示されます。

grails-debug
grails.bat
grails-debug.bat
startGrails.bat
startGrails
grails

grails(シェルスクリプト)を開くと、次のように表示されます。

#!/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をできるだけ早く起動して実行するために何ができるか誰か教えてもらえますか?
4

3 に答える 3