こんにちは。scarvizです。
前々回でGo言語、前回でgo-uiの環境構築をしました。
前々回→http://kobegtug.blogspot.jp/2012/08/ubuntugo.html
前回→http://kobegtug.blogspot.jp/2012/08/qtgo.html
もう皆さん、意気揚々とGo言語で開発してると思うのですが、現代っ子な僕は、早くもテキストエディタでの開発に耐え切れなくなりました。
やっぱりIDEが欲しいですよね。
そこで、『GoClipse』というものを使ってみようと思います。
今回は『GoClipse』の環境構築を紹介します。
※開発に耐え切れなくなる以前に、GOPATHおかしくて開発自体ができなくなっていましたが・・・。
ちなみに解決済みです。前回に修正入ってます。
※あと、前回Qt使えるようにしたので、QtCreatorを使わないの?って思った人もいるかもしれませんが、色々いじってみましたが、Go言語での開発ができなさそうだったので諦めました。
もし「こうやったら出来るよ!」って知ってる人いたら教えてください!
※環境は前回、前々回と同じ、VMware PlayerのUbuntu12.04(x86)を使っています。
なので、Go言語の環境構築が出来ている前提になります。
今回もGDG神戸のGo言語の先駆者であり、エバンジェリストのtitoi2さんのサイトを参考にしてます。
http://barsoom.seesaa.net/archives/20120706-1.html
ここではGAE/Goを扱ってますが、今回はGAE/Goについては触れていません。
もし興味がある方は、titoi2さんのサイトを参考にしてください。
■Eclipseを用意する
『GoClipse』はEclipseのGo言語開発用プラグインです。
なので、まずはEclipseをインストールしましょう。
既に入っている人は不要です。
EclipseはJavaアプリケーションなので、少なくともJRE(Java Runtime Environment)が必要です。
今回、「Eclipse IDE for Java EE Developers」をインストールしようと思うので、JDK(Java Development Kit)の方をインストールしています。
1.JDKをインストールする
今回は現在の最新バージョンの「Java SE 7u7」(Java7 update7)をインストールしようと思います。
既に入っている人は不要です。
①まずはJDKをダウンロードします。
オラクルのサイト(http://www.oracle.com/technetwork/java/javase/downloads/index.html)から、「Java SE 7u7」の「JDK」の項目のDownloadボタンを押下してください。
※バージョンはその都度読み替えてください。特に気にならなければ最新で問題ないと思います。
バージョン気になる人でも、Java6 update31以降、またはJava7 update3以降にしてください。
セキュリティの問題で、そのバージョン以降を強く推奨していたと思います。
ちなみにJava7 update7、Java6 update35でセキュリティベースライン上がってるので、最新の方がオススメです。
「Java SE Development Kit 7u7」の「Accept License Agreement」を選択し、「Linux x86」の行の「jdk-7u7-linux-i586.tar.gz」を選択してください。
②JDKをインストールします。
下記コマンドを実行してください。
もし/usr/javaが存在するならば、mkdirコマンドは不要です。
sudo mkdir /usr/java
sudo tar -C /usr/java -xzf jdk-7u7-linux-i586.gz
※ファイル名は「.gz」となってますが、「.tar.gz」なので、このコマンドでOKです。gunzipコマンド使って解凍しても.tarファイルが出来るだけでした。
③パスを通します。profileを編集したいので、次のコマンドを実行してください。
cd ~
vi .profile
※既にホームにいる場合はcdコマンドは不要です。
※・・・viじゃなくてもいいんですよ?
④profileを編集します。以下を最下部に追記してください。
export JAVA_HOME=/usr/java/jdk1.7.0_07
export CLASSPATH=.:/usr/java
また、PATHに「/usr/java/jdk1.7.0_07/bin」を追加します。
前回で「export PATH=$PATH:/usr/local/go/bin:~/QtSDK/Desktop/Qt/4.8.1/gcc/bin」に
なっていると思いますが、その後に追記してください。
以下のようになります。
export PATH=$PATH:/usr/local/go/bin:~/QtSDK/Desktop/Qt/4.8.1/gcc/bin:/usr/java/jdk1.7.0_07/bin
※PATHの続きに「:/usr/java/jdk1.7.0_07/bin」を追記しました。
⑤profileの変更を適用します。次のコマンドを実行してください。
source .profile
⑥JDKにちゃんとパスが通ってるか確認します。下記コマンドを実行してください。
java -version
「java version "1.7.0_07"」と表示されていればOKです。
2.Eclipseをインストールする
今回は「Eclipse Indigo (3.7)」をインストールしようと思います。
※現在の最新バージョンは「Eclipse Juno (4.2)」ですが、GoClipseのページ(https://code.google.com/p/goclipse/)には要件として「Eclipse 3.6, 3.7」と記述されているので、安定版として「Eclipse Indigo (3.7)」を使用しようと思います。
試しに「Eclipse Juno (4.2)」でやってみると特に問題なく動作していました。手順もほぼ同じです。
もし最新バージョンが良いという人は「Eclipse Juno (4.2)」を試してみても良いと思います。
①Eclipseをダウンロードします。
Eclipseのサイトの「Eclipse Indigo (3.7)」のダウンロードページ(http://www.eclipse.org/downloads/packages/release/indigo/sr2)を開きます。
今回は「Eclipse IDE for Java EE Developers」にしようと思うので、「Eclipse IDE for Java EE Developers」の「Linux 32-bit」を押下してください。
※「Eclipse Juno (4.2)」の場合は、Eclipseのサイトのダウンロードページ(http://www.eclipse.org/downloads/)を開き、「Eclipse Juno (4.2) Packages for 」と書かれたコンボボックスを「Linux」に変更します。
今回は「Eclipse IDE for Java EE Developers」にしようと思うので、「Eclipse IDE for Java EE Developers」の「Linux 32 Bit」を押下してください。
次のページで下矢印マークを押下し、Eclipseをダウンロードします。
②Eclipseインストールします。下記コマンドを実行してください。
sudo tar -C /usr/local -xzf eclipse-jee-indigo-SR2-linux-gtk.tar.gz
「/usr/local」の下に「eclipse」ディレクトリが出来ていると思います。
※「Eclipse Juno (4.2)」の場合は、下記コマンドを実行します。
sudo tar -C /usr/local -xzf eclipse-jee-juno-linux-gtk.tar.gz
3.Eclipseを日本語化する
日本語化が不要な人は次に行ってください。
日本語化にはPleiadesを使用します。
①Pleiadesをダウンロードします。下記から安定版の「1.3.4」を押下してください。
http://mergedoc.sourceforge.jp/
※「Eclipse Juno (4.2)」の場合は、デッドロック問題があるようなので、最新版の「1.3.5」をダウンロードしてください。
②Pleiadesを解凍します。下記コマンドを実行してください。
sudo unzip pleiades_1.3.4.zip -d /usr/local/eclipse
※今回「上書きしますか」って聞かれなかったんですが、もし聞かれたらすべて上書き(Aを入力するようになると思います)してください。
※「Eclipse Juno (4.2)」の場合は、下記コマンドを実行します。
sudo unzip pleiades.zip -d /usr/local/eclipse
③eclipse.iniを編集します。下記コマンドを実行してください。
sudo vi /usr/local/eclipse/eclipse.ini
※・・・いや、ホント、viじゃなくてもいいんですよ?
④最後に下記を追記して保存してください。
-javaagent:/usr/local/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
これで日本語化が出来ましたね。
4.ワークスペースの設定とEclipseの状態確認
Eclipseは日本語化されているものとして、説明していきます。
日本語化していない場合はそれぞれ読み替えてください。
①Eclipseを起動します。
「/usr/local/eclipse」以下にあるeclipseを起動してください。
※今後、Eclipseを起動する時に、もしJDK(JRE)のエラーが出てきた場合、このエントリの最下部の「補足」を参考にしてください。
②立ち上がると、ワークスペースの参照先を求められるので、特に気にしなければそのままOKボタンを押下してください。
ホームディレクトリに「workspace」ディレクトリが作成され、そこがワークスペースになります。
③念のため「インストール済みの JRE」を確認します。
メニューの「ウィンドウ」→「設定」を選択し、設定ダイアログを表示してください。
左のツリーから「Java」→「インストール済みの JRE」を選択します。
右側の「インストール済みの JRE」の一覧に「jdk1.7.0_07」があって、チェックが入っていればOKです。
④エディタに行番号を表示するように設定します。不要な人は読み飛ばしてください。
左のツリーから「一般」→「エディター」→「テキスト・エディター」を選択します。
右側の「行番号の表示」にチェックを入れて、OKボタンを押下してください。
これでEclipseの用意はできました。
■GoClipseをインストールする
EclipseにGoClipseをインストールします。
①メニューから「ヘルプ」→「新規ソフトウェアのインストール」を選択し、インストールダイアログを表示します。
②「作業対象」のテキストボックスに下記URLを入力し、Enterキーを押下します。
http://goclipse.googlecode.com/svn/trunk/goclipse-update-site/
中央の一覧に「GoClipse」と表示されたと思います。
「GoClipse」にチェックを入れ、次へボタンを押下します。
③インストールの詳細が表示されたと思います。そのまま次へボタンを押下します。
※現在のGoClipseのバージョンは「0.7.2」でした。
④ライセンス内容が表示されたと思います。
内容を良く読み、大丈夫なら「使用条件の条項に同意します」を選択し、完了ボタンを押下してください。
※当然、同意しないとGoClipseは使えません・・・。
⑤インストールが開始されます。
途中で「セキュリティー警告」が表示されますが、OKボタンを押して進めてください。
⑥インストールが完了すると、「ソフトウェア更新」が表示されます。
「今すぐ再起動」ボタンを押下して、Eclipseを再起動してください。
※「Eclipse Juno (4.2)」の場合は、「はい」ボタンを押下して再起動をします。
再起動時にはワークスペースをまた聞かれますが、先ほど設定したもので良かったら、気にせずOKボタンを押下してください。
これは毎回聞かれるので、毎回聞かれないようにするには、下にあるチェックボックスのチェックを入れてOKボタンを押してください。
⑦メニューの「ウィンドウ」→「設定」を選択し、設定ダイアログを表示してください。
左のツリーから「実行」を選択します。
右の「GOROOT path」にGOROOTで設定したパス「/usr/local/go」を入力してください。
「Go Tools」にはGOROOTを入力した後、フォーカスを移動させると自動的に補完されます。
※「GOPATH」には何も入れなくても大丈夫みたいです。
※パスは各自で設定したものに読み替えてください。
これでEclipseでGo言語開発が出来るようになりました。
■GoClipseを使ってみる
試しに、Goのプロジェクトを作成し、実行するところまでやってみましょう。
①プロジェクト・エクスプローラーで右クリックし、「新規」→「Go Project」を選択します。
②「Project name」にプロジェクト名を入力し、完了ボタンを押下します。
ここでは「sample」というプロジェクト名にしました。
③プロジェクト・エクスプローラーにsampleプロジェクトが出来ていると思います。
GOROOTとGOPATHでパスを通したものが下に表示されているのを確認してください。
④「src」フォルダを右クリックし、「新規」→「Go File」を選択します。
⑤「ソース・ファイル」にファイル名を入力します。
「ソース・ファイル・タイプ」は「Package Source File」を選択した状態で、完了ボタンを押下します。
ここではsample.goというファイル名にしました。
⑥さきほど設定したファイルが開かれていると思います。
mainパッケージのmain関数がGoのエントリーポイントになります。
なので、このファイルのmain関数が最初に呼ばれます。
⑦とりあえず、実行できる内容を記述しましょう。
「go-ui/examples」ディレクトリ内のminimal.goの中身をそのままコピペしてください。
⑧実行結果には、コンソールにgo-uiのバージョンが表示されるので、もしコンソールが出ていない場合は、メニューの「ウィンドウ」→「ビューの表示」→「コンソール」を選択して表示してください。
⑨緑の実行マークの右側にある▼をクリックし、「実行」→「Run Go Application」で実行してください。
もしこの時に、コンソールに「error while loading shared libraries: libqtdrv.so.1: cannot open shared object file」というエラーメッセージが出た場合、LD_LIBRARY_PATHにlibqtdrv.so.1のパスを通す必要があります。
下記コマンドでprofileを開きます。
cd ~
vi .profile
※viじゃなくても・・・。
最下部に下記を追記してください。GOPATHで設定したパスの「/src/github.com/visualfc/go-ui/lib」になります。
export LD_LIBRARY_PATH=/home/(ユーザ名)/GoProj/src/github.com/visualfc/go-ui/lib
profileの変更を適用します。次のコマンドを実行してください。
source .profile
Eclipseに反映できないかもしれないので、一度、Eclipseを再起動させたほうがいいかもしれません。
再起動させた後、作成したプロジェクトを選択状態にしておき、実行マークの▼→「実行」→「Run Go Application」で実行してください。
→(9/10 追記)
ここではLD_LIBRARY_PATHを追記する対応を書いていますが、これでは満足ではなかったようです。
Ubuntuを再起動して、Eclipseを立ち上げ、実行してみると、同様のエラーが再度出力されてしまいます。
どうやら、Ubuntuが起動時にLD_LIBRARY_PATHを無効にしているそうです。
理由はセキュリティのためだそうですが、さすがにこれは困ってしまうので、無効にしないように対策を入れる必要があります。
まずは下記コマンドで「/etc/X11/Xsession.options」を開いてください。
sudo vi /etc/X11/Xsession.options
念のため、下記コマンドを実行してください。なお、profileを編集する箇所はありません。
vi .profile
source .profile
一応、Ubuntuを再起動し、Eclipseで実行してもエラーが出なかったら大丈夫です。
⑩真っ白な画面と、コンソールにgo-uiのバージョンが表示されていると思います。
これでIDEを使ったGo開発が出来るようになりましたね!
ただ、何故かコード補完機能が効かないんですよね・・・。原因不明です。
「コード補完機能、効くようになったよ!」という方がいたら教えてください!
補足:
Eclipseを起動しようとした場合に以下のようなJDK(JRE)のエラーが出ることがあります。
A Java RUntime Environment (JE) or Java Development Kit(JDK)
must be available in order to run Eclipse. No Java virtual machine
was found after searching the following locations:
/usr/local/eclipse/jre/bin/java
java in your current PATH
この場合は、eclipse.iniに下記の記述を追加してください。追加箇所は「-vmargs」より前に追加してください。
-vm
/usr/java/jdk1.7.0_07/bin
追記後、保存し、Eclipseを起動するとエラーが発生しなくなっていると思います。
「■GoClipseを使ってみる」の⑨で、LD_LIBRARY_PATHを追記する対応を書いていますが、これでは満足ではなかったようです。
返信削除なので、対策を追記しました。
コード補完機能は、gocodeをインストールしていないからではないでしょうか。
返信削除https://code.google.com/p/goclipse/wiki/GocodeIntegration