カテゴリー内の他の記事

第10回 cli-kintoneをコンパイルしてみよう

フォローする

(著者:Cstap 江田 篤史

はじめに

第10回は、さまざまなプラットフォームで動くcli-kintone実行ファイルの作成方法を紹介します。

主なプラットフォーム用の実行ファイルは、cli-kintone(kintoneコマンドラインツール)で既にWindows 64-bit/Windows 32-bit/Linux 64-bit/MacOS 64-bitの4種類が配布されていますが、今回紹介する方法を用いると、それ以外のプラットフォームでもcli-kintoneが利用できるようになります。

ここでは、Ubuntu(64-bit)用、CentOS(32-bit)用のcli-kintone実行ファイルをWindowsで作成する例を紹介します。

cli-kintoneで利用されている技術

cli-kintoneのソースコードは「Go」というプログラミング言語で書かれています。

Goで書かれたプログラムは、ソースコードに対して「コンパイル」という作業を行うことで実行ファイルを作成できますが、この実行ファイルは、プラットフォームごとに異なる形式で作成される必要があります。

そのため、Go言語には「クロスコンパイル」と呼ばれる機能が備わっています。この機能によって、コンパイルを行うPCとは異なるプラットフォーム上で実行できるファイルを作ることができます。

今回はこのクロスコンパイルを用いて、各種プラットフォーム用のcli-kintone実行ファイルを作成してみます。

Go言語の開発環境を整える

それではまず、Go言語の開発環境を整えて行きましょう。Go言語の公式サイトから、Windows用のインストーラをダウンロードして実行します。

インストールが完了したら、コマンドプロンプトを起動して go version と入力してみましょう。

下記のようにバージョンが表示されていれば正しくインストールされています。

ソースコードからcli-kintone実行ファイルを作成する

他のプラットフォーム用実行ファイルを作成する前に、まずはWindows用の実行ファイルを作成してみましょう。

Gitをインストールする

cli-kintoneのソースファイルを入手するために、今回はGitを利用します。インストールしていない場合は、Git for Windows からインストーラをダウンロードして実行しましょう。

インストールが完了したら、コマンドプロンプトで git --version と入力して実行してみましょう。

下記のようにバージョンが表示されていれば、正しくインストールされています。

実行ファイルの作成に必要なコードを取得する

次に、cli-kintone実行ファイルの作成に必要なコードを、Go言語の機能を使って取得します。

以下の3つのコマンドを実行しましょう。

cli-kintoneのソースコードを取得する

ここまで準備ができたら、GitHubからcli-kintoneのソースコードを取得します。

今回は、環境変数GOPATHで指定されているディレクトリ中のsrcディレクトリでソースコードを取得するので、コマンド go env GOPATH を実行してGOPATHの内容を確認してみましょう。

内容が確認できたら、GOPATHディレクトリの中のsrcに移動します。

そこで、コマンド git clone https://github.com/kintone/cli-kintone.git を実行して、cli-kintoneのソースコードを取得しましょう。

ソースコードの取得が完了したら、srcディレクトリの中に3つのディレクトリができていることを確認します。

実行ファイルを作成する

ここまでで実行ファイルを作成する準備が整いました。

cli-kintoneのソースコードを取得したディレクトリに移って、コマンド go build を実行します。

コマンドの実行が終了すると、go build を実行したディレクトリの下にWindows用の実行ファイル「cli-kintone」が作成されています。

cli-kintone コマンドを実行して動作確認してみましょう。

以上が、cli-kintone実行ファイルをソースコードから作成する方法でした。

クロスコンパイルを行う

ここからは、Windows以外のプラットフォーム用実行ファイルの作成に入ります。

実行ファイルの動作確認は、もう1台別のPCを用意するか、あるいは仮想マシンを用意して行います。

今回はクロスコンパイルの例として、64-bitのUbuntu用実行ファイルと、32-bitのCentOS用実行ファイルを作成してみましょう。

STEP1 CPUアーキテクチャの確認

まず、クロスコンパイルする際にCPUアーキテクチャを指定する必要があるので、あらかじめ調べておきます。

linuxの場合、CPUアーキテクチャは arch コマンドで確認できます。

STEP2 クロスコンパイル

次に、cli-kintoneを実行するOSを環境変数のGOOSで、同じく環境変数のGOARCHでCPUアーキテクチャを指定して、実行ファイルを作成します。

指定できるGOOSGOARCH の組み合わせは以下の通りです。

GOOS GOARCH
darwin 386
darwin amd64
freebsd 386
freebsd amd64
freebsd arm
linux 386
linux amd64
linux arm
netbsd 386
netbsd amd64
netbsd arm
openbsd 386
openbsd amd64
plan9 386
plan9 amd64
windows 386
windows amd64

GOARCHの値は、以下のCPUアーキテクチャを指しています。

GOARCH CPUアーキテクチャ
amd64 x86_64
386 x86_32
arm ARM_32

アーキテクチャが確認できたところで、実行ファイルの作成に移りましょう。

実行ファイルの作成は、下記3つのコマンドで行います。

まずはじめに、Ubuntu 64-bit 用の実行ファイルを作成します。

GOOSにlinux、GOARCH にamd64を指定して、go build を実行します。

コマンドの実行が終わると、cli-kintone-ubuntu-64bit というファイルができます。これが Ubuntu 64-bit 用の実行ファイルです。

これはlinux用の実行ファイルなので、当然ですがWindows上では動きません。念のため、実行して確かめてみましょう。

続いて、32-bit CentOS6用の実行ファイルも作成してみましょう。

GOOSにlinux、GOARCHに386を指定して、go build を実行します。

cli-kintone-centos-32bit というファイルが作成されているのを確認できたでしょうか。

STEP3 作成した実行ファイルの動作確認

最後に、作成した実行ファイルの動作確認を行いましょう。

以下では、Ubuntu 64-bit 用の実行ファイルを例として扱いますが、CentOS用実行ファイルも同様の手順で確認できます。

それでは、先ほど作成した実行ファイル cli-kintone-ubuntu-64bit をUbuntu上に配置して実行してみましょう。

無事実行できたでしょうか。
今度はCSV出力を行ってみましょう。

ご覧のとおり、クロスコンパイルで作成した実行ファイルでも、これまで紹介してきた機能が使えます。

これで、所有しているサーバー上でもcli-kintoneを使うことができそうですね。

補足:仮想マシンの作成方法

仮想マシンの作成は、Vagrant と VirtualBox を用いると比較的かんたんに行えます。今回は、これらを用いてUbuntu環境を構築する方法を例として紹介します。

まず、Vagrant と VirtualBox のインストーラをそれぞれ下記のサイトからダウンロードし、インストールします。

インストールが済んだら、一度PCを再起動します。

再起動したら、仮想マシン用のディレクトリを作成します。Cドライブ直下に「Vagrant」ディレクトリ、その中に「ubuntu」ディレクトリを作成しましょう。

ディレクトリが作成できたら、コマンドプロンプトでそのディレクトリに移動します。

上記ディレクトリの準備ができたら、利用したいプラットフォームのBoxファイル(仮想マシンの雛形)をVagrantクラウドで探します。Providerは「virtualbox」を選択し、キーワードは「ubuntu」で検索してみましょう。

「ubuntu/trusty64」という Ubuntu 64-bit のboxをクリックします。

git1.png

 

 

「How to use this box with Vagrant:」と書いてある下に「New」というタブがあります。

git2.png

 

このタブをクリックしたときに表示されるコマンドを、上から順に実行します。

多少時間がかかりますが、ここまでが仮想マシン構築作業です。

次に、先ほど作成した実行ファイル cli-kintone-ubuntu-64bit を仮想マシン内に配置します。Vagrantには、Windowsと仮想マシンの間で使えるファイル共有のしくみがあるので、これを利用します。

Windows上の Vagrantfile が置かれているディレクトリと、仮想マシン上の「/vagrant」が共有ディレクトリになっています。

まずは、Windows上からディレクトリの内容を確認してみましょう。

Windows上でファイルが確認できたら、コマンド vagrant ssh を実行して、仮想マシンにログインします。

仮想マシンにログインできたら、ディレクトリ「vagrant」に移動して vagrantの中にcli-kintone実行ファイルがあることを確認しましょう。

実行ファイルが確認できたら、上記STEP3で紹介した方法で動作確認を行ってみてください。

記事に関するフィードバック

直接的に記事と関連がないご質問はcybozu developer コミュニティをご活用ください。

ログインしてコメントを残してください。
Powered by Zendesk