Ensemblのインストール

Using the Ensembl Web Codeに従ってEnsembl websiteのインストールを行う. ドキュメント作成時のEnsemblのバージョンは68である.

= Linuxのインストール =
 * スパコンのLinux（Red Hat Enterprise Linux Server release 6.1）に合わせるため、CentOS6.1を使用する.
 * http://vault.centos.org/からCentOS-6.1-x86_64_minimal.isoをダウンロードし、ディスクを作成してインストールする.

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

apache2とmod_perlのインストール

 * Ensemblは/use/local/ensemblにインストールすることにして、ここにapache2とmod_perlをインストールする.
 * 念のため、指定のバージョンを入れようとしたが、mod_perlは2.0.3ではmakeでエラーが出るため2.0.4にした.
 * mod_deflate, mod_perl以外にmod_headers, mod_expiresも必要なので、これらもインストールする.

perlモジュールのインストール

 * cpanmを使ってperlモジュールをインストールする. cpanm モジュール名 で依存モジュールも自動的にインストールしてくれる.


 * インストールするperlモジュールのリスト
 * Class::DBI::Sweet
 * Class::Std
 * Compress::Bzip2
 * Compress::Zlib
 * Data::UUID
 * DBI
 * DBD::mysql
 * GD
 * Hash::Merge
 * Image::Size
 * IO::String
 * IO::Uncompresss::Bunzip2
 * IPC::Run
 * LWP
 * Mail::Mailer
 * Math::Bezier
 * MIME::Types
 * OLE::Storage_Lite
 * PDF::API2
 * SOAP::Lite
 * Spreadsheet::WriteExcel
 * Sys::Hostname::Long
 * Time::HiRes
 * version
 * XML::Parser
 * XML::Atom
 * XML::Writer
 * CGI
 * HTML::Template

= EnsemblとBioPerlモジュールのインストール =
 * cvsで取ってくるだけ. cvsはDevelopment toolsでインストールされている.
 * Sanger CVS serverのパスワードはCVSUSER
 * BioPerl CVS serverのパスワードはcvs

= フォントのインストール = http://corefonts.sourceforge.net/に従ってMicrosoftフォントをインストールする.

specファイルのダウンロード

 * このファイルをそのまま使うとcabextractがないと言われてフォントが作成できないので、テキストエディタで開いて「BuildPrereq: cabextract」という行を削っておく. cabextractがインストールされていれば問題ない……はず.

rpmビルドの準備

 * rpm-buildはDevelompent toolsでインストール済み.
 * 以下の行を入力して保存する. これはrootで作業をしている場合.

msttcorefontsのインストール
= MySQLの起動・設定 =
 * MySQLを起動する


 * 自動起動設定にする.


 * rootパスワードの設定

= Ensemblデータのインストール =
 * とりあえず最小限のデータベースをインストールする.
 * ftp.ensembl.org/pub/current_mysql/にあるディレクトリそれぞれについて、以下の操作を行ってデータベースをインストールしていく.

= Ensembl Websiteの構成 =

conf/Plugins.pm

 * conf/Plugins.pmを作成する. コピーするだけ.

public-plugins/mirror/conf/SiteDefs.pm

 * public-plugins/mirror/conf/SiteDefs.pmを作成する. コピーして、内容を編集する.

SiteDefs.pmの以下の箇所を修正する. ↓


 * $SiteDefs::ENSEMBL_USER, $SiteDefs::ENSEMBL_GROUPはhttpdを実行するユーザー・グループを入力する. CentOS6.1の場合、何も変更していなければ上記のようになる.
 * $SiteDefs::ENSEMBL_SERVERNAMEはEnsembl websiteのURLになる.
 * $SiteDefs::ENSEMBL_USERDB_USERはensembl_web_user_dbデータベースにupdate/insert/deleteの権限を持ったユーザーを作成し、それを指定する.
 * $SiteDefs::ENSEMBL_USERDB_HOST, $SiteDefs::ENSEMBL_USERDB_PORTはCentOS6.1の場合、何も変更していなければ上記のようになる.
 * Homo sapiensのデータしか入れていないので、それ以外の生物種は外しておく.
 * 行頭の#を外し忘れないように.

public-plugins/mirror/conf/ini-files/DEFAULTS.ini

 * public-plugins/mirror/conf/ini-files/DEFAULTS.iniを作成する. コピーして、内容を編集する.

DEFAULTS.iniの以下の箇所を修正する. ↓
 * DATABASE_WRITE_USERはSiteDefs.pmで設定したensembl_web_user_dbを操作するためのユーザー.
 * DATABASE_DBUSERはEnsemblデータを検索するためのユーザー. select権限のみのユーザーを作成し、これを割り当てる.
 * [ENSEMBL_STYLE]はフォントの設定を行う. 行頭の;を外し忘れないように.

ログ置き場を作成する

 * httpdのログが出力されるディレクトリを作成し、/usr/local/ensembl全体をhttpdの実行ユーザーが読み書きできるように設定する.

= Ensembl Websiteの起動 =

追加のインストール

 * ここで起動すると、あれがないこれがないとエラーが出るので、足りないものをインストールする.


 * /usr/local/ensembl/apache2/lib64/perl5以下に入ったmod_perl関連のモジュールがperlのモジュール検索パスで見つけられないので、/usr/local/lib64/perl5にシンボリックリンクを作っておく.
 * /usr/local/ensembl/apache2/lib64/perl5を@INCに追加する方法があると思うが、よくわからなかった.


 * Ensembl Websiteは/usr/local/ensemblをサーバルートとしてhttpdを起動するが、/usr/local/ensembl/conf/httpd.confにはモジュールの位置の記述が/usr/local/ensembl/modulesになっているため、/usr/local/ensembl/apache2以下にインストールされたmod_perl.so, mod_headers.so, mod_expires.soを見つけられない. そのため、これらのシンボリックリンクを/usr/local/ensembl/modulesに作成する.
 * httpd.conf中のパスを書き換えるのでもよい.


 * 改めて.

ウェブサーバの終了

 * 初回起動時にデータベース・設定ファイルを読み込んでconf/config.packedとconf/packed/*.packedが作成される. 設定を変更する場合はconf/config.packedを削除してからウェブサーバを起動する. 最初からやり直したい場合はconf/packed/*.packedも削除する.