UbuntuにGoogle Waveを入れてみた
Google Waveってインストールできるんだ?!ここでインストールされるのはwave-protocolというGoogle Waveのドラフト仕様的なものの実装らしい。そして、簡単なクライアントサーバのサンプルがついている。最終的には、2つコンソールをあげてチャット見たいなことが出来るようになる。
id:technohippyさんの日記にMacOSXようのインストール記事があったのでそれを参考にしています。
もろにゲリラ豪雨食らった - ずっと君のターン
あと、本家のインストール手順。
Google Code Archive - Long-term storage for Google Code Project Hosting.
私の場合、UbuntuにインストールするのでMacOSXの場合よりも多少簡単だった気がします。
いるもの
OpenfireっていうXMPPサーバがあって、その拡張としてwave-protocolをインストールするような感じ。XMPPというプロトコルはXMLベースのメッセージ交換プロトロルっていうところなのかな、メッセージをプッシュするのに向いているらしいので、Google Waveのようなリアルタイムな共同作業を行うアプリにうってつけってことだったんだろうね。
XMPPはクラウドサービスの将来像か?
JRE6のインストール
OpenJDK入ってるからいらないや、と思ってたんだけど、Openfire入れるときにsun-java6-jreがいるよって怒られたので仕方なくインストール。
sudo apt-get install sun-java6-jre
Openfireのインストール1
以下の場所から、Ubuntu用のパッケージ「openfire_3.6.4_all.deb」をダウンロードして、ダブルクリックでインストール。簡単。
http://www.igniterealtime.org/downloads/index.jsp
インストール出来たら既に起動までしてるみたい。ここで一回再起動しておくらしい。
sudo /etc/init.d/openfire restart
Openfireのセットアップ
ここからは、ブラウザからアクセスしてOpenfireの初期設定をすることになる。以下のURLへアクセス。
http://localhost:9090
1.言語を選択。残念ながら日本語はない。
2.ドメインかIPを選択。らしんだけど、ドメインとかないので、とりあえずホスト名を入れておく。私の場合は「ari」
3.データベースを選択。ここでは、Embeddedを選択しておく
外部のDBを使う場合は、「Standard Database Connection」を選ぶと次の画面で外部のDBに接続するための設定がある。
4.Defaultを選択
5.Administratorのアカウント追加画面らしけど、この設定は適当でよいのかな。このあとどこでも使わなかったよ。
6.お、完了。
さて、ここで、Login to the admin consoleをクリックしたい所だけど一旦再起動
sudo /etc/init.d/openfire restart
そしてまた、http://localhost:9090にアクセス
ログイン画面が現れるのでユーザ名とパスワードを入れてログイン。ユーザ名は上で登録したメールアドレスではないとのことなので注意。
- ユーザ名:admin
- パスワード:admin
ここからまた、設定を行っていく
1.Server>Server Settings>External Componentと選択。Enabledにチェックを入れ、Default shared secretに「himitu」と入れて(これは、なんでもいいんだと思う。)「Save Settings」を押して保存。
2.すると、下の方に「Allowed to Connect」という部分が現れるので、Subdomainに「wave」、Shared secretに上で入力した文字「himitu」を入力。「Add component」を押して追加。これで、Openfireからwave-protocolを利用するための設定ができた。
3. 次にセキュリティの設定を行う。
Server>Server Settings>Security Settingsを選択。
Server Connection Securityの「Custom」を選択し、Server Dialback:が「Available」になっているのを確認、「Accept self-signed」にチェックを入れる。(これはあとで、自己証明書を使うための設定だと思う。)
4.Server>Server Settings>Registration Settingsを選択。すべて、Disabledにしておく。
5.Server>Server Settings>Compression Settingsを選択。Server Compression PolicyのAvailableにチェック。Server-Server間の通信を圧縮するようにするのかな。
6.Server>Server Settings>File Transfer Proxy Settingsを選択。Disabledにしておく。
ここまでで、Openfireの初期設定は完了。次は、自己証明書を作成するんだけど、以下のWikiに簡単に証明書を作るためのスクリプトがあるのでそれを利用する。
Google Code Archive - Long-term storage for Google Code Project Hosting.
自己証明書のインストール
まず、上のWikiにあるスクリプトをコピーして「make-cert.sh」ファイルを作成
#!/bin/bash NAME=$1 if [ "$NAME" == '' ] then echo "$0 <certificate name>" 1>&2 exit 1 fi openssl genrsa 1024 | openssl pkcs8 -topk8 -nocrypt -out $NAME.key openssl req -new -x509 -nodes -sha1 -days 365 -key $NAME.key -out $NAME.cert
実行権限をつけて、
chmod +x make-cert.sh
以下のように実行する
./make-cert.sh test Generating RSA private key, 1024 bit long modulus ..........++++++ ....++++++ e is 65537 (0x10001) You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:JP State or Province Name (full name) [Some-State]:Tokyo Locality Name (eg, city) []:Chiyoda Organization Name (eg, company) [Internet Widgits Pty Ltd]:Ari Organizational Unit Name (eg, section) []:Sys Common Name (eg, YOUR name) []:ari Email Address []:
Common Nameは「ari」(ホスト名)としておく。これは初期設定のDomainの所で入力したものと一緒にしとかないといけないみたい。
するとtest.keyとtest.certという2つのファイルが作成される。
証明書の内容を確認
openssl x509 -text -in test.cert
証明書とキーが一致するか確認。出力された文字列が同じだとOKってことかなー。
openssl x509 -modulus -in test.cert -noout openssl rsa -in test.key -modulus -noout
確認できたら、自己証明書は完成。
wave-protocolをインストール
ようやく、waveにきた。こいつは、mercurialを使ってチェックアウトしてきてから、Antでコンパイルする必要があるっぽい。mercurialとAntをインストールしておく。
sudo apt-get install mercurial sudo apt-get install ant
ソースをチェックアウト
hg clone https://wave-protocol.googlecode.com/hg/ wave-protocol
すると、wave-protocolってディレクトリが出来ているはず。ここにソースコードが入ってる。
先ほど作成した「test.key」と「test.cert」を移動しておく。例えば以下のような感じ。
mv test.* ./wave-protocol
次に、run-server.shの設定を変更。(変更部分のみ抜粋)
#echo "You need to edit the run-server.sh script" ; exit 0 #PRIVATE_KEY_FILENAME=your_private_keyfile.key #CERTIFICATE_FILENAME_LIST=certificate_file.cert #CERTIFICATE_DOMAIN_NAME=yourdomainnamehere PRIVATE_KEY_FILENAME=test.key CERTIFICATE_FILENAME_LIST=test.cert CERTIFICATE_DOMAIN_NAME=ari
ここでは、作成した証明書、秘密鍵、初期設定で指定したDomain名を設定する。
そして、Antでコンパイル!
ant dist ・・・略 BUILD SUCCESSFUL Total time: 1 minute 9 seconds
BUILD SUCCESSFULと出たらビルドせいこー。
以下の様にしてサーバを起動しておく。
./run-server.sh
クライアントを動かしてみる
もろにゲリラ豪雨食らった - ずっと君のターン
id:technohippyさんの所にあるようにCUIのサンプルプログラムを動かしてみる。
wave-protocolディレクトリ内に「run-client.sh」ファイルがあるのでこれを以下のように修正
#echo "You need to edit the run-client.sh script" ; exit 0 # Use the same flag for the domain name as CERTIFICATE_DOMAIN_NAME in # run-server.sh. #WAVE_SERVER_DOMAIN_NAME=yourdomainnamehere WAVE_SERVER_HOSTNAME=127.0.0.1 WAVE_SERVER_PORT=9876 WAVE_SERVER_DOMAIN_NAME=ari
ここで、Domain名を同様に「ari」に変更しておく。これで設定は完了。
端末を2つあげておき、一方で
./run-client.sh admin
もう一方で、
./run-client.sh hironemu
としてクライアントを起動する。
そして、id:technohippyさんの例と同じようにadminの方の端末で以下のように入力。
admin@ari> /new admin@ari> /open 0 admin@ari> hello admin@ari> world admin@ari> isn't this nice? admin@ari> /add hironemu@ari
と入力すると、hironemuで起動したクライアントの方にもメッセージが送信されている。って、感じ。
で、これが何なのかっていうと、何なんだろうね。それはこれから調べるんだよ。できたよ、id:stokiwaくん。あとはよろしく。
いかん、やりすぎた。同じようにインストール手順書くだけでこんなに大変だとは(_ _)zzz