EC2インスタンスにははじめにec2-userユーザーが作成されていますが、 わかりやすくするためGalaxyのインストールのためのgalaxyユーザーを作成します。
ユーザーをSSH接続時に使用したec2-userからrootに変更し、 rootユーザーのパスワードを設定します。
$ sudo su -
$ passwd
Galaxyをインストールし実行するユーザーとしてgalaxyユーザーを作成します。
$ su -
# useradd galaxy
# passwd galaxy
# exit
galaxyユーザーにスイッチし、パスワードが設定されていることを確認します。 この後の作業はgalaxyユーザーを使用します。
$ su - galaxy
Galaxyは起動時にPythonのバージョンを見て対応するEggをダウンロードするため、 適切なバージョンのPythonをインストールする必要があります。
まず、現在バンドルされているPythonのバージョンを確認します。
$ python --version
Python 2.6.9
上記のようにAWSのAmazonLinuxではPython2.6.9がバンドルされているためGalaxyがインストールできます。 しかし、Galaxyで使用するツールがPythonにライブラリを追加する事があるため、バンドルされているものとは別に、Galaxyで使うPythonを作成しておきます。
Python(2.7.5)をインストールするために必要な以下の4つのパッケージをインストールします。
# yum install -y gcc zlib-devel bzip2-devel openssl-devel sqlite-devel
galaxyユーザーでPython(2.7.5)をコンパイルします。
# exit
$ mkdir galaxy-python
$ cd galaxy-python
$ wget http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tgz
$ tar xvzf Python-2.7.5.tgz
$ mv Python-2.7.5 Python-2.7.5_src
$ mkdir Python-2.7.5
$ cd Python-2.7.5_src
$ ./configure --prefix=/home/galaxy/galaxy-python/Python-2.7.5
$ make
$ make install
$ which python
/usr/bin/python
Pythonに対する追加事項がある際の記載先を、新しくインストールしたPythonにするため、 環境変数の設定を変更します。
$ vi ~/.bash_profile
export PATH=$HOME/galaxy-python/Python-2.7.5/bin:$PATH
export PYTHONPATH=$HOME/galaxy-python/Python-2.7.5/lib/python2.7/site-packages
$ . ~/.bash_profile
Pythonの設定の変更を確認します。
$ which python
~/galaxy-python/Python-2.7.5/bin/python
$ python --version
Python 2.7.5
後々の作業のため、easy_install をインストールします。
$ cd ~/galaxy-python
$ wget http://python-distribute.org/distribute_setup.py
$ python distribute_setup.py
$ which easy_install
~/galaxy-python/Python-2.7.5/bin/easy_install
GalaxyはMercurialで配布されています。
Mercurialをインストールします。
$ easy_install mercurial
Galaxyをクローンします。galaxy-distディレクトリが作成され、この下にGalaxyがインストールされます。
$ cd ..
$ hg clone https://bitbucket.org/galaxy/galaxy-dist/
Galaxyを起動します。 初回起動時は進捗を見るためログをコンソールに表示させます。 初回起動時に設定ファイル ~/galaxy-dist/universe_wsgi.iniが作成されます。
$ cd galaxy-dist
$ ./run.sh
ログを確認し、正常に起動されているかを確認します。 次のメッセージが表示されると正常に起動が行われています。
$ tail -f paster.log
.
.
serving on 0.0.0.0:8080 view at http://127.0.0.1:8080
次のようなメッセージが出力されている場合には、そのスクリプトを実行します。
Please backup your database and then migrate the schema by running 'sh manage_db.sh upgrade'.
$ sh manage_db.sh upgrade
必要に応じて、インストールしたGalaxyを最新の安定版にバージョンアップします。
$ hg update stable
作成したGalaxyにどのIPアドレスからでも接続できるように、universe_wsgi.iniを編集します。 IPアドレスによるアクセス制限は、AWS上でポート単位で設定します。
$ vi universe_wsgi.ini
host = 0.0.0.0
.python_eggs ディレクトリの権限を変更します。
$ cd ~/
$ chmod 744 .python_eggs
ブラウザを開き、「