2012年4月10日火曜日

CentOS 6.2にTrac 0.12.3をインストール


CentOS release 6.2 にTrac 0.12.3を入れた時のメモ

[必要なアイテム]
・Apache
・Python
・mod_python
・PostgreSQL
・Genshi
・Trac


[Apacheについて]
インストール時のパッケージ選択で入れた。(というか入る)
CentOSでのApacheを取り扱う際に最低限知っておかないといけないことは
(もっとあるだろうけど)以下に。
・httpd.confの場所
    /etc/httpd/conf/httpd.conf
・httpdの再起動
    /etc/init.d/httpd restart
・Apacheモジュール用(mod_pythonとか)のconfファイルの場所
     /etc/httpd/conf.d/


[Pythonについて]
CentOSはデフォでPythonが入る。
CentOS6.2が持ってるPythonのバージョンは2.6
私のCentOSはPython学習用に3.1を入れて、普段はそちらを起動するようにしています。
で、システムでは2.6を使うし、今回のインストールにも2.6を使ったので、
バージョンの使い分けに気をつける必要がありそう。


[mod_pythonについて]
最後に対応したので最後に書く


[PostgreSQLについて]
まずはインストールされてるのかを確認した。
下のサイトを読んで、確認は「rpm -qa」コマンドで行った。

CentOS で PostgreSQL を使ってみよう!(1)
http://lets.postgresql.jp/documents/tutorial/centos
--------------------------------------------------------
rpm -qa | grep Posposgtrgre
postgresql-contrib-8.4.9-1.el6_1.1.i686
postgresql-8.4.9-1.el6_1.1.i686
postgresql-libs-8.4.9-1.el6_1.1.i686
postgresql-docs-8.4.9-1.el6_1.1.i686
postgresql-server-8.4.9-1.el6_1.1.i686
postgresql-plpython-8.4.9-1.el6_1.1.i686
postgresql-odbc-08.04.0200-1.el6.i686
--------------------------------------------------------
8.4.9がインストールされている。最新版は9.1とかだけど、まぁいいか、
最新版に対応するのはとりあえずひと通り構成できるようになってからかな…。
ということでデフォルトでインストールされているPostgreSQLでTracを構成する。

早速試しにPostgreSQLを触ってみる。
--------------------------------------------------------
[root@Cent6-003-tan ~]# psql
psql: サーバに接続できませんでした: そのようなファイルやディレクトリはありません
                              ローカルにサーバが稼動していますか?
                              Unixドメインソケット"/tmp/.s.PGSQL.5432"で通信を受け付けていますか?
--------------------------------------------------------
ん?もしかして起動してないのかな?
ということで起動させてみる。
--------------------------------------------------------
[root@Cent6-003-tan ~]# /etc/init.d/posgres starttgresql start

/var/lib/pgsql/data is missing. Use "service postgresql initdb" to initialize the cluster first.
[失敗]
[root@Cent6-003-tan ~]# /etc/init.d/postgresql startrestart
postgresql サービスを停止中: [  OK  ]

/var/lib/pgsql/data is missing. Use "service postgresql initdb" to initialize the cluster first.
[失敗]
--------------------------------------------------------
起動も再起動も失敗…。なぜ??
あ、「postgresユーザ」になる必要がある?
--------------------------------------------------------
[root@Cent6-003-tan ~]# su -p posgtgres
-bash-4.1$ psql -l
psql: サーバに接続できませんでした: そのようなファイルやディレクトリはありません
                              ローカルにサーバが稼動していますか?
                              Unixドメインソケット"/tmp/.s.PGSQL.5432"で通信を受け付けていますか?
--------------------------------------------------------
違う…。わからん!ここでググった。その結果、
データベースクラスタの初期化をやっとらんではないか。
ということで以下のページを参考にさせていただいた。

使えば分かるPostgreSQL運用&チューニング(1)
PostgreSQL導入から接続まで
http://www.atmarkit.co.jp/fdb/rensai/postgresql/01/pgtune1-2.html

initdbコマンドをpostgresユーザで実行する。
--------------------------------------------------------
-bash-4.1$ exit
logout
[root@Cent6-003-tan ~]#
[root@Cent6-003-tan ~]# su - postgres
-bash-4.1$ initdb --encoding=UTF8 --no-locale
データベースシステム内のファイルの所有者は"postgres"ユーザでした。
このユーザがサーバプロセスを所有しなければなりません。

データベースクラスタはロケールCで初期化されます。
デフォルトのテキスト検索設定はenglishに設定されました。

ディレクトリ/var/lib/pgsql/dataの権限を設定しています ... ok
サブディレクトリを作成しています ... ok
デフォルトのmax_connectionsを選択しています ... 100
デフォルトの shared_buffers を選択しています ... 32MB
設定ファイルを作成しています ... ok
/var/lib/pgsql/data/base/1にtemplate1データベースを作成しています ... ok
pg_authidを初期化しています ... ok
依存関係を初期化しています ... ok
システムビューを作成しています ... ok
システムオブジェクトの定義をロードしています ... ok
変換を作成しています ... ok
ディレクトリを作成しています ... ok
組み込みオブジェクトに権限を設定しています ... ok
情報スキーマを作成しています ... ok
template1データベースをバキュームしています ... ok
template1からtemplate0へコピーしています ... ok
template1からpostgresへコピーしています ... ok

警告: ローカル接続向けに"trust"認証が有効です。
pg_hba.confを編集する、もしくは、次回initdbを実行する時に-Aオプショ
ンを使用することで変更することができます。

成功しました。以下を使用してデータベースサーバを起動することができます。

    postgres -D /var/lib/pgsql/data
または
    pg_ctl -D /var/lib/pgsql/data -l logfile start

-bash-4.1$ exit
logout
[root@Cent6-003-tan ~]# /etc/init.d/postgresql restart
postgresql サービスを停止中: [  OK  ]
postgresql サービスを開始中: [  OK  ]
--------------------------------------------------------
PostgreSQLの再起動もやってみたらちゃんとオッケー☆が出た。


試しに再度psqlコマンドでPostgreSQLを触ってみる。
--------------------------------------------------------
[root@Cent6-003-tan ~]# su - posgtgres
-bash-4.1$ psql -l
                                        データベース一覧
   名前    |  所有者  | エンコーディング | 照合順序 | Ctype(変換演算子) |    
クセス権    
-----------+----------+------------------+----------+-------------------+-------
----------------
 postgres  | postgres | UTF8             | C        | C                 |
 template0 | postgres | UTF8             | C        | C                 | =c/pos
tgres
                                                                        : postgr
es=CTc/postgres
 template1 | postgres | UTF8             | C        | C                 | =c/pos
tgres
                                                                        : postgr
es=CTc/postgres
(3 行)
--------------------------------------------------------
よし。

[Subversionについて]
とりあえずyumでインストールできるようなのでやってみる。
--------------------------------------------------------
[root@Cent6-003-tan ~]# yum install subversion
Loaded plugins: fastestmirror, security
Determining fastest mirrors
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
Setting up Install Process
Package subversion-1.6.11-2.el6_1.4.i686 already installed and latest version
Nothing to do
--------------------------------------------------------
もう入ってる言われた。

Apache用モジュールっぽい「mod_dav_svn」も入ってる?
--------------------------------------------------------
[root@Cent6-003-tan ~]# yum install mod_dav_svn
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
Setting up Install Process
Package mod_dav_svn-1.6.11-2.el6_1.4.i686 already installed and latest version
Nothing to do
--------------------------------------------------------
入ってるようだ。

[Tracについて]
じゃあ本体であるTracのインストールに取り掛かりましょう。
プログラムは日本語化パッケージを提供してるインタアクト社からダウンロードさせていただきます。
http://www.i-act.co.jp/project/products/products.html
落としたZipはお好きな場所へ。今回は/usr/local/src
--------------------------------------------------------
[root@Cent6-003-tan ~]# cd /usr/local/src/
[root@Cent6-003-tan src]# ls
Python-3.1.2  Python-3.1.2.tgz  Trac-0.12.3.ja2.zip  postgresql-9.1.3.tar.gz  python
[root@Cent6-003-tan src]# unxzip Trac-0.12.3.ja2.zip
(省略)
[root@Cent6-003-tan src]# ls
Python-3.1.2      Trac-0.12.3.ja2      postgresql-9.1.3.tar.gz
Python-3.1.2.tgz  Trac-0.12.3.ja2.zip  python
[root@Cent6-003-tan src]# cd Trac-0.12.3.ja2
[root@Cent6-003-tan Trac-0.12.3.ja2]# ls
AUTHORS            Makefile.cfg.sample  cgi-bin          setup_wininst.bmp
COPYING            README               contrib          trac
COPYING.trac-ja    README.trac-ja       doc              tracopt
ChangeLog          RELEASE              messages-js.cfg  wiki-macros
ChangeLog.trac-ja  TESTING-README       sample-plugins
INSTALL            THANKS               setup.cfg
Makefile           UPGRADE              setup.py
--------------------------------------------------------
よしいけた。setup.pyを実行してインストールするらしい。

[setup.pyができないよ…?]
むげんのかなたへーさーいくぞー
--------------------------------------------------------
[root@Cent6-003-tan Trac-0.12.3.ja2]# python setup.up.py install
  File "setup.py", line 21
    print "Trac requires Python %d.%d or later" % min_python
                                              ^
SyntaxError: invalid syntax
--------------------------------------------------------
あれ?
…あ、OSが使ってるPythonは2.6だからこうしなきゃってこと?
--------------------------------------------------------
[root@Cent6-003-tan Trac-0.12.3.ja2]# python2.6 setup.py install
Traceback (most recent call last):
  File "setup.py", line 160, in
    **extra
  File "/usr/lib/python2.6/distutils/core.py", line 113, in setup
    _setup_distribution = dist = klass(attrs)
  File "/usr/lib/python2.6/site-packages/setuptools/dist.py", line 221, in __init__
    self.fetch_build_eggs(attrs.pop('setup_requires'))
  File "/usr/lib/python2.6/site-packages/setuptools/dist.py", line 245, in fetch_build_eggs
    parse_requirements(requires), installer=self.fetch_build_egg
  File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 550, in resolve
    raise VersionConflict(dist,req) # XXX put more info here
pkg_resources.VersionConflict: (Genshi 0.5.1 (/usr/lib/python2.6/site-packages), Requirement.parse('Genshi>=0.6,<0.7dev'))
--------------------------------------------------------
なんか違うな…Pythonわかんないからエラー読めねぇや…。

(1時間経過)

…あ、Genshiインストールしてねぇじゃん!
ということでここからダウンロード

Genshi Downloads
http://genshi.edgewall.org/wiki/Download

そしてインストール。eggファイルなのでPythonのインストーラである
easy_installを使う。
--------------------------------------------------------
[root@Cent6-003-tan Trac-0.12.3.ja2]# cd /usr/local/src/
[root@Cent6-003-tan src]# ls
Genshi-0.6-py2.6.egg  Python-3.1.2.tgz  Trac-0.12.3.ja2.zip      python
Python-3.1.2          Trac-0.12.3.ja2   postgresql-9.1.3.tar.gz
[root@Cent6-003-tan src]# easy_install Genshi-0.6-py2.6.egg
Processing Genshi-0.6-py2.6.egg
creating /usr/lib/python2.6/site-packages/Genshi-0.6-py2.6.egg
Extracting Genshi-0.6-py2.6.egg to /usr/lib/python2.6/site-packages
Adding Genshi 0.6 to easy-install.pth file

Installed /usr/lib/python2.6/site-packages/Genshi-0.6-py2.6.egg
Processing dependencies for Genshi==0.6
Finished processing dependencies for Genshi==0.6
--------------------------------------------------------
Finished!
さぁ今度こそ、無限の彼方へ、さぁ行くぞ!
--------------------------------------------------------
[root@Cent6-003-tan src]# cd Trac-0.12.3.ja2
[root@Cent6-003-tan Trac-0.12.3.ja2]# pypython2.6 setup.py install
running install
running bdist_egg
running egg_info
creating Trac.egg-info
writing requirements to Trac.egg-info/requires.txt
writing Trac.egg-info/PKG-INFO
writing top-level names to Trac.egg-info/top_level.txt
writing dependency_links to Trac.egg-info/dependency_links.txt
writing entry points to Trac.egg-info/entry_points.txt
writing manifest file 'Trac.egg-info/SOURCES.txt'
reading manifest file 'Trac.egg-info/SOURCES.txt'
writing manifest file 'Trac.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-i686/egg
running install_lib
running compile_catalog_js
compiling catalog 'trac/locale/es/LC_MESSAGES/messages-js.po' to 'trac/locale/es/LC_MESSAGES/messages-js.mo'
compiling catalog 'trac/locale/zh_CN/LC_MESSAGES/messages-js.po' to 'trac/locale/zh_CN/LC_MESSAGES/messages-js.mo'
compiling catalog 'trac/locale/ru/LC_MESSAGES/messages-js.po' to 'trac/locale/ru/LC_MESSAGES/messages-js.mo'
compiling catalog 'trac/locale/sv/LC_MESSAGES/messages-js.po' to 'trac/locale/sv/LC_MESSAGES/messages-js.mo'
compiling catalog 'trac/locale/fi/LC_MESSAGES/messages-js.po' to 'trac/locale/fi/LC_MESSAGES/messages-js.mo'
compiling catalog 'trac/locale/fr/LC_MESSAGES/messages-js.po' to 'trac/locale/fr/LC_MESSAGES/messages-js.mo'
compiling catalog 'trac/locale/tr/LC_MESSAGES/messages-js.po' to 'trac/locale/tr/LC_MESSAGES/messages-js.mo'
compiling catalog 'trac/locale/nb/LC_MESSAGES/messages-js.po' to 'trac/locale/nb/LC_MESSAGES/messages-js.mo'
compiling catalog 'trac/locale/nl/LC_MESSAGES/messages-js.po' to 'trac/locale/nl/LC_MESSAGES/messages-js.mo'
compiling catalog 'trac/locale/en_GB/LC_MESSAGES/messages-js.po' to 'trac/locale/en_GB/LC_MESSAGES/messages-js.mo'
compiling catalog 'trac/locale/eo/LC_MESSAGES/messages-js.po' to 'trac/locale/eo/LC_MESSAGES/messages-js.mo'
compiling catalog 'trac/locale/he/LC_MESSAGES/messages-js.po' to 'trac/locale/he/LC_MESSAGES/messages-js.mo'
compiling catalog 'trac/locale/zh_TW/LC_MESSAGES/messages-js.po' to 'trac/locale/zh_TW/LC_MESSAGES/messages-js.mo'
compiling catalog 'trac/locale/ca/LC_MESSAGES/messages-js.po' to 'trac/locale/ca/LC_MESSAGES/messages-js.mo'
compiling catalog 'trac/locale/hy/LC_MESSAGES/messages-js.po' to 'trac/locale/hy/LC_MESSAGES/messages-js.mo'
compiling catalog 'trac/locale/es_AR/LC_MESSAGES/messages-js.po' to 'trac/locale/es_AR/LC_MESSAGES/messages-js.mo'
compiling catalog 'trac/locale/en_US/LC_MESSAGES/messages-js.po' to 'trac/locale/en_US/LC_MESSAGES/messages-js.mo'
compiling catalog 'trac/locale/sl/LC_MESSAGES/messages-js.po' to 'trac/locale/sl/LC_MESSAGES/messages-js.mo'
compiling catalog 'trac/locale/de/LC_MESSAGES/messages-js.po' to 'trac/locale/de/LC_MESSAGES/messages-js.mo'
compiling catalog 'trac/locale/pt_BR/LC_MESSAGES/messages-js.po' to 'trac/locale/pt_BR/LC_MESSAGES/messages-js.mo'
compiling catalog 'trac/locale/hu/LC_MESSAGES/messages-js.po' to 'trac/locale/hu/LC_MESSAGES/messages-js.mo'
compiling catalog 'trac/locale/it/LC_MESSAGES/messages-js.po' to 'trac/locale/it/LC_MESSAGES/messages-js.mo'
compiling catalog 'trac/locale/ja/LC_MESSAGES/messages-js.po' to 'trac/locale/ja/LC_MESSAGES/messages-js.mo'
running generate_messages_js
generating messages javascript 'trac/locale/es/LC_MESSAGES/messages-js.mo' to 'trac/htdocs/js/messages/es.js'
generating messages javascript 'trac/locale/zh_CN/LC_MESSAGES/messages-js.mo' to 'trac/htdocs/js/messages/zh_CN.js'
generating messages javascript 'trac/locale/ru/LC_MESSAGES/messages-js.mo' to 'trac/htdocs/js/messages/ru.js'
generating messages javascript 'trac/locale/sv/LC_MESSAGES/messages-js.mo' to 'trac/htdocs/js/messages/sv.js'
generating messages javascript 'trac/locale/fi/LC_MESSAGES/messages-js.mo' to 'trac/htdocs/js/messages/fi.js'
generating messages javascript 'trac/locale/fr/LC_MESSAGES/messages-js.mo' to 'trac/htdocs/js/messages/fr.js'
generating messages javascript 'trac/locale/tr/LC_MESSAGES/messages-js.mo' to 'trac/htdocs/js/messages/tr.js'
generating messages javascript 'trac/locale/nb/LC_MESSAGES/messages-js.mo' to 'trac/htdocs/js/messages/nb.js'
generating messages javascript 'trac/locale/nl/LC_MESSAGES/messages-js.mo' to 'trac/htdocs/js/messages/nl.js'
generating messages javascript 'trac/locale/en_GB/LC_MESSAGES/messages-js.mo' to 'trac/htdocs/js/messages/en_GB.js'
generating messages javascript 'trac/locale/eo/LC_MESSAGES/messages-js.mo' to 'trac/htdocs/js/messages/eo.js'
generating messages javascript 'trac/locale/he/LC_MESSAGES/messages-js.mo' to 'trac/htdocs/js/messages/he.js'
generating messages javascript 'trac/locale/zh_TW/LC_MESSAGES/messages-js.mo' to 'trac/htdocs/js/messages/zh_TW.js'
generating messages javascript 'trac/locale/ca/LC_MESSAGES/messages-js.mo' to 'trac/htdocs/js/messages/ca.js'
generating messages javascript 'trac/locale/hy/LC_MESSAGES/messages-js.mo' to 'trac/htdocs/js/messages/hy.js'
generating messages javascript 'trac/locale/es_AR/LC_MESSAGES/messages-js.mo' to 'trac/htdocs/js/messages/es_AR.js'
generating messages javascript 'trac/locale/en_US/LC_MESSAGES/messages-js.mo' to 'trac/htdocs/js/messages/en_US.js'
generating messages javascript 'trac/locale/sl/LC_MESSAGES/messages-js.mo' to 'trac/htdocs/js/messages/sl.js'
generating messages javascript 'trac/locale/de/LC_MESSAGES/messages-js.mo' to 'trac/htdocs/js/messages/de.js'
generating messages javascript 'trac/locale/pt_BR/LC_MESSAGES/messages-js.mo' to 'trac/htdocs/js/messages/pt_BR.js'
generating messages javascript 'trac/locale/hu/LC_MESSAGES/messages-js.mo' to 'trac/htdocs/js/messages/hu.js'
generating messages javascript 'trac/locale/it/LC_MESSAGES/messages-js.mo' to 'trac/htdocs/js/messages/it.js'
generating messages javascript 'trac/locale/ja/LC_MESSAGES/messages-js.mo' to 'trac/htdocs/js/messages/ja.js'
running compile_catalog
compiling catalog 'trac/locale/es/LC_MESSAGES/messages.po' to 'trac/locale/es/LC_MESSAGES/messages.mo'
compiling catalog 'trac/locale/zh_CN/LC_MESSAGES/messages.po' to 'trac/locale/zh_CN/LC_MESSAGES/messages.mo'
compiling catalog 'trac/locale/ko/LC_MESSAGES/messages.po' to 'trac/locale/ko/LC_MESSAGES/messages.mo'
compiling catalog 'trac/locale/ru/LC_MESSAGES/messages.po' to 'trac/locale/ru/LC_MESSAGES/messages.mo'
catalog 'trac/locale/fa/LC_MESSAGES/messages.po' is marked as fuzzy, skipping
compiling catalog 'trac/locale/sv/LC_MESSAGES/messages.po' to 'trac/locale/sv/LC_MESSAGES/messages.mo'
compiling catalog 'trac/locale/fi/LC_MESSAGES/messages.po' to 'trac/locale/fi/LC_MESSAGES/messages.mo'
catalog 'trac/locale/el/LC_MESSAGES/messages.po' is marked as fuzzy, skipping
compiling catalog 'trac/locale/cs/LC_MESSAGES/messages.po' to 'trac/locale/cs/LC_MESSAGES/messages.mo'
compiling catalog 'trac/locale/pt/LC_MESSAGES/messages.po' to 'trac/locale/pt/LC_MESSAGES/messages.mo'
compiling catalog 'trac/locale/fr/LC_MESSAGES/messages.po' to 'trac/locale/fr/LC_MESSAGES/messages.mo'
compiling catalog 'trac/locale/tr/LC_MESSAGES/messages.po' to 'trac/locale/tr/LC_MESSAGES/messages.mo'
compiling catalog 'trac/locale/nb/LC_MESSAGES/messages.po' to 'trac/locale/nb/LC_MESSAGES/messages.mo'
compiling catalog 'trac/locale/nl/LC_MESSAGES/messages.po' to 'trac/locale/nl/LC_MESSAGES/messages.mo'

(略)

Installed /usr/lib/python2.6/site-packages/Trac-0.12.3.ja2-py2.6.egg
Processing dependencies for Trac==0.12.3.ja2
Searching for Genshi==0.6
Best match: Genshi 0.6
Processing Genshi-0.6-py2.6.egg
Genshi 0.6 is already the active version in easy-install.pth

Using /usr/lib/python2.6/site-packages/Genshi-0.6-py2.6.egg
Searching for distribute==0.6.10
Best match: distribute 0.6.10
Adding distribute 0.6.10 to easy-install.pth file
Installing easy_install script to /usr/bin
Installing easy_install-2.6 script to /usr/bin

Using /usr/lib/python2.6/site-packages
Finished processing dependencies for Trac==0.12.3.ja2
--------------------------------------------------------
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
ホントにインストールされたのか確認。
--------------------------------------------------------
[root@Cent6-003-tan Trac-0.12.3.ja2]# installtrac-admin help
trac-admin - Trac 管理コンソール 0.12.3.ja2

Usage: trac-admin [コマンド [サブコマンド] [オプション ...]]

コマンドを省略して trac-admin を実行すると、対話モードで起動します。

help     Show documentation
initenv  Create and initialize a new environment
--------------------------------------------------------
ちゃんと来てます!


[Subversionの準備とか]
主にディレクトリ作ってリポジトリ(プロジェクト?)作る。
場所は/var/svn
--------------------------------------------------------
[root@Cent6-003-tan Trac-0.12.3.ja2]# mkdir /var/svn
[root@Cent6-003-tan Trac-0.12.3.ja2]# cd /var/svn/
[root@Cent6-003-tan svn]# ls
[root@Cent6-003-tan svn]# pwd
/var/svn
[root@Cent6-003-tan svn]# svnadmin create PumpkinsProject
[root@Cent6-003-tan svn]# ls
PumpkinsProject
[root@Cent6-003-tan svn]# ls PumpkinsProject/
README.txt  conf  db  format  hooks  locks
[root@Cent6-003-tan svn]# cd ~
--------------------------------------------------------
この本に書いてる通りにやってます…。



チェックアウトの概念を正確に理解できてないけど、マウントっぽいノリってことでいいの?
いや、リポジトリから放出してるんだろうけどさ…勉強不足…。
--------------------------------------------------------
[root@Cent6-003-tan ~]# svn co file:///var/svn/birdPumpkinsProject/
リビジョン 0 をチェックアウトしました。
[root@Cent6-003-tan ~]# cd PumpkinsProject/
[root@Cent6-003-tan PumpkinsProject]# ls -la
合計 12
drwxr-xr-x  3 root root 4096  4月 10 04:06 2012 .
dr-xr-x---. 5 root root 4096  4月 10 04:06 2012 ..
drwxr-xr-x  6 root root 4096  4月 10 04:06 2012 .svn
[root@Cent6-003-tan PumpkinsProject]# svn mkdir trunk branches tags
A         trunk
A         branches
A         tags
[root@Cent6-003-tan PumpkinsProject]# svn commit -nm 'Create working directory.'
追加しています              branches
追加しています              tags
追加しています              trunk

リビジョン 1 をコミットしました。
[root@Cent6-003-tan PumpkinsProject]# cd trunk/
[root@Cent6-003-tan trunk]# pwd
/root/PumpkinsProject/trunk
[root@Cent6-003-tan trunk]# ls
kansei.png  sample.py ←持ってきた
[root@Cent6-003-tan trunk]# scvn add sample.py kanasei.png
A         sample.py
A  (bin)  kansei.png
[root@Cent6-003-tan trunk]# snvn commit -m 'Added new files.'
追加しています  (バイナリ)  trunk/kansei.png
追加しています              trunk/sample.py
ファイルのデータを送信しています ..
リビジョン 2 をコミットしました。
--------------------------------------------------------

次はTracのプロジェクト用ディレクトリとかを作る。
「trac-admin ○○○(ProjectName) initenv」コマンドを実行する。
--------------------------------------------------------
[root@Cent6-003-tan trunk]# cd /var/
[root@Cent6-003-tan var]# mkdir trac
[root@Cent6-003-tan var]# pwd
/var
[root@Cent6-003-tan var]# cd trac/
[root@Cent6-003-tan trac]# pwd
/var/trac
[root@Cent6-003-tan trac]# trac-admin  PumppkinsProject initenv
新規 Trac Environment /var/trac/PumpkinsProject の生成

はじめに、プロジェクトのデータベースの初期化と準備をするために、
あなたの環境についていくつか確認をします。

 プロジェクトの名前を入力してください。
 この名前は、ページのタイトルと説明に使用されます。

プロジェクト名 [My Project]> PumpkinsProject

 使用するデータベースへの接続文字列を指定してください。
 デフォルトではローカルに SQLite データベースを作成します。
 既に存在する PostgreSQL データベースを使うこともできます。
 (Trac では、接続文字列は厳密に表記する必要があります。
 詳細は Trac のドキュメントを参照してください)

データベース接続文字列 [sqlite:db/trac.db]>
--------------------------------------------------------
ここで困った…。
「データベース接続文字列」ってなんだ??
ということでググってみた。わかった。ここに書いてあった。ありがとうございます。

TracEnvironment – EC-CUBE Trac
http://svn.ec-cube.net/open_trac/wiki/TracEnvironment

読むまで気づかなかったけど、接続用のデータベースを作成しないといけない。
ということで作成する。別に外部に公開しないからいいんだけど、
外部公開用のサーバはユーザ名とかパスワードとか分かりやすいものにしちゃダメですよ。
(今回はユーザ名とパスワードを同じにした。)
ということで、もいっこターミナルを立てて、そっちで別途作業を行った。
--------------------------------------------------------
Last login: Tue Apr 10 03:00:42 2012 from 192.168.11.2
[root@Cent6-003-tan ~]# createuser -U postgres -E -P tracuser
新しいロールのパスワード:
もう一度入力してください:
新しいロールをスーパーユーザとしますか?  (y/n)n
新しいロールにデータベース作成権限を与えますか? (y/n)n
新しいロールにロールを作成する権限を与えますか? (y/n)n
[root@Cent6-003-tan ~]# createdb -U postgres -O tracuser -E UTF8 trac
--------------------------------------------------------
「tracuser」というユーザを作って、パスワードを決めて、
tracuserが所持するUTF-8エンコードのtracというデータベースを作った。
で、最初の方のターミナルに戻る。
--------------------------------------------------------
データベース接続文字列 [sqlite:db/trac.db]> postgres://tracuser:tracuser@localhost/trac

プロジェクトの生成と初期化
 デフォルトの Wiki ページのインストール
  TracRss を /usr/lib/python2.6/site-packages/Trac-0.12.3.ja2-py2.6.egg/trac/wiki/default-pages/TracRss からインポートしました
  TracRevisionLog を /usr/lib/python2.6/site-packages/Trac-0.12.3.ja2-py2.6.egg/trac/wiki/default-pages/TracRevisionLog からインポートしました
  TracSearch を /usr/lib/python2.6/site-packages/Trac-0.12.3.ja2-py2.6.egg/trac/wiki/default-pages/TracSearch からインポートしました
  TracBrowser を /usr/lib/python2.6/site-packages/Trac-0.12.3.ja2-py2.6.egg/trac/wiki/default-pages/TracBrowser からインポートしました
  TracRepositoryAdmin を /usr/lib/python2.6/site-packages/Trac-0.12.3.ja2-py2.6.egg/trac/wiki/default-pages/TracRepositoryAdmin からインポー

トしました

(略)

  TracImport を /usr/lib/python2.6/site-packages/Trac-0.12.3.ja2-py2.6.egg/trac/wiki/default-pages/TracImport からインポートしました
  TracChangeset を /usr/lib/python2.6/site-packages/Trac-0.12.3.ja2-py2.6.egg/trac/wiki/default-pages/TracChangeset からインポートしました
  TracNotification を /usr/lib/python2.6/site-packages/Trac-0.12.3.ja2-py2.6.egg/trac/wiki/default-pages/TracNotification からインポートしました

---------------------------------------------------------------------
Trac Environment 'PumpkinsProject' ができました。

今後、この環境の設定をする場合は、次のファイルを利用します:

  /var/trac/PumpkinsProject/conf/trac.ini

あなたがこの新しいプロジェクトのテストを考えているなら、
スタンドアロンウェブサーバ `tracd` を試してみてください:

  tracd --port 8000 /var/trac/PumpkinsProject

それから、ブラウザで http://localhost:8000/PumpkinsProject にアクセスします。
インストールしたバージョンに合わせた今後のセットアップ情報などが含まれた、
ドキュメントが閲覧できます。(例えばウェブサーバで公開する手順など)

最新のドキュメントは、プロジェクトのウェブサイトから入手できます:

  http://trac.edgewall.org/

Congratulations!
--------------------------------------------------------
きたわこれ。

あとはApacheの設定をちょっとやればおk。

[mod_pythonについて]
後回しにしてたmod_pythonについて。
実はインストールされてあるものだと思ったらなかった。
yumで一発だろと思ったらインストールできない。
なんで?
ググってみたら似たような事を先に経験されてる方が。

■CentOS6にTrac-0.12.2.ja1を入れる
http://d.hatena.ne.jp/kakk0u/20110927/1317137608

yumリポジトリに入ってないんだって。mod_python
そのかわりmod_wsgiは入ってるんだよな。
最初は下のページから直接落としてインストールしてみようとしたりしたけど、
http://archive.apache.org/dist/httpd/modpython/
結局うまくいかなくて、EPELリポジトリをCentOSに追加してそこからyumでインストールした。
EPELリポジトリについては以下のページがとても参考になりました。ありがとうございました。

EPEL リポジトリを活用して CentOS 5.x で Python 2.6 をインストールする
http://d.hatena.ne.jp/t2y-1979/20110430/1304140587


--------------------------------------------------------

試行錯誤してる途中によくわからないからhttpd-develとかちゃんと入ってるのかyumしてみたりした。
--------------------------------------------------------
[root@Cent6-003-tan mod_python-3.3.1]# um -y install httpd-devel
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package httpd-devel.i686 0:2.2.15-15.el6.centos.1 will be installed
--> Processing Dependency: httpd = 2.2.15-15.el6.centos.1 for package: httpd-devel-2.2.15-15.el6.centos.1.i686
--> Processing Dependency: apr-util-devel for package: httpd-devel-2.2.15-15.el6.centos.1.i686
--> Processing Dependency: apr-devel for package: httpd-devel-2.2.15-15.el6.centos.1.i686

(略)

Installed:
  httpd-devel.i686 0:2.2.15-15.el6.centos.1                                            

Dependency Installed:
  apr-devel.i686 0:1.3.9-3.el6_1.2         apr-util-devel.i686 0:1.3.9-3.el6_0.1      
  expat-devel.i686 0:2.0.1-9.1.el6      

Dependency Updated:
  httpd.i686 0:2.2.15-15.el6.centos.1       httpd-manual.noarch 0:2.2.15-15.el6.centos.1
  httpd-tools.i686 0:2.2.15-15.el6.centos.1 mod_ssl.i686 1:2.2.15-15.el6.centos.1    

Complete!
--------------------------------------------------------
Updateされた。
で、まずEPELのRPMを持ってきてインストールする。「イーペル」と読むらしい。
ここから落としました。日本語ページだとリンク切れになってたので英語圏から。
http://fedoraproject.org/wiki/EPEL

「If you are running an EL6 version: epel-release-6-5.noarch.rpm」
のとこから落としました。そしてインストール。
--------------------------------------------------------
[root@Cent6-003-tan conf.d]# cd /usr/local/src/
[root@Cent6-003-tan src]# ls
Genshi-0.6-py2.6.egg  Trac-0.12.3.ja2              mod_python-3.3.1         python
Python-3.1.2          Trac-0.12.3.ja2.zip          mod_python-3.3.1.tgz
Python-3.1.2.tgz      epel-release-6-5.noarch.rpm  postgresql-9.1.3.tar.gz
[root@Cent6-003-tan src]# rpm -Uvh epel-release-6-5.noarch.rpm
警告: epel-release-6-5.noarch.rpm: ヘッダ V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
準備中...

(略)

########################################### [100%]
--------------------------------------------------------

参考サイトに書いてある通りに、普段はEPELリポジトリを参照しないように設定を変更する。
--------------------------------------------------------
[root@Cent6-003-tan src]# vim /etc/yum.rfeepos.d/epel.repo
"/etc/yum.repos.d/epel.repo" 26L, 957C[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1 ←ここ
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
--------------------------------------------------------

そしてEPELリポジトリを明示的に指定してインストール!
--------------------------------------------------------
[root@Cent6-003-tan src]# yum search mod_python --enablerepo=epelinstall
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * epel: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package mod_python.i686 0:3.3.1-14.el6.1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=========================================================================================
 Package               Arch            Version                     Repository       Size
=========================================================================================
Installing:
 mod_python            i686            3.3.1-14.el6.1              epel            290 k

Transaction Summary
=========================================================================================
Install       1 Package(s)

Total download size: 290 k
Installed size: 1.5 M
Is this ok [y/N]: y
Downloading Packages:
mod_python-3.3.1-14.el6.1.i686.rpm                                | 290 kB     00:00  
警告: rpmts_HdrFromFdno: ヘッダ V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
Importing GPG key 0x0608B895:
 Userid : EPEL (6)
 Package: epel-release-6-5.noarch (installed)
 From   : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
  Installing : mod_python-3.3.1-14.el6.1.i686 [                                    ] 1/1

(略)

Installed:
  mod_python.i686 0:3.3.1-14.el6.1                                                    

Complete!
--------------------------------------------------------
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

あとはhttpd.confに専用の設定を追加する。一番下にこんなん書いた。

#---------Trac Setting----------
#

    setHandler mod_python
    PythonInterpreter main_interpreter
    PythonHandler trac.web.modpython_frontend
    PythonOption TracUriRoot /PumpkinsProject
    PythonOption TracEnv /var/trac/PumpkinsProject

#-------------------------------

これも参考書の通り。
あとはhttpdを再起動して…
--------------------------------------------------------
/etc/init.d/httpd restart
httpd を停止中: [  OK  ]
httpd を起動中: httpd: apr_sockaddr_info_get() failed for Cent6-003-tan
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[  OK  ]
--------------------------------------------------------

ループバックアドレスの名前解決で怒られてるけどひとまずOK!

で、実際にアクセスしてみたらこんな感じになった。

ありがとうございました!