Twitterを見れば分かるとおり最近RDF Storeの調査をしているのですが、その過程でOntoWikiを使おうとして色々嵌っているので、ログを残しておきます。現在Ubuntu10.04での動作を確認しています。

Virtuosoのインストール

Open Link Virtuosoは複数のデータ形式を統合して扱えるデータベースです。RDF Triple/Quad Storeとしても使え、SPARQLにも対応しています。Open Source版とClosed Source版があり、Closed版ではClusterやSnapshoなどの追加機能があります。ここではOpen Source版を使います。

まずVirtuoso Open Source Editionのインストールです。Ubuntuのrepositoryにあるのが6.1.0で、これだと最新のOntoWikiが不具合起こすので、debian squeezeから最新のソースパッケージ持ってきて再構築しました。


$ wget http://ftp.de.debian.org/debian/pool/main/v/virtuoso-opensource/virtuoso-opensource_6.1.1+dfsg1-1.dsc
$ wget http://ftp.de.debian.org/debian/pool/main/v/virtuoso-opensource/virtuoso-opensource_6.1.1+dfsg1.orig.tar.gz
$ wget http://ftp.de.debian.org/debian/pool/main/v/virtuoso-opensource/virtuoso-opensource_6.1.1+dfsg1-1.diff.gz
$ dpkg-source -x virtuoso-opensource_6.1.1+dfsg1-1.dsc
$ cd virtuoso-opensource-6.1.1

再構築に必要なパッケージをインストールします。

$ aptitude build-dep virtuoso-opensource
$ aptitude install quilt fakeroot

変更点はbuild formatを変えるだけです。changelogとかもそのままでbuildします。

$ echo "3.0 (quilt)" >debian/source/format
$ debuild -us -uc

ライブラリが足りなければ適宜インストールしてください。もし問題がなければ、上のディレクトリに*.debができているのでインストールします。インストール時にデータベースのパスワードを聞かれるので設定します。

$ dpkg -i ../*.deb

次のコマンドで問題なく起動できればインストール完了です。

$ /etc/init.d/virtuoso start

ODBCの設定 (要確認)

NOTE: この設定は必要ないかもしれないので要確認

まずodbcinstをインストールします。

$ aptitude install odbcinst odbcinst1debian1

その後、/etc/odbcinst.ini,odbc.iniを以下のように作成します。

- /etc/odbcinst.ini
[virtuoso-odbc]
Driver  = /usr/lib/odbc/virtodbc.so

- /etc/odbc.ini
[ODBC Data Sources]
VDS  = Virtuoso

[VDS]
Driver  = virtuoso-odbc
Description  = Virtuoso Open-Source Edition
ServerName  = localhost:1111

[VOS]
Driver  = /usr/lib/odbc/virtodbc.so
Description  = Virtuoso OpenSource Edition
Address = localhost:1111

OntoWiki

OntoWIkiはRDF用の閲覧・編集環境です。CMSと言ったほうがいいかもしれません。

とりあえずphp5とapacheの基本的な設定をしておく必要があります。解説を書いている方がたくさんいるので、やり方はググってください。一点追加で必要なのが、php5-odbcのインストールです。

$ sudo aptitude install php5-odbc

php5とapacheをインストールしたら、InstallFromMercurialに書かれている通りに、レポジトリから最新のソースをインストールします。

$ cd /var/www
$ hg clone https://ontowiki.googlecode.com/hg/ owrep
$ cd owrep/ontowiki/src/libraries
$ ln -s ../../../erfurt/src/Erfurt .
$ ln -s ../../../RDFauthor .

$ wget http://framework.zend.com/releases/ZendFramework-1.9.4/ZendFramework-1.9.4-minimal.tar.gz
$ tar xvzf ZendFramework-1.9.4-minimal.tar.gz
$ mv ZendFramework-1.9.4-minimal/library/Zend .
$ rm -rf ZendFramework-1.9.4-minimal.tar.gz ZendFramework-1.9.4-minimal

$ cd /var/www/owrep/ontowiki/src
$ cp htaccess-dist .htaccess
$ cp config.ini-dist config.ini

次にUsingOntoWikiWithVirtuosoを参考にconfig.iniの設定をします。

[private]
store.backend = virtuoso
store.virtuoso.dsn = VOS
store.virtuoso.username = dba
store.virtuoso.password = dba

その後OntoWikiに必要なディレクトリ作成します。


$ mkdir cache log uploads
$ chown www-data:www-data cache log uploads 

Apacheの設定をします。そのままトップに置くのなら/etc/apache2/sites-enabled/000-defaultのDocumentRootと該当Directoryを変更します。

DocumentRoot /var/www/owrep/ontowiki/src
<Directory /var/www/owrep/ontowiki/src>

Apacheを再起動した後、http://localhostにアクセスしてください。問題なければOntoWikiが表示されます。ユーザ名 Admin パスワードなしでログインすると管理画面になります。

Conference Model Demo

FirstStepにConferenceデータのデモの作り方がかかれています。注意する必要があるのは、もしlocalhost以外で動かす場合、Google Maps API Keyの設定が必要です。API Key取得ページで生成した文字列をontowiki/extensions/components/map/component.iniに設定します。

- ontowiki/extensions/components/map/component.ini
apikey.google = "生成した文字列"

evernote-ubuntuWineHQのEvernoteの項目にはある程度動くと書かれているので,前から試してみたいと思っていましたので,今回やってみました.結論から言うと,日本語表示・入力共に可能ですが,速度が実用的ではないです.今動かしているマシンはCore 2 Duo E8500+4GB memoryですが,動作がもっさりしています.

まず,最新のWineをインストールします.WineHQにはUbuntu8.10用のapt lineが用意されていますので,/etc/apt/sources.listに以下の行を追加します.


deb http://wine.budgetdedicated.com/apt intrepid main 

次に,aptのための公開鍵を取得し,Synaptic Package Managerの認証/AuthenticationからImportします.その後にwineをインストールすればOKです.wineのバージョンは1.1.13~winehq0~ubuntu~8.10-0ubuntu1でした.

この状態でEvernoteのWindows用インストーラをダウンロードし,ダウンロードしたディレクトリで$ wine Everenoteとコマンド打つと,インストールが始まります.特別な要求がなければデフォルト設定で大丈夫です.インストール終了後,$ wine "C:\Program Files\Evernote\Evernote3\Evernote"と入力することで起動できます.

しかしこの状態では日本語が表示できません.そこでWineLocaleをインストールします.詳しい説明はHOWTO: CJK in Wine (Chinese, Japanese & Korean) – Ubuntu Forumsに書かれていますが,既に日本語環境が設定されている場合はwinelocaleの設定だけ行えば使えます.まず,winelocaleよりwineloc-0.41.tar.gzを取得し,インストールします.


$ wget http://www.cinnamonpirate.com/pub/software/sh/wineloc-0.41.tar.gz
$ tar xvzf wineloc-0.41.tar.gz
$ cd wineloc-0.41
$ ./install

デフォルトの設定でEvernoteをインストールした場合,その実行ファイルはHOMEディレクトリの.wineの中にインストールされているはずです.そのため,以下のようなコマンドを入力することで,日本語表示可能なEvernoteが起動できます./home/userの部分を環境に合わせて変更してください./p>


$ wineloc -l ja_JP -f common
    /home/user/.wine/drive_c/Program Files/Evernote/Evernote3/Evernote.exe

日本語入力に関しては,SCIMを使っている限りでは何も設定なしで使えました.これはXIMなどの場合は問題になるかもしれません

また,winelocの作者が最近Google Codeにソースを移して開発を再開しているのですが,何故か日本語の設定が削られていたので動きませんでした.問題がわかればコミットしようと思います.

以前触れたとおり,私はDropboxをファイル共有に使っています.Linux版のDropboxはnautilusというGNOME用のファイルマネージャのアドオンとして作られているので,どの程度 KDE 上で動くか不安でしたが,今のところ問題なく動いています.

Ubuntu8.10用のソフトウェアをダウンロードしてインストールしようとすると,必要なライブラリも全部インストールしてくれます.または/etc/apt/sources.listに以下を書いてからaptitudeでインストールしても良いです.


deb http://linux.getdropbox.com/ubuntu intrepid main
deb-src http://linux.getdropbox.com/ubuntu intrepid main

ターミナルでnautilusを実行すると,Dropboxが右下のタスクバーに表示されますので,クリックするとアカウントの設定ができます.後はファイルの同期を待つだけです.

Xcute SlimにはUbuntuを入れようと思っていたのですが,KDE4のSemantic Desktopというネタ [1,2] を思い出したのでKubuntuを入れることにしました.

まだ少ししか触っていないのですが,どうもファイルやフォルダなどにタグをつけたりできるようです.また,ファイルの中身も含めた検索なども行うようですね.詳しくわかったら別途書きます.

とりあえず嵌ったのが Network Manager です. Network Manage rで固定 IP を指定しても何故か常に DHCP を取るため,Network Manager を OFF にしました.

$ sudo update-rc.d -f NetworkManager remove

その後,/etc/network/interfaces,/etc/resolv.conf を適切に変更すれば OK でした.eeeUbuntu のときもそうでしたが,Ubuntu の Network Manager はトラブルが多い気がします.

Ubuntu は Networkの管理にNetworkManagerというのを使っていますが,emobileでppp接続時は,何故かこれがonlineだと認識してくれません。表示を見ても”ネットワーク接続なし”となります。ちゃんと繋がっているのに。で,このNetworkManagerが各アプリケーションに今offlineだよとご丁寧に通知する機能がついているので,FirefoxやPidgin (MSNなどのIM client),Twitux (Twitter client)などが勝手にofflineモードになってしまいます。本来ならばNetworkManagerがppp接続も監視してくれればいいんですが,今回はNetworkManagerがアプリケーションにoffline通知をしないようにして問題回避しました。


$ cd /etc/dbus-1/system.d
$ sudo vi NetworkManager.conf
<allow send_interface="org.freedesktop.NetworkManager"/>を全部
<deny send_interface="org.freedesktop.NetworkManager"/>に変更
$ cd ../event.d
$ sudo ./25NetworkManager restart
$ sudo ./26NetworkManagerDispatcher restart

これでFirefoxを起動したときに自動的にofflineモードになったりしなくなります。

USBもEMONEも繋ぎ方は同じみたいです。右上のNetworkManagerから手動でネットワークを設定するを選びます。ロックの解除→PPP接続で、以下の設定をします。

  • 全般
    • 接続の種類: シリアルモデム
    • 電話番号: *99***1#
    • ユーザ名: em
    • パスワード: em
  • モデム
    • モデムのポート: /dev/ttyUSB0
    • ダイアルの種類: Tones
  • オプション: 全てチェック
    • モデムをインターネットに対するデフォルトルートにする
    • ISPプロバイダが提供するネームサーバを利用する
    • 切断されたり接続に失敗した場合に再試行する

再起動すると、NetworkManagerに新たにダイアルアップ接続という項目が追加されているので、”ppp0 via Modem に接続します” を選択します。そうすると、NetworkManagerのアイコンは何故か接続に問題ありのアイコンのままですが、インターネットに繋がっています。pingなどで確認してみて下さい。

eeeUbuntu 8/24の最新版だと、前の版で苦労したWEP+ステルスモードでも右上のNetworkManagerから指定することができました。かなり便利になっていますね
インターネットに繋げるようになったら、システムをアップデートします。


$ aptitude update
$ aptitude safe-upgrade

私の場合、この後にさらに一度upgradeの通知が来ました。新しいカーネルも入っているので、全部upgradeし終わったら再起動します。そうすると、システムが最新のEEE PCドライバをインストールするかどうかを聞いてくるのでインストールします。これを行わないと、無線LANなどが使えません。

パフォーマンス向上とSSD書込を減らす努力をします。まず、/var/log,/var/tmp,/tmpはtmpfs (RAMDISK) にしておきます。この用途だと昔のlogは見ないでしょうし。また、他のパーティションを、relatimeからnoatimeに変更して、ファイル読込時間を書き込まないようにします。但し、/homeだけはrelatimeにしたほうが、muttのようにatimeを見るアプリケーションを使う場合には良いようです。最近のカーネルはrelatimeがデフォルトらしいですね。/var/log, /var/tmp,/tmpの中身は、再起動する前に消しておきます。そうしないとディスクに残ったままになりますので。


$ sudo vi /etc/fstab
....
UUID=xxxxxxxxxxxxx  / ext2 noatime,errors=remount-ro 0 1
UUID=xxxxxxxxxxxxx /usr ext2 noatime 0 2
tmpfs /var/log tmpfs defaults,noatime 0 0
tmpfs /var/tmp tmpfs defaults,noatime 0 0
tmpfs /tmp tmpfs defaults,noatime 0 0

aptでインストールする際に、ディレクトリがないと文句を言われるので、rc.localのexit 0 の前にmkdir -p /var/log/aptを追加しておきます。


$ sudo vi /etc/rc.local
....
mkdir -p /var/log/apt
exit 0

次に、Firefoxのキャッシュを/tmpに書くようにします。一度Firefoxを起動後に、.mozilla/firefox/xxx.defaults/user.jsを作成します。


user_pref("browser.cache.disk.parent_directory","/tmp/firefox");

しばらくSDHCにライブCDの部屋のeeeUbuntuをインストールして試用していました。ステルスモードのWEPにつなぐのにちょっと手間取りましたが、それ以外は、SDHCにインストールしているときにサスペンドから復帰できない問題くらいです。EMONE経由でemobileにダイアルアップして普通に使えます。よって、XP消してSSDにeeeUbuntu入れることにしました。SSDに入れればサスペンドもできるようなので。

基本的には、eeeUbuntu 8.04が良くできているので、CD作成して日本語でインストールすればOKです。ジャーナリングファイルシステムだとSSDすり減らしそうなので、ext2に変更しました。パーティションは/sda (4G,SLC) → /, /sdb (8G,MLC) → /usrとしました。うまくいけば、SDHCを/homeにするかもしれません。swapはなしです。

インストール終了後に再起動すると、EeePC機種選択が表示されるので”Eee PC 901″を選択します。私はASCII配列じゃないとプログラミングなどの効率が悪いので、キーボードの設定を変更します。キーボードレイアウト→キーボードの形式→”Generic 105-key (Intl) PC”, レイアウト・オプション→Ctrlキーの位置→”CapsLockをもう一つのCtrlにする”, レイアウト追加→USAを設定すると、ASCII配列で、パイプ記号やバックスラッシュも入力できます。Generic 104だとこのキーが無入力になります。

この内容は続きます。