このブログの内容をビデオで視聴する場合は、
はじめに
昨年のブログ記事で、GridDB Go Clientを使って起動し実行する方法について説明しました。その後プロセスとインストールの方法にいくつか変更があるので、このブログでアップデートします。
作業を開始する前のGoクライアントに関する注意点として、GridDBの配列タイプはGoクライアントでまだ使用できないことに気を付けてください。 プロジェクトで配列タイプが絶対に必要な場合は、代わりにPython/C/Javaクライアントを使用してください。
インストール
c_clientをインストールする
これはNode.js クライアントに関するブログから抜粋しました。
GridDB c_client(Goクライアントを使用するための前提条件)は、次の場所にあります:https://github.com/griddb/c_client 。 c_clientのインストールは前回のブログ投稿時よりも簡素化され、 ソースから自分でコンパイルする代わりに、便利なRPMが利用できるようになりました(リリースページはこちらにあります)。 最新のRPMをwget
してインストールします。
$ wget \
https://github.com/griddb/c_client/releases/download/v4.2.0/griddb_c_client-4.2.0-1.linux.x86_64.rpm
次に、rpmをインストールします。
$ sudo rpm -ivh griddb_c_client-4.2.0-1.linux.x86_64.rpm
これでc_clientが/usr/
ディレクトリにインストールされ、準備が整いました。
Cクライアントをインストールしたら、LD_LIBRARY_PATH環境変数が新しく作成されたファイルを含むディレクトリを指すように設定します。
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/griddb_c_client-4.2.0/lib
$ export LIBRARY_PATH=$LIBRARY_PATH:/usr/griddb_c_client-4.2.0/lib
Goクライアントをインストールする
Goクライアントをインストールするには、いくつかの依存関係があるため、もう少し作業が必要です。 まずはGo言語をインストールして環境を設定してください。 その間、Goクライアントを正常に実行するには以下が必須であることに注意してください。
$ export GODEBUG=cgocheck=0
これにより、特定のCポインター規則に従うデフォルトのGoの動作が無効になります(デフォルトはcgocheck=1)。このオプションの詳細については、こちらを参照してください:https://golang.org/cmd/cgo/#hdr-Passing_pointers 。
次に、いくつかの依存ソフトウェアをインストールしましょう。 次のコマンドをコピー&ペーストする場合は、rootユーザーを切り替えてください。
まずはPCREをインストールします。
$ wget https://sourceforge.net/projects/pcre/files/pcre/8.39/pcre-8.39.tar.gz
$ tar xvfz pcre-8.39.tar.gz
$ cd pcre-8.39
$ ./configure
$ make
$ make install
次はSWIGをインストールします。
$ wget https://prdownloads.sourceforge.net/swig/swig-3.0.12.tar.gz
$ tar xvfz swig-3.0.12.tar.gz
$ cd swig-3.0.12
$ ./configure
$ make
$ make install
ここでGoクライアントをgithubからインストールします:https://github.com/griddb/go_client/releases 。
$ wget \
https://github.com/griddb/go_client/archive/0.8.1.tar.gz
tarを解凍してmake
します。
$ tar xvzf 0.8.1.tar.gz
$ cd go_client-0.8.1
$ make
これでGoクライアントが作成されました。Goクライアントを適切に使用できるよう、GOPATHがgoクライアントを指すように設定します。
$ export GOPATH="${GOPATH}:/home/lib/go_client-0.8.1"
インストール中に起こりうる問題
Make中に起こりうる問題
よく発生する問題の1つは、次のエラーです。
go install github.com/griddb/go_client can't load package: package github.com/griddb/go_client: cannot find package "github.com/griddb/go_client"
これは、環境が適切に設定されていないことが原因です。 これが発生した場合、ディレクトリ内でmake clean
を実行して最初から開始し、CGOCHECKが0(無効)に設定され、LD_LIBRARY_PATHがGridDB Cクライアント(このパッケージではprereq/dependency)を指していることを確認してください。
パッケージをコードにインポートする際に起こりうる問題
その他の起こりうる問題としては、Goがリモートパッケージ(標準ライブラリ外のライブラリ)を整理する方法に関連しています。 Goでは、リモートパッケージはgo get
コマンドで取得され、yourgopath/src/packagerepository/accountname/package
に配置されます。 たとえば、Labstackからecho Webフレームワークをダウンロードすると、コードは/home/israel/go/src/github.com/labstack/echo
に自動的に配置されます。 したがって、コードimport "github.com/labstack/echo"
にエコーWebフレームワークをインポートする場合、Goはこれらのディレクトリを調べてコードを取得します。
これを知っている開発者は、Goクライアントをビルドし、既知のルールを使用して適切なディレクトリに配置し、プロジェクトをgo build
しようとします。 そうすると以下のようなエラーが出ます。
can't load package: package github.com/griddb/go_client: no Go files in /home/israel/go/src/github.com/griddb/go_client
これは簡単に修正することができます。デフォルトのGoパスや他の場所(/home/lib/など)からディレクトリを移動し、Goパスにこの新しい場所をセットします。
$ export GOPATH="${GOPATH}:/home/lib/go_client-0.8.1
使い方
このブログでは特にインストールに関する変更について説明しました。Goコードに関しては以前のブログ記事をご参照ください。
ブログの内容について疑問や質問がある場合は Q&A サイトである Stack Overflow に質問を投稿しましょう。 GridDB 開発者やエンジニアから速やかな回答が得られるようにするためにも "griddb" タグをつけることをお忘れなく。 https://stackoverflow.com/questions/ask?tags=griddb