Last Update: Sat Jan 29 19:34:04 2011

ゲリラ的 uncorrelated のウェブページ

日記

2011.01.25

イレッサの商品名で販売されるゲフィチニブ。分子標的薬のひとつで、従来型の化学療法薬と比較して、副作用が少なく効果が高いと言われています。

ただし、副作用が全くないわけではなく、場合によっては急性肺障害・間質性肺炎の重篤な症状を引き起こす事が知られています。このゲフィチニブは特例で通常の半分の期間で承認されているのですが、副作用で無くなった患者の遺族などから国の承認プロセスの責任を問う声があがり、訴訟になっています。

新薬の承認期間の短縮を望む声がニュースになっていますが、治験が簡素化されたり、規模が縮小されれば、危険性が明らかになる前に新薬が承認される可能性が高まります。行政上の問題があるかは別にして、今後は同種の訴訟が増えるかも知れません。

Trackback Ping-URL: http://uncorrelated.no-ip.com/cgi-bin/trackback/20110125

あらしの為のTips

CentOSにTracをインストール。

CentOS 5.xにTracをインストールする場合、標準のPythonのバージョンが古いため、単純にはインストールできない。新しいバージョンのPythonを、ソースコードか非純正RPMから入手して、必要なモジュールを追加し、mod_pythonも新しくしてから、Tracをインストールすることになる。さくらインターネットのVPSサービスを試す意味で、PostgreSQLとMercurialの構成で、Trac 1.3βをセットアップしたので手順を紹介したい。

1. Python 2.6をインストール

ソースコードからインストールしても良いのだが、yumがあるので手抜きをすることにする。

# CentOSのバージョンの確認
cat /etc/redhat-release

# mod_pythonをアンインストール
yum remove mod_python

# 最新版のPHPやMySQLのRPMを作成・配布しているIUS Community Projectから、当たらしめのPythonをyumでダウンロードできるようにする。なお、この二つのファイル名は頻繁に変化すると思われるし、32bits版、64bits版とあるのでリポジトリ内を探してインストールする必要がある。
wget http://dl.iuscommunity.org/pub/ius/stable/Redhat/5.5/x86_64/ius-release-1.0-6.ius.el5.noarch.rpm
wget http://dl.iuscommunity.org/pub/ius/stable/Redhat/5.5/x86_64/epel-release-1-1.ius.el5.noarch.rpm
rpm -i ius-release-1-4.ius.el5.noarch.rpm epel-release-1-1.ius.el5.noarch.rpm

# yumでPython 2.6とmod_pythonをインストールする。ファイル名が標準と異なるので共存ができる。
yum install python26 python26-setuptools python26-devel mod_python26

2. 必要なモジュールをPythonに追加

標準のPythonとは末尾が異なる事に注意して、モジュールを追加していく。標準の方にモジュールを追加しても、Tracは正常に動作しない。

# Mercurialをインストール
easy_install-2.6 Mercurial

# PostgreSQLのPython用インターフェースをインストール
easy_install-2.6 psycopg2

# SVNでTracの最新版をダウンロード
svn co http://svn.edgewall.org/repos/trac/trunk

# インストール
cd trunk
python26 setup.py compile_catalog -f
python26 setup.py install

# SVNでTrac-Mercurialプラグインをダウンロード
svn co http://svn.edgewall.com/repos/trac/plugins/0.12/mercurial-plugin

そのままインストールすると日本語が文字化けるため、mercurial-plugin/tracext/hg/backend.pyのfrom mercurial import hg行の前に、環境変数を設定する行を追加する。Pythonはインテント、つまり行頭の空白の数が重要なので注意すること。

    os.environ["HGENCODING"] = "utf-8"

コードの手直し後に、インストール。

cd mercurial-plugin
python26 setup.py egg_info
python26 setup.py install

間違ったバージョンのモジュールをインストールすると、/usr/lib/python2.6/site-packages内のモジュールを消し、easy-install.pthファイルを編集して、該当モジュールの行を消す必要が出てくる。

3. PostgreSQLの準備

PostgreSQLの管理ユーザで、まずデータベースを作る。

# DB作成
createdb -E UTF-8 trac;

次に、アクセスするユーザーを追加・権限を付与する必要がある。

psql trac

作成したデータベース trac にログインをして、以下のSQLを流す。

CREATE USER tracuser PASSWORD 'password';
/* 権限をつける */
GRANT ALL ON DATABASE trac TO tracuser;
/* パスワード変更 */
ALTER USER tracuser WITH PASSWORD 'password';

PostgreSQLをインストールしたての場合は、pg_hba.confのネットワークの設定も忘れずに行う。

/var/lib/pgsql/data/pg_hba.conf
# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# "local" is for Unix domain socket connections only
local   all         all                               ident sameuser 
# IPv4 local connections:
host    all         all         127.0.0.1/32          md5
# IPv6 local connections:
host    all         all         ::1/128               md5

PostgreSQLがリモートにある場合は、postgresql.confのlisten_addressesの設定も必要。

上記の設定が終われば、psql -h 127.0.0.1 -U tracuser と入力して、ログイン可能である事は確認した方が良い。

4. Apacheの設定

今回は仮想サーバーで、以下のような設定のホストを構築した。

http://example.com/hg/ProjectNameで、Mercurialの共有リポジトリ更新が可能で、http://example/trac/ProjectNameでTracが見られるようになる。BASIC認証用のパスワード・ファイルの作成や、リポジトリの共有に関しては、2011.01.24のTipsを参照すること。

<VirtualHost *:80>
  ServerAdmin uncorrelated@yahoo.co.jp
  ServerName example.com
  DocumentRoot "/var/www/example.com/htdocs"
  ErrorLog "/var/www/example.com/logs/example.com_error.log"
  CustomLog "/var/www/example.com/logs/example.com_access.log" combined

  <Directory "/var/www/example.com/htdocs">
    AllowOverride AuthConfig Limit FileInfo
    Order allow,deny
    Allow from  all
  </Directory>

  ScriptAlias /hg /var/www/example.com/hg
  <Directory "/var/www/example.com/hg">
    Options +ExecCGI
    AuthType Basic
    AuthName "Mercurial Shared Repositories"
    AuthUserFile /var/www/example.com/cgi-dat/hgpwd
    AuthGroupFile /dev/null
    Require valid-user
  </Directory>

  <Location "/trac">
    SetHandler mod_python
    PythonHandler trac.web.modpython_frontend
    PythonOption  TracEnvParentDir  /var/www/example.com/trac
    PythonOption  TracUriRoot  /trac
  </Location>

  <locationMatch "/trac/[[:alnum:]]+/login">
    AuthType Basic
    AuthName "Trac"
    AuthUserFile /var/www/example.com/cgi-dat/hgpwd
    AuthGroupFile /dev/null
    Require valid-user
  </locationMatch>
</VirtualHost>

5. Tracの初期化・設定

2009.12.12のTipsの設定と同様だが、細かい設定はブラウザから行うとして、今回はadminしか作らない。trac-adminコマンドはrootで実行を行う。

# 何回も同じパスを指定するので、環境変数に格納する。
export projenv=/var/www/uncorrelated.no-ip.com/trac/ProjectName

# Tracを初期化する。
# Database connection stringに、postgres://tracuser:password@localhost/trac を入れる
trac-admin $projenv initenv

# 管理者に全ての権限を与える
trac-admin $projenv permission remove admin '*'
trac-admin $projenv permission add admin TRAC_ADMIN

/var/www/uncorrelated.no-ip.com/trac/ProjectName/conf/trac.iniに、以下の行を修正・追加する。

[trac]
repository_dir = /var/hg/hgweb
repository_sync_per_request = (default)
repository_type = hg

[components]
tracext.hg.* = enabled
tracopt.ticket.commit_updater.* = enabled

最後にapacheユーザーが見られるようにして、Apacheを再起動する。

chmod -R 755 $project
chown -R apache:root $project

6. Tracのバックアップとリストア

大雑把に設定をしたら、Tracのバックアップ機能で設定ファイルをバックアップしておいた方が良いであろう。

trac-admin hotcopy $projenv trac_backup

SQLiteを使っていない場合は、データベース側のバックアップも別途必要。

mysqldump -u root -p trac | gzip > trac.dump.gz

リストアは、trac_backupを元の$projenvの位置に戻し、データベースの初期設定を行った上で、gzip -dc trac.dump.gz | mysql -u root -p tracをすること。

試しに行う場合は、リストアする前に$projenvを削除し、データベースtracも消しておく。

まとめ

Tracは癖があるので設定が難しいが、あると便利なので用意しておくに越したことはない。ただし、CentOS 5ではyumで自動的にインストールともいかないし、trac-adminでの初期化の挙動もバージョンで異なるなど、取り扱いは良くない。2010.01.05のTipsで紹介した、Redmineの方が主流になっているのもうなずける。今回は、Mercurialと同じPythonで書かれているので利用したに過ぎない。

なお、さくらのVPSサービスの標準OSはCentOS 5であるが、Ubuntu Linuxなどの他のLinuxディストリビューションも選択できる。Ubuntu 10.xを使えば、上述の手順(1)と(2)を省略できるし、混乱を招く恐れも少ないので、

参考ページ

  1. CentOS に Python 2.6 を(yumで)インストール ? イッキログ Tech

注意

  1. 本ページは、本当に投げやりに書いています。
  2. 本サイトは、24時間運用ですが、事前に告知無くサーバーが停止するときもあります。必要な情報はメモをしてください。
  3. チャット友達へのページです。不愉快な思いをしても著者は責任を負いません。

過去ログ
最新版
01.24
01.17
12.25
10.23
05.08
04.11
02.21
02.15
...MORE!

全文検索
画像板
投票CGI
ゲーム
パズル
マーカー
会員登録
会員専用

RSS1.0
RSS 1.0