風柳メモ

ソフトウェア・プログラミング関連の覚書が中心

GAE/Goの開発環境をFedora 12上に構築したので覚書

Google App Engineで、Python、Javaに続いてGoのランタイム環境が提供された、とのこと。
よく解らないながら、とりあえず開発環境だけでも整えておくかぁ、と思ったところ、今のところSDKはLinuxまたはMac OSでしか提供されていない模様。
とりあえず、手元にあるFedora 12上で、SDKが動作するところまで構築してみたので、覚書。
最初はFedora Core 5という古い環境で試そうとしたが、最終的にGoのコンパイルがうまく行かないみたいなので挫折したのは秘密…。

■参考

Virtual Linux envirionments using real partitions for dual boot system
Python/インストール/Linux/Python - MinacoWiki

方針

  • Go開発専用のアカウント(gaego)を用意する。
  • Fedora 12だとPython 2.6系が入っているが、GAEのSDKが正規にサポートしているPython 2.5をインストールする。
  • GAEのSDKで必要なSSLとPILは入れておく。
  • Windowsからリモート接続して動作確認したいため、X Server(Xming)を動かしておく。
  • Xming上でも日本語は入力出来るようにしておく。

手順

Go開発専用アカウント(gaego)の作成
# adduser -m gaego
# passwd gaego
# su - gaego
$ mkdir -p ~/temp

$HOME直下にtempディレクトリを作成してそこで作業する。

Go SDKのダウンロードと展開
$ cd ~/temp
$ wget http://googleappengine.googlecode.com/files/go_appengine_sdk_linux_386-1.5.0.zip
$ unzip go_appengine_sdk_linux_386-1.5.0.zip -d ~/

$HOME/google_appengine/というフォルダが作成され、そこのファイルが格納される。

Python 2.5.5のインストール
$ cd ~/temp
$ wget http://www.python.org/ftp/python/2.5.5/Python-2.5.5.tgz
$ tar xvfz ./Python-2.5.5.tgz
$ cd Python-2.5.5
$ ./configure --prefix=$HOME
$ make
$ make install

configureに--prefix=$HOMEを指定することで、$HOME下にインストールされる。$HOME下にはbin、include、lib、shareというフォルダが作成され、その下に各ファイルが格納される。

Go SDKとPython 2.5.5にPATHを通す
$ vi ~/.bash_profile
PATH=$HOME/google_appengine:$HOME/bin:$PATH

のように、$HOME/google_appengineと$HOME/binが先頭に来るようにPATH環境変数を変更する。

$ source ~/.bash_profile
$ python -V
Python 2.5.5

のように、Python 2.5.5が動作することを確認する。

SSLモジュールのインストール
$ cd ~/temp
$ wget http://pypi.python.org/packages/source/s/ssl/ssl-1.15.tar.gz
$ tar xvfz ssl-1.15.tar.gz
$ cd ssl-1.15
$ make
$ make install
easy_installのインストール
$ cd ~/temp
$ wget http://peak.telecommunity.com/dist/ez_setup.py
$ python ez_setup.py
PILのインストール
$ easy_install -UZ PIL
X Client側(Linux)に、接続時にgnome-terminalを起動するスクリプトを準備
$ vi ~/xming_terminal.sh
#! /bin/bash
ibus-daemon -d -x
source ~/.bash_profile
export XMODIFIERS=@im=ibus
gnome-terminal --geometry=132x43

ibus-daemonの起動でiBusを用いた日本語入力を可能にしているつもり。標準だと[半角/全角]キーで切替。

$ chmod +x ~/xming_terminal.sh
X Server(Windows側・Xming)を準備

Download Files List - Xming X Server for Windows - OSDNから、Xming-6-9-0-31-setup.exeXming-fonts-7-5-0-34-setup.exeをダウンロードし、各々Windowsにインストールする。

その後「XLaunch」を起動し、上記で作成したスクリプト(xmiing_terminal.sh)を起動するようなランチャを作成する。

Select display settings
  ◎ Multiple windows
  Display number: 0
Select how to start Xming
  ◎ Start a program
Enter or choose one X client to Run Local or Run Remote
  Start program: $HOME/xming_terminal.sh
  Run Rmote
    ◎ Using PuTTY(plink.exe)
      Connect to computer: (LinuxのIPアドレスまたはHOST名)
      Login as user: gaego
      Password (leave blank if using PuTTy pageant): 

Passwordは何も書かないようにする(ランチャ起動時にプロンプトが起動して確認される)。もしここに書いてしまうと、平文で保存されてしまうので要注意。

Specify parameter settings
    レ Clipboard
    Additional parameters for Xming:
    -dpi 96

-dpi 96はターミナルのフォントサイズを大きくする設定。標準(75dpi)が小さいと思ったら指定しておく。

Configuration complete
  [Save configuration]

[Save configuration]で任意の名前で設定ファイル(ランチャ)を保存しておく。次回からはこれをダブルクリックすることで、保存した設定でXmingが起動される。
ランチャ起動後、gnome-terminalを閉じたとしても、X Server(Xming)は自動では終了してくれないため、タスクトレイ上に残ったXmingを手動で→クリック→「Exit」して終了すること。

"Hello, world!"アプリの試行

http://code.google.com/intl/en/appengine/docs/go/gettingstarted/helloworld.htmlを参考に、app.yaml及びhello.goファイルを用意する。
今回の試行では、開発用のディレクトリ($HOME/go)を用意し、その下にmyappを置いて、

/home/gaego/go/myapp
 ├─app.yaml
 └─hello
     └─hello.go

のような感じにして試した。

後は、Windows上から、上記で作成したランチャによりgnome-terminalを起動し、

$ firefox &
$ cd ~/go
$ dev_appserver.py --port=8080 myapp

のようにして、Firefox(バックグラウンドで起動)およびdev_appserverを起動した後、Firefoxから

http://localhost:8080/

にアクセスしてやると、問題が無ければ、

Hello, world!

が表示される。

独り言

これが、入れるだけで満足してしまって(もしくは疲れてしまって)、後が続かない症候群かぁ……。