この章では、DSpaceのバージョンアップの方法について説明します。各バージョンの機能の違いについてはバージョン履歴の章で説明します。
1.0.1から1.1へのバージョンアップの手順は以下のとおりです。dspace.cfg
を変更する必要はありません。
以下の手順では、DSpaceが /dspace
にインストールされていると仮定しています。別の場所にインストールされている場合は、/dspace
を実際のインストールディレクトリに置き換えてください。
Tomcat(あるいは使用中のサーブレットコンテナ)を停止します。
PostgreSQLを最新版(7.3.2)にバージョンアップすることを推奨します。 PostgreSQLのバージョンアップについてのメモがここにあります。 このメモを実行するにはAntをバージョン1.5にする必要があることにも注意してください。
DSpaceデータベースに必要な変更を加えます。若干のスキーマ変更と、パフォーマンス向上のための索引の追加などです。また、多くのデータベースビューの名前を変更します。これまでの名前は長すぎて問題を引き起こしていたからです。
まず、psql
コマンドでデータベースに接続します(たとえば、psql -U dspace -W
と入力して、パスワードを入力します)。そして、以下のSQLコマンドを実行します。
ALTER TABLE bitstream ADD store_number INTEGER; UPDATE bitstream SET store_number = 0; ALTER TABLE item ADD last_modified TIMESTAMP; CREATE INDEX last_modified_idx ON Item(last_modified); CREATE INDEX eperson_email_idx ON EPerson(email); CREATE INDEX item2bundle_item_idx on Item2Bundle(item_id); REATE INDEX bundle2bitstream_bundle_idx ON Bundle2Bitstream(bundle_id); CREATE INDEX dcvalue_item_idx on DCValue(item_id); CREATE INDEX collection2item_collection_idx ON Collection2Item(collection_id); CREATE INDEX resourcepolicy_type_id_idx ON ResourcePolicy(resource_type_id,resource_id); CREATE INDEX epersongroup2eperson_group_idx on EPersonGroup2EPerson(eperson_group_id); CREATE INDEX handle_handle_idx ON Handle(handle); CREATE INDEX sort_author_idx on ItemsByAuthor(sort_author); CREATE INDEX sort_title_idx on ItemsByTitle(sort_title); CREATE INDEX date_issued_idx on ItemsByDate(date_issued); DROP VIEW CollectionItemsByDateAccessioned; DROP VIEW CommunityItemsByDateAccessioned; CREATE VIEW CommunityItemsByDateAccession as SELECT Community2Item.community_id, ItemsByDateAccessioned.* FROM ItemsByDateAccessioned, Community2Item WHERE ItemsByDateAccessioned.item_id = Community2Item.item_id; CREATE VIEW CollectionItemsByDateAccession AS SELECT collection2item.collection_id, itemsbydateaccessioned.items_by_date_accessioned_id, itemsbydateaccessioned.item_id, itemsbydateaccessioned.date_accessioned FROM itemsbydateaccessioned, collection2item WHERE(itemsbydateaccessioned.item_id = collection2item.item_id);
Unicodeを使用するためにJSPファイルを修正します。
サイトの「スキン」(jsp/local/layout/header-default.jsp
)を修正していた場合は、<HEAD>要素に以下のUnicodeヘッダを追加する必要があります。
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
また、ローカルで修正したJSPファイルがある場合は、そのすべてのファイルの冒頭に次のページディレクティブを追加する必要があります。
<%@ page contentType="text/html;charset=UTF-8" %>
(JSPコードを変更していない場合は、何もする必要はありません。)
ソースツリーに同梱できなかった必要なJavaライブラリをコピーします。たとえば、次のようにします。
cd /dspace/lib cp *.policy activation.jar servlet.jar mail.jar ~/source/dspace-1.1/lib
/dspace/config/dspace.cfg
にあるパスを実際のパスに修正してから、新しいDSpaceプログラムをコンパイルします。
(2行目の touch `find .`
は、新しいプログラムに現在の日付スタンプを与えて、古いプログラムを必ず置き換えるようにするための予防策です。findの前後はバッククォートですので、注意してください。)
cd dspace-1.1 touch `find .` ant ant -Dconfig=/dspace/config/dspace.cfg update
ツールを使ってデータベースのテーブルを更新します。このツールは、アイテムテーブルに新しいカラム last_modified
日付を設定します。以下のコマンドを実行します。
/dspace/bin/dsrun org.dspace.administer.Upgrade101To11
コレクションのデフォルト権限ポリシー設定ツールを実行します。
/dspace/bin/dsrun org.dspace.authorize.FixDefaultPolicies
OAICat属性ファイルを修正します。/dspace/config/templates/oaicat.properties
を編集して、次の行
Identify.deletedRecord=yes
を、以下のように変更します。
Identify.deletedRecord=persistent
これは、OAI-PMHの'Identify'リクエストヘのレスポンスを修正するために必要です。そして、/dspace/bin/install-configs
を実行します。
abstractsの索引化と名前を変更したデータベースビューを書き込むために、索引作成プログラムを再実行します。
/dspace/bin/index-all
Tomcatを再立ち上げします。Unicodeを正しく処理するためと、若干小さいデフォルトのJVMメモリヒープサイズを拡大するために、以下の環境変数を設定してからTomcatを実行する必要があります。
なお、-Xmx512M
(最大ヒープサイズは512MB)と -Xms64M
(Javaスレッドスタッックサイズは64MB)は使用するハードウェアに合わせて調節してください。
JAVA_OPTS="-Xmx512M -Xms64M -Dfile.encoding=UTF-8"
幸いなことに、1.1.1での変更はプログラム変更だけですので、バージョンアップはきわめて簡単です。
Tomcatを停止します。
この機会にDSpaceで使用しているサードパーティ製のツール(PostgreSQLなど)をバージョンアップすると良いでしょう。該当するツールに付属の手順書に従って実行してください。
dspace-1.1.1-source
ディレクトリで以下を実行します。
ant -Dconfig=/dspace/config/dspace.cfg update
/dspace
は実際のディレクトリに合わせてください。
以下のJSPファイルを変更して/dspace/jsp/local
ディレクトリに置いている場合は、バージョン1.1.1で修正された部分を変更済みのJSPファイルに適用してください。
1.1と1.1.1の違いは、diff
コマンドで調べることができます。
変更はほんのわずかです。
collection-home.jsp admin/authorize-collection-edit.jsp admin/authorize-community-edit.jsp admin/authorize-item-edit.jsp admin/eperson-edit.jsp
Tomcatを再立ち上げします。