kagomeが go get できない問題

概要

kagome が go get できない!ということがある模様.

たしかに kagome は辞書をソースコードに変換して保持してるので,重いのは重いのですが,いつまでたっても終わらない・・・ということはないはずと思います. 手元でやってみたら2分〜3分,会社の回線で5分くらいでした.回線が細いと厳しいかもしれません. といっても kagome のレポジトリは 400MB 程度.今時の携帯アプリでも大きめのはこれくらいある時代ですし・・・

原因はレポジトリのサイズの他にもあるかもしれません.もし他にもいらっしゃったら教えてください.

申し訳なさ

go は go get でサクッと使えるように便利にできています.なのに kagome がこのユーザー体験を破壊していると思うと申し訳ない限り. kagome はかなり特殊な重たいライブラリなので,kagome の事を嫌いになっても go を嫌いにならないでください!みたいなお気持でいっぱいです.

回避策

1. go get コマンドの最後の ... は意味があります

$ go get -v github.com/ikawaha/kagome/...

基本はこれでいけるはずです.最後の ... がないと失敗するので注意してください.(でも失敗と分かるので落ちてこないというのは多分これではない

2. 直接 git clone する

$GOPATH/src 以下に github.com/ikawaha/kagome として git clone してみてください.このとき depth を 1 にしてください. (go get はデフォルトで depth 1 で clone してくれます)

$GOPATH設定してない場合は ~/go/src 以下に読みかえてください.

$ git clone --depth 1 https://github.com/ikawaha/kagome.git $GOPATH/src/github.com/ikawaha/kagome
Cloning into '/Users/ikawaha/go/src/github.com/ikawaha/kagome'...
remote: Counting objects: 116, done.
remote: Compressing objects: 100% (103/103), done.
remote: Total 116 (delta 21), reused 60 (delta 6), pack-reused 0
Receiving objects: 100% (116/116), 127.47 MiB | 1.61 MiB/s, done.
Resolving deltas: 100% (21/21), done.
Checking out files: 100% (93/93), done.

3. 軽量版 kagome を使う

kagome には IPADic と UniDic の2種類の辞書が入っています.が,ぶっちゃけ普通の人は UniDic は使わないでしょう. 利用方法が同じで IPADic だけを同梱した kagome.ipadic がありますのでこちらを利用してみてください. こちらは GAE でも動作するように調整してありますので,GAE で使いたい場合にもこちらをご利用ください.

$ go get github.com/ikawaha/kagome.ipadic/...

何かいい方法とかあれば教えて欲しいです・・・.

追記

前より遅くなったんじゃないかとの感想にコメントいただきました.なるほどなー

でも全く落ちてこないってのはやはり変.

追記2

github から直接落としても同じだけ時間がかかるという報告いただきました.なので落とせないときは方法の2を試しても,ダメな可能性がありそう. でもまぁ,そのときは github の転送量のせいだと問題が分離できるのでよしとする(ぉ.

追記3

解決したようです.ヤター