玄箱HGにFedoraを入れて自宅サーバを構築(Fedora12) - Amonution

tracによるプロジェクト管理

概要

tracとはプロジェクトを管理するためのツールです。 Subversionと合わせて使うことでリポジトリと連携させることができます。

結論から申し上げますと、まだ問題が残っており、実用できる状態にはなりませんでした。

tracのインストール

yumを使ってインストールします。

[root@KURO-BOX ~]# yum install trac
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
updates/metalink                                         | 1.9 kB     00:00
 * fedora: ftp-stud.hs-esslingen.de
 * rpmfusion-free: mirror.web-ster.com
 * rpmfusion-free-updates: mirror.web-ster.com
 * updates: dl.fedoraproject.org
rpmfusion-free-updates                                   | 3.3 kB     00:00
インストール処理の設定をしています
依存性の解決をしています
--> トランザクションの確認を実行しています
---> パッケージ trac.noarch 0:0.11.7-1.fc12 を更新に設定しました
--> 依存性の処理をしています: python-genshi >= 0.5 のパッケージ: trac-0.11.7-1.fc12.noarch
--> 依存性の処理をしています: python-pygments のパッケージ: trac-0.11.7-1.fc12.noarch
--> 依存性の処理をしています: python-setuptools のパッケージ: trac-0.11.7-1.fc12.noarch
--> トランザクションの確認を実行しています
---> パッケージ python-genshi.ppc 0:0.5.1-7.fc12 を更新に設定しました
--> 依存性の処理をしています: python-babel >= 0.8 のパッケージ: python-genshi-0.5.1-7.fc12.ppc
---> パッケージ python-pygments.noarch 0:1.3.1-2.fc12 を更新に設定しました
--> 依存性の処理をしています: python-imaging のパッケージ: python-pygments-1.3.1-2.fc12.noarch
---> パッケージ python-setuptools.noarch 0:0.6c9-5.fc12 を更新に設定しました
--> トランザクションの確認を実行しています
---> パッケージ python-babel.noarch 0:0.9.5-1.fc12 を更新に設定しました
---> パッケージ python-imaging.ppc 0:1.1.6-17.fc12 を更新に設定しました
--> 依存性の処理をしています: libfreetype.so.6 のパッケージ: python-imaging-1.1.6-17.fc12.ppc
--> トランザクションの確認を実行しています
---> パッケージ freetype.ppc 0:2.3.11-7.fc12 を更新に設定しました
--> 依存性解決を終了しました

依存性を解決しました

================================================================================
 パッケージ              アーキテクチャ
                                      バージョン            リポジトリー   容量
================================================================================
インストールしています:
 trac                    noarch       0.11.7-1.fc12         updates       1.0 M
依存性関連でのインストールをします:
 freetype                ppc          2.3.11-7.fc12         updates       352 k
 python-babel            noarch       0.9.5-1.fc12          updates       1.4 M
 python-genshi           ppc          0.5.1-7.fc12          fedora        356 k
 python-imaging          ppc          1.1.6-17.fc12         fedora        342 k
 python-pygments         noarch       1.3.1-2.fc12          updates       617 k
 python-setuptools       noarch       0.6c9-5.fc12          fedora        237 k

トランザクションの要約
================================================================================
インストール         7 パッケージ
アップグレード       0 パッケージ

総ダウンロード容量: 4.3 M
インストール済み容量: 18 M
これでいいですか? [y/N] y
パッケージをダウンロードしています:
(1/7): freetype-2.3.11-7.fc12.ppc.rpm                    | 352 kB     00:01
(2/7): python-babel-0.9.5-1.fc12.noarch.rpm              | 1.4 MB     00:01
(3/7): python-genshi-0.5.1-7.fc12.ppc.rpm                | 356 kB     00:02
(4/7): python-imaging-1.1.6-17.fc12.ppc.rpm              | 342 kB     00:00
(5/7): python-pygments-1.3.1-2.fc12.noarch.rpm           | 617 kB     00:02
(6/7): python-setuptools-0.6c9-5.fc12.noarch.rpm         | 237 kB     00:02
(7/7): trac-0.11.7-1.fc12.noarch.rpm                     | 1.0 MB     00:03
--------------------------------------------------------------------------------
合計                                            248 kB/s | 4.3 MB     00:17
rpm_check_debug を実行しています
トランザクションのテストを実行しています
トランザクションのテストを成功しました
トランザクションを実行しています
  インストールし : python-setuptools-0.6c9-5.fc12.noarch                    1/7
  インストールし : python-babel-0.9.5-1.fc12.noarch                         2/7
  インストールし : python-genshi-0.5.1-7.fc12.ppc                           3/7
  インストールし : freetype-2.3.11-7.fc12.ppc                               4/7
  インストールし : python-imaging-1.1.6-17.fc12.ppc                         5/7
  インストールし : python-pygments-1.3.1-2.fc12.noarch                      6/7
  インストールし : trac-0.11.7-1.fc12.noarch                                7/7

インストールしました:
  trac.noarch 0:0.11.7-1.fc12

依存性関連をインストールしました:
  freetype.ppc 0:2.3.11-7.fc12          python-babel.noarch 0:0.9.5-1.fc12
  python-genshi.ppc 0:0.5.1-7.fc12      python-imaging.ppc 0:1.1.6-17.fc12
  python-pygments.noarch 0:1.3.1-2.fc12 python-setuptools.noarch 0:0.6c9-5.fc12

完了しました!

mod_pythonのインストール

tracで使用するmod_pythonをインストールします。

[root@KURO-BOX ~]# yum install mod_python
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * fedora: ftp-stud.hs-esslingen.de
 * rpmfusion-free: mirror.web-ster.com
 * rpmfusion-free-updates: mirror.web-ster.com
 * updates: dl.fedoraproject.org
インストール処理の設定をしています
依存性の解決をしています
--> トランザクションの確認を実行しています
---> パッケージ mod_python.ppc 0:3.3.1-11 を更新に設定しました
--> 依存性解決を終了しました

依存性を解決しました

================================================================================
 パッケージ           アーキテクチャ
                                    バージョン           リポジトリー      容量
================================================================================
インストールしています:
 mod_python           ppc           3.3.1-11             fedora           258 k

トランザクションの要約
================================================================================
インストール         1 パッケージ
アップグレード       0 パッケージ

総ダウンロード容量: 258 k
インストール済み容量: 1.5 M
これでいいですか? [y/N] y
パッケージをダウンロードしています:
mod_python-3.3.1-11.ppc.rpm                              | 258 kB     00:02
rpm_check_debug を実行しています
トランザクションのテストを実行しています
トランザクションのテストを成功しました
トランザクションを実行しています
  インストールし : mod_python-3.3.1-11.ppc                                  1/1

インストールしました:
  mod_python.ppc 0:3.3.1-11

完了しました!

tracプロジェクトの作成

tracで管理するプロジェクトを作成します。 /var/trac にプロジェクト「TestProject」を作成することにします。

まずプロジェクトを保存するためのディレクトリを作成し、 apacheからアクセスするためオーナーを変更します。

[root@KURO-BOX ~]# mkdir /var/trac
[root@KURO-BOX ~]# chown apache.apache /var/trac

次にtrac-adminでプロジェクト用のディレクトリを初期化します。

[root@KURO-BOX ~]# trac-admin /var/trac/TestProject initenv
Creating a new Trac environment at /var/trac/TestProject

Trac will first ask a few questions about your environment
in order to initialize and prepare the project database.

 Please enter the name of your project.
 This name will be used in page titles and descriptions.

Project Name [My Project]> TestProject プロジェクト名を入力

 Please specify the connection string for the database to use.
 By default, a local SQLite database is created in the environment
 directory. It is also possible to use an already existing
 PostgreSQL database (check the Trac documentation for the exact
 connection string syntax).

Database connection string [sqlite:db/trac.db]> 空のままでよい

 Please specify the type of version control system,
 By default, it will be svn.

 If you don't want to use Trac with version control integration,
 choose the default here and don't specify a repository directory.
 in the next question.

Repository type [svn]> 空のままでよい

 Please specify the absolute path to the version control
 repository, or leave it blank to use Trac without a repository.
 You can also set the repository location later.

Path to repository [/path/to/repos]> /var/svn/repos/TestProject SVNのリポジトリを指定

Creating and Initializing Project
 Installing default wiki pages
 PageTemplates imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/PageTemplates
 CamelCase imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/CamelCase
 InterMapTxt imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/InterMapTxt
 InterTrac imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/InterTrac
 InterWiki imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/InterWiki
 TracAccessibility imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracAccessibility
 RecentChanges imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/RecentChanges
 SandBox imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/SandBox
 TitleIndex imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TitleIndex
 TracChangeset imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracChangeset
 TracAdmin imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracAdmin
 TracBackup imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracBackup
 TracBrowser imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracBrowser
 TracCgi imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracCgi
 TracNotification imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracNotification
 TracEnvironment imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracEnvironment
 TracFastCgi imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracFastCgi
 TracGuide imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracGuide
 TracImport imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracImport
 TracFineGrainedPermissions imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracFineGrainedPermissions
 TracIni imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracIni
 TracInstall imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracInstall
 TracLinks imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracLinks
 TracLogging imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracLogging
 TracInterfaceCustomization imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracInterfaceCustomization
 TracModPython imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracModPython
 TracModWSGI imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracModWSGI
 TracNavigation imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracNavigation
 TracSyntaxColoring imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracSyntaxColoring
 TracPermissions imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracPermissions
 TracPlugins imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracPlugins
 TracQuery imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracQuery
 TracReports imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracReports
 TracRevisionLog imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracRevisionLog
 TracRoadmap imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracRoadmap
 TracRss imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracRss
 TracSearch imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracSearch
 TracStandalone imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracStandalone
 TracSupport imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracSupport
 TracTimeline imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracTimeline
 TracTickets imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracTickets
 WikiRestructuredTextLinks imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/WikiRestructuredTextLinks
 TracTicketsCustomFields imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracTicketsCustomFields
 TracUnicode imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracUnicode
 TracUpgrade imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracUpgrade
 TracWiki imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracWiki
 TracWorkflow imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/TracWorkflow
 WikiDeletePage imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/WikiDeletePage
 WikiFormatting imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/WikiFormatting
 WikiHtml imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/WikiHtml
 WikiMacros imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/WikiMacros
 WikiNewPage imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/WikiNewPage
 WikiPageNames imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/WikiPageNames
 WikiProcessors imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/WikiProcessors
 WikiRestructuredText imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/WikiRestructuredText
 WikiStart imported from /usr/lib/python2.6/site-packages/trac/wiki/default-pages/WikiStart
 Indexing repository
 [1]
---------------------------------------------------------------------
Project environment for 'TestProject' created.

You may now configure the environment by editing the file:

  /var/trac/TestProject/conf/trac.ini

If you'd like to take this new project environment for a test drive,
try running the Trac standalone web server `tracd`:

  tracd --port 8000 /var/trac/TestProject

Then point your browser to http://localhost:8000/TestProject.
There you can also browse the documentation for your installed
version of Trac, including information on further setup (such as
deploying Trac to a real web server).

The latest documentation can also always be found on the project
website:

  http://trac.edgewall.org/

Congratulations!

apaceでアクセスするためオーナーを変更します。

[root@KURO-BOX ~]# chown -R apache.apache /var/trac/TestProject

apacheの設定

作成したtracのプロジェクトにアクセスするための設定を行います。

[root@KURO-BOX ~]# vi /etc/httpd/conf.d/trac.conf

標準では下記のように記述されています。

<LocationMatch /cgi-bin/trac\.f?cgi>
    #SetEnv TRAC_ENV /srv/trac
</LocationMatch>
<IfModule mod_python.c>
<Location /cgi-bin/trac.cgi>
    SetHandler mod_python
    PythonHandler trac.web.modpython_frontend
    #PythonOption TracEnv /srv/trac
</Location>
</IfModule>

下記のように書き換えます。

/tracへのアクセスでcgiを実行させるための設定
ScriptAlias /trac /var/www/cgi-bin/trac.cgi

/tracにアクセスされたときの設定
<Location /trac>
    SetHandler mod_python
    PythonHandler trac.web.modpython_frontend
    PythonOption TracEnvParentDir /var/trac  tracのプロジェクトを保存しているディレクトリ
    PythonOption TracUriRoot /trac
</Location>

Loginの設定
>LocationMatch "/trac/[^/]+/login">
    AuthType Basic
    AuthName "Trac"
    AuthUserFile /var/trac/TestProject/.htpasswd  パスワードファイルを指定
    Require valid-user
</LocationMatch>

Loginするためのパスワードを設定します。

[root@KURO-BOX ~]# htpasswd -c /var/trac/TestProject/.htpasswd testuser
New password: パスワードを入力
Re-type new password: 再度、パスワードを入力
Adding password for user testuser

設定が完了したのでapacheを再起動します。

[root@KURO-BOX ~]# /etc/init.d/httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

動作テスト

この時点で/tracにアクセスするとAvailable Projectsという画面が表示されます。
作成したプロジェクト「TestProject」が表示されていることを確認します。
trac sample

「TestProject」のリンクをクリックするか、/trac/TestProjectにアクセスすると、 そのプロジェクトのトップページが表示されます。
trac sample
注:画面上部に「×」がありロゴが表示されていません。おそらく設定が足りていません。

[Login]をクリックすると、ユーザー名とパスワードの入力を求められます。
先ほど追加したユーザー名・パスワードを入力します。
trac sample

[Browse Source]をクリックすると、リポジトリの内容が表示されます。
trac sample

問題点と今後の課題

インストールが正しくできていないのか、設定が間違っているのか、 それとも、玄箱の性能なのか、やたらと動きがもっさりしています。 正直に言って実用に耐えられるレベルではないと思います。 原因を調べるのも大変そうなので、代替手段を考えています。
今のところ、Windows上でTracとSubversionが使えるTrac Lightningというのがあるので これを試して見ようかと思っています。(そうなると「玄箱で~」とは関係なくなりますが)
あるいは別のサーバを立ち上げるかもしれません。 まずはVM上になると思いますが、UbuntuやCentOSなどで試して見たいとも思っています。
それとは別に、メッセージがすべて英語なので日本語化が必要そうですね。

スポンサード リンク

TOPに戻る / メニューに戻る
Copyright © 1999-2011 Amonution  All rights reserved.
Address