CLOVER🍀

That was when it all began.

Groovyの実行環境を管理する、GVM(the Groovy enVironment Manager)

Groovy 2.1.1が出ていたことは知っていたので、ダウンロードしようと思った時にGroovyのダウンロードページにこんな表記があるのに気付きました。

GVM??全然知らないし、今まで気付きもしませんでした…。いつからあったんだろう。

オフィシャルサイト
GVM(the Groovy enVironment Manager)
http://gvmtool.net/
を見ると、

GVM was inspired by the highly useful RVM and rbenv tools, used at large by the Ruby community.

http://gvmtool.net/

とあるので、Ruby界隈で使われているRVMとかに影響を受けているようです。

って、Rubyほとんど使っていませんけど…。

これを使うと、

  • Groovy
  • Grails
  • Griffon
  • Gradle
  • vert.x

を複数バージョン管理できて、インストール、アンインストール、バージョンの切り替えなどが簡単にできるようになるんだとか。

GrailsとかGriffonは使っていませんが、GroovyとGradleが簡単にバージョン管理できるところが嬉しいですね。vert.xは、興味はありますけどまだ手を出していません。

それでも、素晴らしい!ということで、早速インストールしてみました。

インストール

GVMのインストール要件は、

だそうです。あと、$HOME直下に勝手に.gvmってディレクトリを作っちゃいますよ、と。

自分のUbuntu Linuxにはcurlが入っていなかったので、まずはcurlをインストール。

$ sudo apt-get install curl

そのcurlを使って、以下のコマンド一発でインストール。

$ curl -s get.gvmtool.net | bash

プロキシ環境下とかだと、http_proxy環境変数とか設定するんでしょうね。

けっこう、派手なインストール画面が出ます。

                                                                     
Thanks for using                                                     
                                                                     
_____/\\\\\\\\\\\\__/\\\________/\\\__/\\\\____________/\\\\_        
 ___/\\\//////////__\/\\\_______\/\\\_\/\\\\\\________/\\\\\\_       
  __/\\\_____________\//\\\______/\\\__\/\\\//\\\____/\\\//\\\_      
   _\/\\\____/\\\\\\\__\//\\\____/\\\___\/\\\\///\\\/\\\/_\/\\\_     
    _\/\\\___\/////\\\___\//\\\__/\\\____\/\\\__\///\\\/___\/\\\_    
     _\/\\\_______\/\\\____\//\\\/\\\_____\/\\\____\///_____\/\\\_   
      _\/\\\_______\/\\\_____\//\\\\\______\/\\\_____________\/\\\_  
       _\//\\\\\\\\\\\\/_______\//\\\_______\/\\\_____________\/\\\_ 
        __\////////////__________\///________\///______________\///__
                                                                     
                                       Will now attempt installing...
                                                                     
Looking for a previous installation of GVM...
Looking for JAVA_HOME...
Validating JAVA_HOME...
Looking for unzip...
Looking for curl...
Installing gvm scripts...
Create distribution directories...
Create candidate directories...
Prime the config file...
Download script archive...
Extract script archive...
Install scripts...
Make init script executable...
Attempt update of bash profiles...
Updated existing /xxxxx/.profile
Updated existing /xxxxx/.bashrc
Attempt update of zsh profiles...
Created and initialised /xxxxx/.zshrc



All done!


Please open a new terminal, or run the following in the existing one:

    source "/xxxxx/.gvm/bin/gvm-init.sh"

Then issue the following command:

    gvm help

Enjoy!!!

ちなみに、途中でこんなことを言っていますが

Looking for JAVA_HOME...
Validating JAVA_HOME...

環境変数$JAVA_HOMEがきちんと設定されていないと、インストールに失敗するっぽいです。

これで、.bashrcに

#THIS MUST BE AT THE END OF THE FILE FOR GVM TO WORK!!!
[[ -s "/xxxxx/.gvm/bin/gvm-init.sh" && -z $(which gvm-init.sh | grep '/gvm-init.sh') ]] && source "/xxxxx/.gvm/bin/gvm-init.sh"

みたいなのが追記されているので、bashを再起動するか

$ source "/xxxxx/.gvm/bin/gvm-init.sh"

と実行するかしてGVMの初期化を行います。

インストールはここまで。

使ってみる

とりあえず、オフィシャルサイトおよびヘルプとかを見てみましょう。

$ gvm help

Usage: gvm <command> <candidate> [version]

   command    :  install, uninstall, list, use, current, version, default, selfupdate, broadcast or help
   candidate  :  groovy, grails, griffon, gradle, vertx
   version    :  optional, defaults to latest stable if not provided

eg: gvm install groovy

とりあえず、Groovyをインストールしてみます。

$ gvm install groovy

Downloading: groovy 2.1.1

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 27.1M  100 27.1M    0     0   875k      0  0:00:31  0:00:31 --:--:-- 1230k

Installing: groovy 2.1.1
Done installing!

Do you want groovy 2.1.1 to be set as default? (Y/n): y

Setting groovy 2.1.1 as default.

バージョンを指定しないと、最新版をインストールするみたいですね。最後に、これをデフォルトにするかどうか聞いてきたので、「y」と回答。

groovyコマンドが使えるようになっています。

$ groovy -version
Groovy Version: 2.1.1 JVM: 1.7.0_15 Vendor: Oracle Corporation OS: Linux

GroovyConsoleも使えます。素晴らしいです。

$ groovyConsole

gvm listで、使用可能なバージョン一覧が見れます。

$ gvm list groovy

============================================================
Available Groovy Versions
============================================================
 > * 2.1.1
     2.1.0
     2.0.7
     2.0.6
     2.0.5
     2.0.4
     2.0.3
     2.0.2
     2.0.1
     2.0.0
     1.8.9

  〜省略〜

     1.5.1
     1.5.0

============================================================
+ - local version
* - installed
> - currently in use
============================================================

バージョンを指定してインストールもできます。

$ gvm install groovy 2.0.0

使うバージョンを一時的に切り替えるには、useで。

$ groovy -v
Groovy Version: 2.1.1 JVM: 1.7.0_15 Vendor: Oracle Corporation OS: Linux


$ gvm use groovy 2.0.0

Using groovy version 2.0.0 in this shell.


$ groovy -v
Groovy Version: 2.0.0 JVM: 1.7.0_15 Vendor: Oracle Corporation OS: Linux

これは、現在のシェルだけで有効になります。

デフォルトで使用するバージョンを切り替えるには、defaultで。

$ gvm default groovy 2.0.0

Default groovy version set to 2.0.0

こちらは、デフォルト設定として行われるので、次回シェルを起動した時もこの設定が引き継がれます。

現在使用するように選択されているバージョンを見るには、currentで。

$ gvm current
Using:
groovy: 2.1.1
gradle: 1.4

$ gvm current groovy
Using groovy version 2.1.1

アンインストール。

$ gvm uninstall groovy 2.0.0

Uninstalling groovy 2.0.0...

GVM自身のバージョンアップをしたい場合は、selfupdateと打てばいいらしいです。

$ gvm selfupdate

自身のバージョンを見る。

$ gvm version
Groovy enVironment Manager 0.9.5

インストールされたものは

$HOME/.gvmディレクトリに入ってるみたいです。

$ find .gvm/ -maxdepth 1
.gvm/
.gvm/src
.gvm/griffon
.gvm/etc
.gvm/ext
.gvm/vertx
.gvm/var
.gvm/gradle
.gvm/tmp
.gvm/archives
.gvm/bin
.gvm/grails
.gvm/groovy

とまあ、すごく便利で導入も簡単なツールだなぁと思います。

これで他の人にもGroovyを使ってもらいやすくなるかも!と思いましたが、Windowsの人にはCygwinが必要というところがネックですね…。

自分は会社ではCygwinユーザなので全く問題ありませんが、他の人にCygwinのインストールから勧めるのはちょっと厳しいです…。