Linux 用と Windows 用の説明は両方ともここに含まれている。
Contents
推奨システム要件を満たすのに加えて、Metacat をインストールするつもりのサーバには 以下のソフトウェアがインストールされて正しく動作していなければならない。
Metacat を動かすためのシステム要件は、
この節では Linux システムへの Metacat のダウンロードとインストールについて 説明する。Mac OS X は BSD Unix が元になっているので、 これらの Linux 用の説明は Mac OS X にも適用できる。 (とは言えパッケージをダウンロード・インストールする正確なコマンドは、 パッケージ管理の方法が違うために異なっているが)
せっかちな人や、以前にMetacat をインストールしたことがあるので何をするのか 知っている人のために、ここでは Metacat のインストールに必要な 手順を示す。各手順の詳しい説明は以降の節で示す。
Metacat をインストールする前に、必要なソフトウェア全部がちゃんと インストールされて動作していることを確認すること。 インストールに必要な Metacat の WAR ファイルを入手するには、 以下のうちいずれかをダウンロードする。
3種類全部について以下に説明を記す。 なお、インストーラをダウンロードする方法(すぐ次の節で説明する)が一番 単純な方法である。
Metacat のインストーラをダウンロードすることが、Metacat を動かす 一番単純なやり方である。インストーラをダウンロードするには、
tar -xvzf metacat-bin-X.X.X.tar.gz
すると WAR ファイルと幾つかの補助ファイルのサンプルが現れるはずである (表 2.1)。この文書の残りの部分において、<metacat_package_dir> はパッケージファイルの展開を行った場所を示すものとする。
ファイル | 説明 |
---|---|
knb.war | Metacat の Web アーカイブファイル (WAR) |
knb | Ubuntu/Debian Linux システム用 Apache 設定ファイルのサンプル |
knb.ssl | Ubuntu/Debian Linux システム用 Apache 設定ファイルのサンプル(SSL版) |
jk.conf | Ubuntu/Debian Linux システム用 Apache JkMount 設定ファイルのサンプル |
workers.properties | Ubuntu/Debian Linux システム用 Apache worker 設定ファイルのサンプル |
authority.war | LSID サーバアプリケーション WAR |
Metacat のソース配布物を入手するには、
tar -xvzf metacat-src-X.X.X.tar.gz
WAR ファイルを直接作成する必要はない。なぜなら Ant の build ファイルに “install” ターゲットが含まれていて、ビルドとデプロイを実行してくれる からである。
もし Metacat の最新コードを使いたいか、Metacat のコードを自分で 拡張したいなら、SVN から Metacat のソースコードをチェックアウトする こともできる。その場合は SVN クライアントをインストールして 設定する必要がある(この節の最後に SVN クライアントを 入手するための情報がある)。
SVN からコードをチェックアウトするには、 コードを置きたいディレクトリに移動して、次のように入力する:
svn co https://code.ecoinformatics.org/code/metacat/tags/METACAT_<rev> metacat
ここで <rev> というのはチェックアウトしたいバージョンである (2_0_0 のように指定する)。
head (開発中の最新コード)をチェックアウトするには、:
svn co https://code.ecoinformatics.org/code/metacat/trunk metacat
画面にはチェックアウトするファイルのリストが表示されるはずである。
WAR ファイルを直接作成する必要はない。なぜなら Ant の build ファイルに “install” ターゲットが含まれていて、ビルドとデプロイを実行してくれる からである。
Metacat のインストール・実行の前に、最新の Java SDK、 PostgreSQL (または Oracle のような他の SQL92 互換な RDBMS) 、(もしソースからインストールする場合は)Ant 、 Tomcat がインストールされ正しく動作していることを確認しなければならない。 また Apache ウェブサーバをインストールすることを強くお勧めする。 Apache はより頑強なウェブサービス環境を提供し、Metacat の幾つかの機能の ために必要だからである。
Metacat を動かすには Java 6 を使うべきである (Java 5 はお勧めしないし、Metacat 1.9.2 以降はサポートしない予定だ)。 JAVA_HOME 環境変数が正しく設定されて java と javac が PATH に存在することを確認すること。
Ubuntu/Debian で Java をインストールするには、 適切な自己展開式のインストーラをダウンロードする:
wget http://download.oracle.com/otn-pub/java/jdk/6u30-b12/jdk-6u30-linux-x64.bin
そして以下のコマンドを実行してインストールする:
sudo mkdir -p /opt/java/64
sudo mv jdk-6u30-linux-x64.bin /opt/java/64
cd /opt/java/64
sudo chmod +x jdk-6u30-linux-x64.bin
sudo ./jdk-6u30-linux-x64.bin
sudo update-alternatives --install "/usr/bin/java" "java" "/opt/java/64/jdk1.6.0_30/bin/java" 1
インストールの過程でライセンス条項に合意しなければらない。
Ubuntu/Debian 以外の場合は、 Oracle のウェブサイトから Java を入手して、RPM や他のインストーラを用いてインストールできる。
Tomcat 6 をインストールすることをお勧めする(インストール先はどこでもよい)。 Metacat のダウンロードファイルに Tomcat 用の起動スクリプトが入っているので これも同様にインストールするべきだ。
なお、これ以降、<tomcat_home> は Tomcat をインストールしたディレクトリを 表す。
Ubuntu/Debian の場合、Tomcat を入手するには:
sudo apt-get install tomcat6
そうでなければ、 Apache Tomcat のページから Tomcat を入手すること。
Tomcat のインストール後、Sun JDK に切り替えるには、:
sudo update-alternatives --config java
と入力して正しい Java を選ぶ。
Tomcat を Apache/mod_jk で動かすには、 次の設定ファイルの該当部分のコメントを外して AJP コネクタが 8009 番ポートで動くようにする:
<tomcat_home>/conf/server.xml
DataONE 用に配置するには、:
/etc/tomcat6/catalina.properties
を編集して以下の設定を加える:
org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true
org.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH=true
Metacat を Tomcat サーバだけで動かすこともできるが、 幾つかの理由により、 Apache ウェブサーバの背後で動かすことを強くお勧めする。 Tomcat を Apache サーバと一緒に動かす方がより頑強な ウェブサービス環境を作れるからだ。 Metacat Registry や Metacat のリプリケーション機能を使いたい場合は Apache ウェブサーバは必須である。 (訳註・以下の記述で Mod JK を使用しているが、Mod JK は 古い技術であり、現在では mod_proxy_ajp を用いるのが 一般的である)
この節には Ubuntu/Debian システム上で Metacat 用に Apache を インストール・設定するための説明が記されている。 他の Linux システム上で動かすための Apache の設定についてはサイドバーに 記されている。
sudo apt-get install apache2 libapache2-mod-jk
Ubuntu/Debian システム上で Apache サーバをインストールしていて、 かつ上述のように apt-get を使って Apache をインストールした場合、 Metacat コード内の補助ファイルをそのまま Apache の設定ディレクトリに 置くことができる。 Metacat をバイナリでインストールしたかソースからインストールしたかに 応じて、補助ファイルは次のどちらかにあるはずである。
sudo cp <metacat_helper_dir>/debian/jk.conf <apache_install_dir>/mods-available
sudo cp <metacat_helper_dir>/debian/workers.properties <apache_install_dir>
sudo a2dismod jk
sudo a2enmod jk
sudo cp <metacat_helper_dir>/knb <apache_install_dir>/sites-available
sudo a2ensite knb
sudo a2dissite 000-default
sudo /etc/init.d/apache2 restart
Metacat は主に PostgreSQL を用いてテストされてきたので、 PostgreSQL を用いることをお勧めする。 Oracle のインストール・設定については次節に記す。 PostgreSQL をインストール・設定するには、
sudo apt-get install postgresql他のシステムの場合、postgres の rpms をインストールする。
sudo /etc/init.d/postgresql-8.4 start
sudo su - postgres
gedit /etc/postgresql/8.4/main/pg_hba.conf次行を設定ファイルに追加する。
host metacat metacat 127.0.0.1 255.255.255.255 password設定ファイルを保存して、Metacat データベースを作成する。
createdb metacat
psql metacat
CREATE USER metacat WITH UNENCRYPTED PASSWORD 'your_password';ここで ‘your_password’ はどんなパスワードでもよい。
\q
/etc/init.d/postgresql-8.4 restart
logout
psql -U metacat -W -h localhost metacat
\q
Metacat サーブレットは自動的に必要なデータベースシェーマを作成する。 データベースの設定についてより詳しくは、 「データベースの設定」を参照すること。
Metacat に Oracle を使用するには、Oracle RDBMS がシステム上に インストールされてデーモンとして動いていなければならない。 加えてJDBCリスナが有効化されていなければならない。 Oracle ユーザとしてログインしてそれを有効化し、次のコマンドを実行する。:
lsnrctl start
データベースに少なくとも 5 MB のテープル容量があるべきである (10MB以上推奨)。また Metacat 専用のユーザ名を作成して有効化しなければ ならない。Metacat ユーザは主な通常パーミッション CREATE SESSION, CREATE TABLE, CREATE INDEX, CREATE TRIGGER, EXECUTE PROCEDURE, EXECUTE TYPE, などを含む)を持っていなければならない。 もし Metacat が予期しない拒否をする場合は、ユーザのパーミッションが (おそらく)正しく設定されいない。
Metacat サーブレットは自動的に必要なデータベースシェーマを作成する。 データベースの設定についてより詳しくは、 「データベースの設定」を参照すること。
ソース配布物、または SVN からチェックアウトしたソースコードから Metacat をビルドする場合、Ant が必要である。 (バイナリ配布物からMetacat をインストールする場合は必要ない) Ant は Java ベースのビルドツールで Unix システムの Make のようなものである。 Ant はインストールディレクトリの大元にある “build.xml” というファイルからビルド情報を得る。Metacat のソースコードには 初期状態の “build.xml” か含まれているが、インストールのために いくらかの修正が必要かもしれない。
Ubuntu/Debian を使っている場合、Ant を入手するには、:
sudo apt-get install ant
そうでない場合、 Apache Ant のホームページからAntを入手する。
Ant がインストールされて “ant” の実行スクリプトがユーザのパス上で 使用可能になっているべきである。 最新バージョンの Metacat リリースはAnt 1.8.2.でテストされた。
新規インストール、アップグレード、ソースインストールについて以下で説明する。
Metacat のインストールの前に、必要なアプリケーションがすべてインストールされ、 Metacat 用に設定され、正しく動作していることを確認せよ。 既存の Metacat サーブレットをアップグレードする場合は、 「Upgrade」まで読み飛ばすように。 ソースからのインストールについての情報を得るには 「ソースインストールとアップグレード」まで読み飛ばせ。
新しい Metacat サーブレットをインストールするには、
sudo mkdir /var/metacat
sudo chown -R <tomcat_user> /var/metacat
sudo cp <metacat_package_dir>/knb.war <tomcat_app_dir>
sudo /etc/init.d/tomcat6 restart
おめでとう! Metacat のインストールが完了した。 すべて正しくインストールされた場合、ブラウザに http://yourserver.com/yourcontext/ (たとえば http://knb.ecoinformatics.org/knb )を入力すると 認証設定画面(図 2.1)が見えるはずである。 Metacat の設定についてより詳しくは、「設定」の節を参照すること。
Metacat の新規インストール後の初回アクセス時に認証設定画面が出て来る。
バイナリでインストールされた既存の Metacat をアップグレードするには、 以下の手順の通りにする。 ソースから Metacat をアップグレードする手順は、ソースからインストールする 場合と同じである。
Metacat のダウンロードと展開についてより詳しくは、 「Metacat のダウンロード」を参照せよ。
実行中の Metacat を停止する。Metacat を停止するには、 Tomcat サーバの実行ユーザ(たいていは “tomcat”)でログインして、
/etc/init.d/tomcat6 stop
cp <web_app_dir>/knb <backup_dir>/knb.<yyyymmdd> cp <web_app_dir>/knb.war <backup_dir>/knb.war.<yyyymmdd>警告・ファイルを <web_app_dir> ディレクトリにバックアップしないように。 Tomcat はバックアップされたものをサービスとして実行しようとしてしまう。
sudo cp <metacat_package_dir>/knb.war <tomcat_app_dir>註・典型的には、Tomcat は <tomcat_home>/webapps ディレクトリにある アプリケーションファイル (WAR ファイル)を探す。別のディレクトリを 探すように Tomcat が設定されているかも知れない。
sudo cp <metacat_package_dir>/authority.war <tomcat_app_dir>
/etc/init.d/tomcat6 restart
http://yourserver.yourdomain.com/yourcontext/
上記 URL の “yourcontext” の部分は実際のコンテクスト名に置き換えるように。 (knb.war のファイル名を別の名前に変更しないかぎり、コンテクスト名は knb のはず) もしすべてが正しく動いているなら、Metacat の認証設定画面が出て来る はずだ。 なお、Tomcat を Apache と連携させていない場合は、もしかしたら http://yourserver.yourdomain.com:8080/yourcontext/ と入力しなければならないかも。
Metacat のビルドをソース配布物から行うのか、SVN からチェックアウトした ソースコードから行うのかに係らず、ビルドには Apache Ant が必要である (Ant についてより詳しくは「必要なソフトウェアのインストールと設定」 を参照すること)。
Metacat をソースからインストールするには、
- build.tomcat.dir プロパティに Tomcat のインストールディレクトリを指定する。 Metacat はビルドに Tomcat 固有のライブラリを使用するのだ。たとえば、 build.tomcat.dir=/usr/local/tomcat とする。
- app.deploy.dir プロパティにアプリケーションの配置ディレクトリを指定する。 たとえば、app.deploy.dir=/usr/local/tomcat/webapps
sudo ant clean install個々のモジュールがビルドされる様子が見えるはずである。 最後に “BUILD SUCCESSFUL” というメッセージが表示されるだろう。
アプリケーションの配置ディレクトリに knb.war という名前の新しいファイルが 見えるはずである。
新しい Metacat サーブレットを動かすには、ウェブブラウザを開いて以下を入力する。:
http://yourserver.yourdomain.com/yourcontext/
(たとえば http://knb.ecoinformatics.org/knb/)
knb.war というファイル名を変更しないかぎり、コンテクストは knb になっている はずである。サーブレットが起動するまで数秒の時間が必要かも知れない。 しかし一旦起動すれば、認証設定画面が現れるだろう。
Note
LSID 識別子のサポートはお勧めしないし、また将来的にはこれは DOI 識別子に 置き換わる。LSID サポートのメンテナンスはひとつの特定サイトのために 続けているが、将来のバージョンでは Metacat から除く予定である。
Metacat の LSID サーバは、Metacat 内部の独自の識別子のシェーマに加えて、 データセット同定のための標準化された文法が使える様にする。 LSID は複雑な生物学上の実体を短い識別子(出版における DOI のように)で 同定するように企画されたもので、コンピュータにも人間にも読めるものである。 LSID 識別子は URL であり、そのためインターネットアプリケーションにとっては 使いやすいものだが、しかしまたデータセットの同一性(つまり恒久的な 識別子)を現在の置き場所(たとえばデータを取り出すことができる URLのリスト) から綺麗に分離している。 LSID はこのことを1段階の間接レベルで達成している。 識別子は単に場所を除いた名前を表しているのだが、関連する参照解決サービスを 使うと そのデータセットのデータとメタデータの現在の場所を発見することができるのである。 これは、SRV レコードと呼ばれる、 DNS のあまり使われない機能を使用することで、担当機関ごとに参照解決サービスのための 単一の既知の場所を確立することによって達成している。 最も原理的には、クライアントがDNSの問い合わせをして LSID のための SRV レコードを調べて、それが参照解決の権限を持つウェブサービスの ホスト名とポート番号を返答し、さらにそれがデータとメタデータの 場所を探すのに使われる、というふうにして識別子の参照が実行される。
データレコードの同定に LSID を使用することについて 分類学データベースワーキンググループ (TDWG) のメンバーの間で 議論がされている。幾つかの代替技術が考慮されているところである (たとえば DOI 、生の http URL )、そして今回は Metacat における LSID のサポートは実験的な理由のみに基づいて作成された。 もし LSID アプローチが広範囲のコミュニティに支持されるのであれば、 Metacat における LSID サポートを拡張していきたいが、しかし それまでの間はこれは実験的なお好み機能である。
LSID の書式は:
urn:lsid:<Authority>:<Namespace>:<ObjectID>[:<Version>]
e.g., urn:lsid:ecoinformatics.org:tao:12039:1
Metacat の LSID サポートを有効化した時、LSID クライアント (LSID ランチパッドのような)と LSID の注釈を使って Metacat にダータとメタデータを問い合わせることができる。 LSID の注釈は Metacat の HTTP 問い合わせに直接使う事ができる。 たとえば、http://example.com:9999 という Metacat に格納されている tao.12039.1 というIDのデータパッケージは、 以下のMetacat用 HTTP 問い合わせによってアクセスできる。
http://example.com:9999/authority/data?lsid=urn:lsid:ecoinformatics.org:tao:12039:1
(データを返す場合)
http://example.com:9999/authority/metadata?lsid=urn:lsid:ecoinformatics.org:tao:12039:1
(メタデータを返す場合)
なお、HTTP の問い合わせ文字列において、データパッケージID のピリオド記号は コロン記号に置き換えられる。担当機関(ecoinformatics.org) は Metacat 管理者によって正しく設定されていなければならない。 註・担当機関の設定のためには、Metacat ドメインのための DNS サーバに アクセスしなければならない。より詳しい説明は以下に記す。
バイナリインストールで LSID サーバをインストールするには、
sudo cp <metacat_package_directory>/authority.war /usr/share/tomcat6/webapps
authority ファイルを Apache の sites-available に置いて、 a2ensite を実行してサイトを有効化して LSID サーバを設置する。
sudo cp <metacat_helper_dir>/authority /etc/apache2/sites-available
sudo a2ensite authority
Tomcat を再起動する。Tomcat の実行ユーザ(たいていは “tomcat”) でログインして、
/etc/init.d/tomcat5.5 restart
Apache を再起動して変更を反映させる。
sudo /etc/init.d/apache2 restart
authority.context=authority config.lsidauthority=ecoinformatics.org
sudo ant war-lsid
sudo cp <metacat_package_dir>/dist/authority.war <tomcat_app_dir>
/etc/init.d/tomcat6 restart
sudo cp <metacat_helper_dir>/authority <apache_install_dir>/sites-available sudo a2ensite authorityなお <metacat_helper_dir> は <metacat_code_dir>/src/scripts にある。
sudo /etc/init.d/apache2 restartauthority.war をインストールしたら、Metacat をホスティングしている ドメインの DNS サーバ上の SRV レコードを修正しなければならない。 このレコードは metacat の DNS サーバのマスターゾーンファイルに 追加するべきである。
_lsid._tcp IN SRV 1 0 8080 <metacat.edu>.ここで <metacat.edu> は AuthorityService の物理的な場所として 動作しているコンピュータの名前である。
たとえば、以下の例で、<metacat.edu> の値は example.com である。
http://example.com:9999/authority/data?lsid=urn:lsid:ecoinformatics.org:tao:12039:1より詳しくは、 http://www.ibm.com/developerworks/opensource/library/os-lsid/ を参照せよ。
KNB のウェブサイトに、よく起こる問題とその解決方法のリストを用意している。 随時更新しているので見てほしい。 http://knb.ecoinformatics.org/software/metacat/troubleshooting.html
Metacat は Windows にインストールすることができる。 この節の説明に従って、Metacat をダウンロードし、必要なソフトウェアを インストールし、Metacat をインストールするように。 なお、Registry と Data Upload 機能は Windows 上では テストしていないということに注意されたし。
Metacat WAR ファイル(Metacat サーブレットのインストールに使用する)を 入手するには、
註・この文書の残りの部分において、このファイルを展開した場所のことを <metacat_package_dir> と表記することとする。
註・Metacat をインストールする前に、必要なソフトウェアがすべて インストールされ正しく動作していることを確認せよ。
Metacat をインストールして実行する前に、 最新の Java SDK、PostgreSQL、 Tomcat がインストールされ、設定されて 正しく動作していることを確認しなければならない。
Metacat を実行するには、Java 6 が必要である。 (Java 5 はお勧めしない) JAVA_HOME 環境変数が正しく設定されて java と javac が PATH に存在する ことを確認せよ。
Java をダウンロードしてインストールするには、
System Variable: JAVA_HOME C:\Program Files\Java\jdk1.6.0_18 (ダウンロードしたバージョンに応じて変えること)
Tomcat バージョン 6 をインストールすることを推奨する。 Tomcat をダウンロードしてインストールするには、
Metacat は幾つかのSQL92互換のデータベースシステムを使って動かすことができる。 しかしテストは主に PostgreSQL で行われた。 Metacat 用に PostgreSQL をインストールして設定するための説明が この節に記されている。
PostgreSQL をダウンロードしてインストールするには、
host metacat metacat 127.0.0.1 255.255.255.255 password
C:\Program Files\PostgreSQL\8.3\bin createdb -U postgres metacat (スーパユーザのパスワードを入力する)
psql -U postgres metacat (スーパユーザのパスワードを入力する)
CREATE USER metacat WITH UNENCRYPTED PASSWORD 'your_password'
\q
run start/All Programs/PostgreSQL 8.3/Stop Server run start/All Programs/PostgreSQL 8.3/Start Server
Psql –U metacat –W –h localhost metacat
\q
Metacat サーブレットは自動的に必要なデータベースシェーマを作成する。 より詳しくは、「データベースの設定」を参照のこと。
新規インストール、およびアップグレードの説明を以下に記す。
Metacat をインストールする前に、必要なソフトウェアすべてが インストールされ、Metacat 用に設定されて正しく動作していることを確認せよ。 既存の Metacat サーブレットをアップグレードする場合は、 「アップグレード」まで読み飛ばすこと。
新しい Metacat サーブレットをインストールするには、
C:/Program Files/metacat
copy <metacat_package_dir>\knb.war C:\Program Files\tomcat\webapps
C:\Program Files\tomcat\shutdown.bat C:\Program Files\tomcat\startup.bat
おめでとう! これで Metacat を設定する準備が整った。 より詳しくは「設定」の節を参照すること。
既存の Metacat をアップグレードするには、
<web_app_dir>/knb to <backup_dir>/knb.<yyyymmdd> <web_app_dir>/knb.war to <backup_dir>/knb.war.<yyyymmdd>警告・knb ディレクトリを <web_app_dir> ディレクトリに バックアップしないように。Tomcat はバックアップされたものを サービスとして実行しようとしてしまう。
copy knb.war C:\Program Files\tomcat\webapps
C:\Program Files\tomcat\shutdown.bat C:\Program Files\tomcat\startup.bat
おめでとう! これで Metacat を設定する準備ができた。 より詳しくは「Metacat の設定」を参照のこと。