Hyraxをインストールする

機関リポジトリ構築用ソフトウェアのHyraxを試してみることにする。

Hyraxは、機関リポジトリ用のフレームワークであるSamvera(旧Hydra)の上に構築されたソフトウェアである。ソースコードやドキュメントは、GitHubで公開されている。この記事の公開時点での最新バージョンは2.1.0。

github.com

HyraxはRuby on Railsを用いて開発されているので、まずRubyの実行環境を用意する。今回はUbuntu Server 18.04上でrbenvとruby-buildを用いて、Ruby 2.5.1をインストールしている。

$ rbenv install 2.5.1
$ rbenv global 2.5.1

次に、Rails 5.1の最新版をインストールする。現時点では5.1.6。

$ gem install rails -v=5.1.6

データベースにはPostgreSQLMySQLSQLiteが使用できるが、今回はSQLiteを使用する。

$ sudo apt install libsqlite3-dev

また、JavaScriptのランタイムとして、nodejsをインストールしておく。

$ sudo apt install nodejs

さらに、READMEに書いてあるPrerequisitesに従って、必要なソフトウェアをインストールする。ただし、SolrとFedoraは後で開発用サーバを実行するときに自動的にダウンロードされるので、ここではまだインストールしていない。また、Ubuntu 18.04でLibreOfficeのパッケージ(libreofice)をインストールすると、依存パッケージとしてJava10(openjdk-11-jre)がインストールされるが、Java10では開発用のFedoraが起動しないので、LibreOfficeもここではインストールしていない。

$ sudo apt install openjdk-8-jre-headless redis imagemagick ffmpeg

準備ができたら、Hyraxのアプリケーションを作成する。ここではアプリケーション名をmy_hyraxとしている。 このコマンドは、検索用のユーザインターフェースであるblacklightのインストールなど、多くのモジュールの追加を行うため、実行に時間がかかる。

$ rails _5.1.6_ new my_hyrax -m https://raw.githubusercontent.com/samvera/hyrax/v2.1.0/template.rb

実行が完了したら、rails hydra:server コマンドで、Hydraの開発用サーバを起動する。初めて実行する際に、SolrとFedoraがダウンロードされる。

$ cd my_hyrax
$ bin/rails hydra:server

起動が完了すると、以下のようなメッセージが出力される。

[main] INFO org.eclipse.jetty.server.Server - Started @26940ms
Fedora: http://127.0.0.1:8984/rest
Solr..: http://127.0.0.1:8983/solr/hydra-development
=> Booting Puma
=> Rails 5.1.6 application starting in development 
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.11.4 (ruby 2.5.1-p57), codename: Love Song
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://0.0.0.0:3000
Use Ctrl-C to stop

Webブラウザで http://localhost:3000 を開くと、Hyraxのトップページが表示される。

f:id:nabeta:20180624034743p:plain

開発用サーバが起動している状態で、ターミナルをもう一つ開き、初期データを読み込むコマンドを実行する。

$ cd my_hyrax
$ bin/rails hyrax:default_admin_set:create
$ rails generate hyrax:work Work

実行が完了したら、開発用サーバを一度Ctrl+Cキーで停止し、もう一度起動する。

$ bin/rails hydra:server

まずはここまで。