DSpace システム説明書: インストール

目次に戻る

インストールに必要なソフトウェア

以下はDSpaceサーバを稼働させるために必要なコンポーネンツやツールをリストアップしたものです。これらはMITにおける私たちの構築経験に基づいた単なる推奨リストです。DSpaceはオープンソースの標準的なツールを使って作成されていますので、これ以外にも多くの選択肢や構築法が存在します。

また、以下に示した特定のツールに関する設定やインストールのガイドラインは便宜上ここにあげたにすぎないことに注意してください。 完全で最新の内容については、個々のコンポーネンツのドキュメントを参照してください。多くのツールは頻繁にバージョンアップされているので、以下に示したガイドラインは最新版では正しくないかもしれません。

UNIXライクなOS

DSpaceはHP/UX, Linux, Mac OS Xでの稼働を確認しています。 (Solarisのような)その他のUNIXライクなOS上でもDSpaceは問題なく動くはずです。

Java 1.3以降

DSpaceはJava 1.3と1.4での稼働を確認しています。必要なものは標準的なSDKだけで、J2EEは必要としません。

Javaライブラリ

次のJavaライブラリをダウンロードする必要があります。

残念ながら、これらのライブラリはライセンスの関係でDSpaceソースコードに含めることができませんでした。

Java サーブレットコンテナ/アプリケーションサーバ

現在のところ、私たちはTomcat 4.0+を使用しています。 なぜなら、Tomcatは、サーブレット 2.3とJSP 1.2のオープンソースの参照実装であるからです。 JettyCaucho Resinのようなその他のアプリケーションサーバでもDSpaceは稼働するはずです。

Apacheと連携して使用する場合は、Tomcat 4.0.6が最良のバージョンです。 Tomcatをスタンドアロンで使用する場合は、最新のバージョンを使用してください。Tomcat 4.1.12は バグのために新しいセキュリティ機能(シンポリックリンクをたどらない)を無効にすることができないので使用できません。

TomcatはDSpaceユーザでインストールし、実行する必要があります。アップロードファイルを書き込み可能にするためです。 既に他のアプリケーションのためにTomcatを使用しているサーバにDSpaceをインストールする場合は、DSpaceをTomcatのユーザでインストールしてください。 以下では、あなたがTomcatについてある程度知っており、どのように動くかを知っていると仮定します。

Unicodeを正しく扱えるように、次の環境変数をセットした上で、Tomcatを実行する必要があります。また、デフォルトのJVMメモリヒープサイズは比較的小さいので大きくします。 変数-Xmx512M(最大ヒープサイズを512MBにする)と -Xms64M(Java スレッドスタックサイズを64MBにする)は、使用するハードウェアに合わせて調整してください。

JAVA_OPTS="-Xmx512M -Xms64M -Dfile.encoding=UTF-8"
Apache 1.3

セキュリティ機能を高めるためにTomcatをApacheに接続することができます。 私たちはApache 1.3を使用していますが、2.0でテストしたところ、apache13.confを少し変更(ServerNameデレクティブにポート番号を追加)すれば稼働しました。 しかしながら、(本番サービスとして立ちあげるのではなく)とりあえずDSpaceを評価するだけなら、おそらく、ApacheとTomcatの連携に伴う問題に苦労する必要はないでしょう。

私たちはApacheを主として、SSLとX509証明書機能(mod_ssl)のために使用しています。 私たちは、DSpaceに対するすべてのアクセスはSSLを通すべきであると決めました。なぜなら、オーバーヘッドはそれほど大きくないし、SSLと非SSLの間の切り換えが問題となりそうだからです。 ある種のリソース(コレクション、アイテム、個々のビットストリームなど)へのアクセスは制限し、その他は制限しないということが可能であるので、URL単位でSSLか非SSLかを判断することは大変です。

DSpaceをmod_sslなどが設定されていないHTTP上で稼働することはあまり安全ではないことに注意してください。パスワードが暗号化されずに転送されるからです。

DSpaceのソースコードには、Apache設定ファイルの断片であるapache13.confが含まれています。このファイルにはDSpaceの稼働に必要な設定のほとんどが書かれています。 ただし、このファイルの使用も必須ではありません。1つの例として参考にするだけでもかまいません。 Apacheの設定ファイルhttpd.confを直接変更する場合は、以下の点に注意してください。

Ant 1.5

AntはJavaで書かれたクロスプラットフォームに対応したオープンソースの「make」相当のプログラムです。 Antは「Java向き」にできていますので、CLASSPATHやJavaプロパティファイル(たとえば、DSpaceのメイン設定ファイル)などの処理が得意です。

PostgreSQL 7.3+

トランザクション・コミット/ロールバック機能を持つオープンソースの優れたデータベースです。DSpaceにはPostgreSQL特有の機能を使用している箇所がたくさんあります。うまくいけばこのうちのいくつかを取り除いて、任意のANSI SQLデータベースをバンクエンドとして使用できるようになるでしょう。 以前のバージョンにあったユニコードの扱いの問題が修正されていますので、PostgreSQL 7.3以降をインストールします。 configureを実行する際には必ずオプション、--enable-multibyte(最新版ではこれはデフォルトで設定されています)と--enable-unicodeを指定します。 しかるべきJDBCドライバをコンパイルする必要がありますので、--with-javaオプションも指定します。 次にPostgreSQLをコンパイルし、作成された postgresql.jar を dspace-1.1/libにコピーします。

インストール後、JDBCがTCP/IP接続で作動するように設定する必要があります。このためのオプションは/usr/local/pgsql/data/postgresql.confの先頭に置きます(tcpip_socket = trueを追加します)。

パフォーマンスを高めるために、定期的にデータベースを「vacuum」する処理を「cron」で起動すると良いでしょう。次のような行をcrontabに追加します。

# clean up the database nightly at 2.40am
40 2 * * * vacuumdb --analyze dspace > /dev/null 2>&1

インストール手順

必要なソフトウェアがインストールできたら、次の手順でDSpaceをインストールします。

  1. DSpaceを実行するユーザとグループを決めます。私たちは、dspaceユーザとグループを作成しました。デフォルトの設定では、このユーザとグループが作成されたと仮定しています。

    TomcatとDSpaceは同じユーザでインストールし、かつ、実行する必要があることに注意してください。そうしないとアップロードされたファイルを保存できません。 これは、Tomcat(あるいはその他のサーブレットコンテナ)がDSpace以外のウェブアプリケーションを実行しているサーバ上でDSpaceを動かす場合は、DSpaceをTomcatのユーザで実行する必要があることを意味しています。

  2. DSpaceのインストール先を決めます。デフォルトは/dspaceです。 ルートになってこのディレクトリを作成し、chownコマンドでその所有者をDSpaceのユーザとグループにします。

  3. "dspace"ユーザ所有のdspaceデータベースを作成します。たとえば次のようにします。

    createuser -U postgres -d -A -P dspace ; createdb -U dspace -E UNICODE dspace

    これとは異なるデータベース名を使用することもできますが、その場合は、設定ファイルの該当箇所を修正する必要があります。

  4. 必要に応じてdspace-1.1/configにあるファイルを修正します。 特に、dspace.cfgファイルには注意してください。また、Apacheを使用する場合は、templates/apache13.confにも注意してください。詳細については、設定の章 を参照してください。 インストール先をデフォルトの/dspaceから変更する場合は、dspace.cfgにある複数のプロパティを修正しなければならないことに注意してください。

    また、dspace-1.1/config/registries にあるファイルを修正して、ダブリンコア・レジストリとビットストリームフォーマット・レジストリの初期内容を変更することもできます。 詳細についてはここを参照してください

  5. 次のコマンドでDSpaceをビルドします。

    ant
  6. DSpaceを実行するユーザに、必要なら作成して、なってください。

  7. 次のコマンドでDSpaceをインストールし、データベースを構築します。

    ant fresh_install
  8. DSpaceウェブアプリケーションをTomcatに設定します。多くのウェブアプリケーションでは、アプリケーションに関連するすべてのファイルをTomcat配下のディレクトリに置くのが一般的です。しかし、DSpaceでは非常に多くの付加的コンポーネンツを持っていますので、Tomcat配下のディレクトリに置く代わりにシンポリックリンクを使用します。 Tomcatのwebappsディレクトリに移動して、シンポリンックリンクを張ります。

    ln -s /dspace/jsp dspace
    ln -s /dspace/oai dspace-oai

    TomcatをスタンドアロンのHTTPサーバとして使用する場合、DSpaceのウェブユーザインターフェースを/dspaceではなく、ルートにインストールしたいと思うかもしれません。その場合は、次のようにします。

    mv ROOT ROOT.bak
    ln -s /dspace/jsp ROOT
  9. /dspace/bin/install-configsを実行して、様々な設定テンプレートファイルを稼働に必要な場所にインストールします。このコマンドは、ソースディレクトリではなく、インストール先で実行することに注意してください。

  10. コミュニティやコレクションを作成する前に、管理者アカウントを作成する必要があります。そうでないと管理者画面にログインできません。次のコマンドを実行します。

    /dspace/bin/create-administrator

    質問に答えて入力します。このコマンドを実行するにはあらかじめPostgreSQLを立ち上げておく必要があります。ApacheとTomcatの立ち上げは必要ありません。 このコマンドでエラーが発生しなかったら、DSpaceとPostgreSQLは正常に通信できていることを示しています。

  11. 次に、Lucene検索インデックスを初期化する必要があります。次のコマンドを実行します。

    /dspace/bin/index-all
  12. 電子メールによる日刊購読機能を果たすためには、そのためのスクリプトを1日1回実行する必要があります。 一般にこれを実行するのは夜間がいいでしょう。スクリプトの実行は必ず1日1回だけとします。そうでないと同じメールを2度受けとることになってしまいます。 次のような行をDSpaceユーザの(rootのではありません)「crontab」に追加します。

    # Send out subscription e-mail at 01:00 every day
    0 1 * * * /dspace/bin/sub-daily
  13. さあ、運命の分かれ道です。ApacheとTomcatを立ち上げて、サーバのベースURL、たとえば、http://dspace.myu.edu/ に接続してください。 きっとDSpaceのホームページが見られるしょう。おめでとう。

コミュニティとコレクションを設定するには、管理用画面にアクセスする必要があります。 そうするためには、サーバのURLに'admin'を加えて、たとえば、http://dspace.myu.edu/admin にアクセスします。 コミュニティとコレクションを新規に作成する際、そのコミュニティやコレクションを一般公開したいと思うなら、権限付与ツールを使って匿名グループにREAD権限を与える必要があることを思い出してください。 管理用画面の使用法についてはすぐ後の章で詳細に説明します。

ハンドルサーバの設定

ハンドルシステムのグローバル名前解決機能を使用したい場合は、ハンドルサーバを設定する必要もあります。ハンドルサーバはDSpaceに含まれています。 ただし、これはDSpaceの評価には必要ないことに注意してください。正式なサービスとして稼働させる場合にのみ必要になります。 ハンドルサーバを稼働するには、CNRIハンドルサイトからハンドルプレフィックスを得る必要があります。

実際に正式なハンドルプリフィックスをCNRIから得る前にも、DSpaceは新規に作成するコミュニティやコレクション、アイテムに一見ハンドルのように見える識別子を与えることができます。しかし、これは登録されたプリフィックスを持っていないので、実際はハンドルではありません。 この場合、DSpace上ではすべてが問題なく動きますが、唯一、アイテム表示ページの冒頭に表示されている識別子はURLとして使用できません。 たとえば、アイテムの表示ページの冒頭に「このアイテムへの引用やリンクには次の識別子を使用してください: http://hdl.handle.net/123456789/123」と書かれていたとします。これは実際にはウェブブラウザ上でURLとして機能しません。 ただし、DSpaceの検索機能を使ってアイテムを捜す際に、この識別子を使用することはできます。

ハンドルサーバは独立したプロセスとして稼働し、他のハンドルサーバからTCPリクエストを受け付けます。 また、ローカルから入力されたハンドルがローカルのコンテンツのものではない場合、世界中のサーバへ名前解決のためのリクエストを発行します。 ハンドルプロトコルはTCPに基づいていますので、ブロードキャストができ、2641番ポートでTCPを受信できるサーバにインストールする必要があります。

ハンドルサーバのプログラムはDSpaceコードツリーの /dspace/jsp/WEB-INF/lib/handle.jarにあります。 簡単なハンドル設定ファイルを作成するスクリプトもあります。dspace.cfgにあるパラメタを正しく設定してから、/dspace/bin/make-handle-configを実行してください。 handle.netのサイトにあるインストール手順書に従ってハンドル設定ファイルを直接作成することもできますが、次のように変更する必要があります。

どちらの方法を取った場合も、DSpaceユーザになって、ハンドルサーバを次のコマンドで立ち上げます: /dspace/bin/start-handle-server。 なお、ハンドルサーバ説明書にあるように、sitebndl.zipファイルをhdladmin@cnri.reston.va.usに送る必要があります。

DSpaceプログラムが個々のハンドルを管理するので、ハンドルの作成や変更といった管理用の操作をDSpace附属のハンドルサーバはサポートしていないことに注意してください。

インストール上のよくある問題

理想的には、上の手順に従えば完全に機能するDSpaceを得ることができます。 もちろん現実には、いつもうまくいくとは限りません。この節では、多くの人がDSpaceのインストールで遭遇するよくある問題をあげて、原因と対策を説明します。 私たちがユーザの経験について知るにつれ、この節の内容は豊かになっていくと思われます。

Tomcatが終了しない

Tomcatの設定を変えてもエラーの内容が変わらない場合は、Tomcatが正常に終了されなかったためだと思われます。それで、おそらく起こりもしない失効したコネクションのクローズをいつまでも待っているのでしょう。これを確かめるには次のコマンドを実行して、TomcatのJavaプロセスを捜します。

ps -ef | grep java

Tomcatのshutdown.shスクリプトを実行してもまだプロセスが残っているようなら、killコマンドで(必要に応じて-9オプションを付けて)プロセスを終了させます。そして、あらためてTomcatを立ち上げます。

データベース接続ができない、あるいは、いつまでたってもDSpaceにアクセスできない

DSpaceのウェブページにアクセスしてもいつまでたっても画面が現れない、あるいは、データベースコネクションに失敗する場合は、データベースコネクションの「ゾンビ」プロセスが残っていて、正常な操作を妨げていると思われます。 これを確かめるには、次のコマンドを実行します。

ps -ef | grep postgres

以下のような複数のプロセスがありますか。

dspace 16325  1997  0  Feb 14  ?         0:00 postgres: dspace dspace 127.0.0.1 idle in transaction

もしあれば正常です。DSpaceはコネクションの開閉に伴うオーバーヘッドを避けるためにオープンされたデータベースコネクションを「プール」して再利用しています。 「idle」状態にあっても大丈夫です。使用されるのを待っているだけです。 しかし、何か問題が生じると、クエリの途中で処理が止まり、そのために他のコネクションの動作を妨げる場合があります。その場合は、たとえば、次のように表示されます。

dspace 16325  1997  0  Feb 14  ?         0:00 postgres: dspace dspace 127.0.0.1 SELECT

この例では、SELECT操作の途中であることを意味しています。もしこの時DSpaceを使用していなかったとしたら、おそらくそれは「ゾンビ」プロセスです。 この場合は、そのプロセスをkillし、Tomcatを終了させてから、再立ち上げをしてください。


Copyright © 2002 MIT and Hewlett Packard