четверг, 16 октября 2008 г.

Установка DSpace

DSpace - это сервис, который осуществляет сбор, хранение, и распространение цифрового материала. Говоря проще - это электронная библиотека.

Платформа электронных библиотек DSpace разрабатывалась совместно компанией Hewlett-Packard и библиотеками MIT (Massachusetts Institute of Technology). 4-го ноября 2002 года система была запущена как действующая служба, поддерживаемая библиотеками MIT. Также на основании лицензии BSD открыт исходный код с намерением поощрить формирование сообщества открытых кодов вокруг DSpace.

Преимуществами DSpace являются - открытая лицензия, кроссплатформенность (DSpace написан на java), полнотекстовый поиск.

DSpace реализован как J2EE приложение, поэтому может функционировать в любом стандартном J2EE-контейнере. В качестве базы данных может использоваться Oracle или Postgresql.

Дистрибутив DSpace поставляется в исходных кодах. Для его сборки требуются: Java Development Kit, Apache Maven, Apache Ant.

Apache Maven

Maven - это высокоуровневый проект с открытым исходным кодом Apache Software Foundation, созданный, в первую очередь, для управления сложным процессом создания проекта Jakarta Turbine. Несмотря на такое скромное начало, разработчики проектов с открытым исходным кодом и в закрытых областях предпочли Maven в качестве системы создания проектов.
Подробно о Maven можно прочитать на сайте IBM.

Установка Apache Maven:
  • Скачаем последнюю версию Apache Maven:
    wget http://www.sai.msu.su/apache/maven/binaries/apache-maven-2.0.9-bin.tar.gz

  • Распакуем архив и перемести его в каталог /opt:
    tar xvzf apache-maven-2.0.9-bin.tar.gz
    sudo mv apache-maven-2.0.9 /opt

  • Создадим ссылку с именем /opt/apache-maven:
    sudo ln -s /opt/apache-maven-2.0.9 /opt/apache-maven

  • В файле /etc/environment добавим к переменной PATH путь исполняемым файлам, должно получиться что-то вроде:
    PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/apache-maven/bin"

    Помните, что для того чтобы изменения в файле environment вступили в действие необходимо перезапустить сессию (т.е. сделать logout, login)

  • Если выход в интернет у вас настроен через прокси-сервер, тогда необходимо прописать его в файле /opt/apache/maven/conf/settings.xml.
    Найдите следующий текст:
    <!-- proxy
    | Specification for one proxy, to be used in connecting to the network.
    |
    <proxy>
    <id>optional</id>
    <active>true</active>
    <protocol>http</protocol>
    <username>proxyuser</username>
    <password>proxypass</password>
    <host>proxy.host.net</host>
    <port>80</port>
    <nonProxyHosts>local.net,some.host.com</nonProxyHosts>
    </proxy>
    -->

    И замените на:
    <proxy>
    <id>optional</id>
    <active>true</active>
    <protocol>http</protocol>
    <username>ИМЯ_ПОЛЬЗОВАТЕЛЯ</username>
    <password>ПАРОЛЬ</password>
    <host>ИМЯ_ПРОКСИ_СЕРВЕРА</host>
    <port>80</port>
    </proxy>

  • Сделаем владельцем каталога пользователя root:
    sudo chown -RLv root:admin /opt/apache-maven

  • Для проверки заставим показать maven номер версии:
    mvn --version


    В ответ должны получить что-то похожее на:
    Maven version: 2.0.9
    Java version: 1.6.0_06
    OS name: "linux" version: "2.6.24-19-server" arch: "amd64" Family: "unix"


Apache Ant

Apache Ant (англ. ant — муравей) — это средство компоновки, основанное на Java. Согласно утверждениям ее первого автора Джеймса Данкана Дэвидсона (James Duncan Davidson), его название - это акроним "another neat tool" (еще одно средство автоматизации).
Средства компоновки при разработке программного обеспечения используются для преобразования исходного кода и других исходных файлов в исполняемый формат (и, возможно, в образы для установки продукта). Поскольку процесс компоновки приложений становится все более сложным, важно гарантировать постоянство процесса при каждой компоновке с максимально возможной автоматизацией.
Подробно об Ant можно прочитать на сайте IBM.

Установка Apache Ant:
  • Скачаем последнюю версию Apache Maven:
    wget http://www.sai.msu.su/apache/ant/binaries/apache-ant-1.7.1-bin.tar.gz

  • Распакуем архив и перемести его в каталог /opt:
    tar xvzf apache-ant-1.7.1-bin.tar.gz
    sudo mv apache-ant-1.7.1 /opt

  • Создадим ссылку с именем /opt/apache-ant:
    sudo ln -s /opt/apache-ant-1.7.1 /opt/apache-ant

  • В файле /etc/environment добавим к переменной PATH путь исполняемым файлам, должно получиться что-то вроде:
    PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/apache-maven/bin:/opt/apache-ant/bin"

  • Сделаем владельцем каталога пользователя root:
    sudo chown -RLv root:admin /opt/apache-ant

  • Для проверки заставим показать ant номер версии:
    ant -version


    В ответ должны получить что-то похожее на:
    Apache Ant version 1.7.1 compiled on June 27 2008


Установка DSpace
  • Дистрибутив DSpace выкладывается на сайте SourceForge.net

    Скачаем дистрибутив:
    wget http://ovh.dl.sourceforge.net/sourceforge/dspace/dspace-1.5.1-src-release.tar.gz

  • Распакуем архив:
    tar xvzf dspace-1.5.1-src-release.tar.gz

  • Создадим пользователя базы данных Postgresql:
    sudo su postgres
    createuser -d -A -P dspace

    Введите пароль пользователя dspace. На запрос "Позволить роли создавать другие роли", ответим отрицательно.

  • Создадим базу данных dspace, владельцем сделаем пользователя dspace:
    createdb -O dspace -E UNICODE dspace
    exit

  • Отредактируем файл [dspace-source]/dspace/config/dspace.cfg:

    #Каталог установки dspace
    dspace.dir = /opt/dspace

    #URL главной страницы DSpace, вместо localhost:8080 пропишите полное имя вашего сервера и порт, на котором работает web-контейнер.
    dspace.url = http://localhost:8080/xmlui

    #Полное имя вашего сервера (порт указывать не нужно)
    dspace.hostname = localhost

    #Имя вашего сайта (для корректного отображения русского названия воспользуйтесь утилитой native2ascii из jdk)
    dspace.name = \u042d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430

    #Используемая СУБД
    db.name = postgres

    #Строка подключения к БД - jdbc:postgresql://[сервер]:[порт]/[имя БД]
    db.url = jdbc:postgresql://localhost:5432/dspace

    #Пользователь и пароль для подключения к БД
    db.username = dspace
    db.password = ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ

    #Имя SMTP сервера
    mail.server = ИМЯ_ВАШЕГО_SMTP_СЕРВЕРА

    #Обратный адрес сообщений
    mail.from.address = ВАШ_ПОЧТОВЫЙ_АДРЕС

    #Почтовый адрес для обратной связи
    feedback.recipient = ВАШ_ПОЧТОВЫЙ_АДРЕС

    #Почтовый адрес администратора
    mail.admin = ВАШ_ПОЧТОВЫЙ_АДРЕС

    #Почтовый адрес для сообщения об ошибках
    alert.recipient = ${mail.admin}

    #Кодировка писем
    mail.charset = UTF8

    #Локализация
    default.locale = ru

    #Язык сообщений
    default.language = ru_RU

    #Каталог для хранения бинарных потоков (загруженных файлов)
    #Рекомендуется разместить на специальном разделе
    assetstore.dir = ${dspace.dir}/assetstore

  • Создадим каталог, в который будем устанавливать DSpace:
    mkdir /opt/dspace

  • Произведем сборку DSpace, для этого воспользуемя Apache maven:
    cd  [dspace-source]/dspace/
    mvn package

    При этом будет произведена загрузка всех необходимых пакетов и зависимостей в каталог ~/.m2
    В случае успеха вы увидите сообщение BUILD SUCCESSFUL

  • Инициализируем базу данных и произведем установку DSpace:
    cd [dspace-source]/dspace/target/dspace-1.5.1-build.dir
    ant fresh_install

    В конце вы должны также получить сообщение BUILD SUCCESSFUL

  • Сделаем владельцем каталога /opt/dspace пользователя tomcat, т.е. пользователя под которым работает web-контейнер:
    sudo chown -Rv tomcat:nogroup /opt/dspace

  • Создадим ссылки на web-приложения DSpace:
    sudo -u tomcat ln -s /opt/dspace/webapps/xmlui /opt/apache-tomcat/webapps/xmlui
    sudo -u tomcat ln -s /opt/dspace/webapps/sword /opt/apache-tomcat/webapps/sword
    sudo -u tomcat ln -s /opt/dspace/webapps/oai /opt/apache-tomcat/webapps/oai

  • Создадим учетную запись администратора:
    [dspace]/bin/create-administrator

    Программа последовательно запросит почтовый адрес (e-mail), имя, фамилию и пароль администратора.

  • Вот он - момент истины! Открываем браузер по адресу http://ИМЯ_СЕРВЕРА:ПОРТ/xmlui и пробуем зайти с учетной записью администратора:




В следующей главе я опишу процесс дополнительной настройки DSpace.

17 комментариев:

Unknown комментирует...

Поклон Вам за статьи. Индексацию кириллических PDF документов в Dspace настраивать не пробывали? Ведь, я как понимаю, без индексации(поиска) Dspace - пустое место.

Unknown комментирует...

Да вроде как работает "из коробки":
http://elibrary.udsu.ru/xmlui/

Unknown комментирует...

А какие модули кроме базовых Вы еще добавляли в систему.

Unknown комментирует...

2Oleg: Ставили ещё srw, только не спрашивайте зачем :-)

greynemo комментирует...

У меня после ant fresh_install выбивает ошибку
BUILD FAILED
/opt/dspace/dspace-src/dspace/target/dspace-1.6.2-build.dir/build.xml:745: Java returned: 1

Не подскажете в чем проблема?

Unknown комментирует...

2Volodymyr:
Была такая же ерунда. Скачал проект в исходниках целиком - собралось без ошибок.

Владимир комментирует...

Не подскажете, как можно русифицировать DSpace. Я так понял есть русификатор только для версии 1.4. Подходит ли для 1.6.2? И как происходит русификация?
Заранее благодарен

Unknown комментирует...

Руссификацию делали свою, если нужно могу дать контактное лицо, думаю договритесь и вам её подарят :-)

Unknown комментирует...

Добрый день, подскажите пожалуйста:
установка прошла удачно, но
An error has occurred

java.io.IOException: No such file or directory

предположение: у tomcat'a нет прав на assetstore директория, однако права ему дал.

кстати у Вас на сайте библиотеки тоже проблемки:
"org.postgresql.util.PSQLException: ERROR: current transaction is aborted, commands ignored until end of transaction block"

Unknown комментирует...

С этим моментом справился самостоятельно =) оказалось tomcat ставил напрямую из репозитория, так что дело было в пользователе =) (tomcat6)

greynemo комментирует...

Мне нужно включить доступ к dspace через ІР. Не подскажете какие изменения нужно здесь вводить:

# authentication.ip.GROUPNAME = iprange[, iprange ...]

#authentication.ip.MY_UNIVERSITY = 10.1.2.3, \
# 13.5, \
# 11.3.4.5/24, \
# 12.7.8.9/255.255.128.0

Unknown комментирует...

Спасибо за статью.
Скажите пожалуйста, как можно получить руссификацию для этой версии? очень нужно.

Дмитрий комментирует...

Здравствуйте! У меня возникла проблема с поиском при вводе русских символов. В результате поиска русские символы переводятся в иероглифы. Не могли бы помочь. ICQ 398394493
Заранее спасибо!

Дмитрий комментирует...

Здравствуйте! У меня возникла проблема с поиском при вводе русских символов. В результате поиска русские символы переводятся в иероглифы. Не могли бы помочь. ICQ 398394493
Заранее спасибо!

Анонимный комментирует...

подскажите пожалйста как настроить поиск. если ввести слово целиком то поиск дает результат если пару символов то нет, но если к неполному слову добавлять "*" то нормально ищет..

compi комментирует...

Спасибо за статью, но не могли бы вы рассказать о том, как добавить русский алфавит уже в установленый dspace?

compi комментирует...

*дополнение к комменту "для xmlui"