When it’s ready.

出来るまで出来ない

#インストールしながらの日記作成してみる。成功しない可能性あり 2:10

環境

  • ThinkCentreA55 SmallDesktop(確か・・)
  • ubuntu 7.10
  • python2.5.1
  • Apache/2.2.4

設定(追記分)

host kage
repo /var/hg/kagerepo
trac /var/trac/kagerepo

作業ログ

  1. sudo aptitude install mercurial
atusi@kage:~$ sudo aptitude install mercurial
[sudo] password for atusi:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
Reading state information... 完了            
拡張状態情報を読み込んでいます      
パッケージの状態を初期化しています... 完了
タグのデータベースを構築しています... 完了  
以下の新規パッケージが自動的にインストールされます:
  kdelibs-data kdelibs4c2a kdiff3 libakode2 libarts1-akode libarts1c2a 
  libartsc0 libaudio2 libavahi-qt3-1 liblua50 liblualib50 libopenexr2c2a 
  libqt3-mt libsamplerate0 perl-suid 
以下のパッケージが一時固定されています:
  libcdio6 libpcre3 libpcrecpp0 
以下の新規パッケージがインストールされます:
  kdelibs-data kdelibs4c2a kdiff3 libakode2 libarts1-akode libarts1c2a 
  libartsc0 libaudio2 libavahi-qt3-1 liblua50 liblualib50 libopenexr2c2a 
  libqt3-mt libsamplerate0 mercurial perl-suid 
0 個のパッケージを更新、 16 個を新たにインストール、 0 個を削除予定、3 個が更新されていない。
24.8MB のアーカイブを取得する必要があります。 展開後に 81.7MB のディスク領域が新たに消費されます。
続けますか? [Y/n/?] y
拡張状態情報を書き込んでいます... 完了
取得:1 http://security.ubuntu.com gutsy-security/main perl-suid 5.8.8-7ubuntu3.1 [31.9kB]
 〜〜ざっくりんこ〜〜
Processing triggers for libc6 ...
ldconfig deferred processing now taking place
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
Reading state information... 完了            
拡張状態情報を読み込んでいます       
パッケージの状態を初期化しています... 完了
拡張状態情報を書き込んでいます... 完了        
タグのデータベースを構築しています... 完了
atusi@kage:~$ hg
Mercurial Distributed SCM

basic commands:

 add        add the specified files on the next commit
 annotate   show changeset information per file line
 clone      make a copy of an existing repository
 commit     commit the specified files or all outstanding changes
 diff       diff repository (or selected files)
 export     dump the header and diffs for one or more changesets
 init       create a new repository in the given directory
 log        show revision history of entire repository or files
 merge      merge working directory with another revision
 parents    show the parents of the working dir or revision
 pull       pull changes from the specified source
 push       push changes to the specified destination
 qdiff      diff of the current patch
 qimport    import a patch
 qinit      init a new queue repository
 qpop       pop the current patch off the stack
 qpush      push the next patch onto the stack
 qrefresh   update the current patch
 remove     remove the specified files on the next commit
 revert     revert files or dirs to their states as of some revision
 serve      export the repository via HTTP
 status     show changed files in the working directory
 strip      strip a revision and all later revs on the same branch
 update     update working directory
 view       start interactive history viewer

use "hg help" for the full list of commands or "hg -v" for details
atusi@kage:~$

hgの動作チェック完了。インスコ超簡単

  1. tracのソースゲット&解凍
atusi@kage:~/local/src/trac$ wget http://ftp.edgewall.com/pub/trac/Trac-0.11b1.tar.gz
--02:18:09--  http://ftp.edgewall.com/pub/trac/Trac-0.11b1.tar.gz
           => `Trac-0.11b1.tar.gz'
ftp.edgewall.com をDNSに問いあわせています... 83.168.202.212
ftp.edgewall.com|83.168.202.212|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 634,125 (619K) [application/octet-stream]

100%[======================================================>] 634,125      159.84K/s    ETA 00:00

02:18:13 (159.60 KB/s) - `Trac-0.11b1.tar.gz' を保存しました [634125/634125]

atusi@kage:~/local/src/trac$ gunzip Trac-0.11b1.tar.gz 
atusi@kage:~/local/src/trac$ tar xvf Trac-0.11b1.tar 
  1. tracのインストール
atusi@kage:~/local/src/trac/Trac-0.11b1$ sudo python setup.py install
running install
running bdist_egg
running 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
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 build_py
creating build
creating build/lib
creating build/lib/trac
copying trac/about.py -> build/lib/trac
copying trac/core.py -> build/lib/trac

〜〜ざっくり〜〜
byte-compiling build/bdist.linux-i686/egg/trac/db/schema.py to schema.pyc
creating build/bdist.linux-i686/egg/EGG-INFO
copying Trac.egg-info/PKG-INFO -> build/bdist.linux-i686/egg/EGG-INFO
copying Trac.egg-info/SOURCES.txt -> build/bdist.linux-i686/egg/EGG-INFO
copying Trac.egg-info/dependency_links.txt -> build/bdist.linux-i686/egg/EGG-INFO
copying Trac.egg-info/entry_points.txt -> build/bdist.linux-i686/egg/EGG-INFO
copying Trac.egg-info/not-zip-safe -> build/bdist.linux-i686/egg/EGG-INFO
copying Trac.egg-info/requires.txt -> build/bdist.linux-i686/egg/EGG-INFO
copying Trac.egg-info/top_level.txt -> build/bdist.linux-i686/egg/EGG-INFO
creating dist
creating 'dist/Trac-0.11b1-py2.5.egg' and adding 'build/bdist.linux-i686/egg' to it
removing 'build/bdist.linux-i686/egg' (and everything under it)
Processing Trac-0.11b1-py2.5.egg
creating /usr/lib/python2.5/site-packages/Trac-0.11b1-py2.5.egg
Extracting Trac-0.11b1-py2.5.egg to /usr/lib/python2.5/site-packages
Adding Trac 0.11b1 to easy-install.pth file
Installing trac-admin script to /usr/bin
Installing tracd script to /usr/bin

Installed /usr/lib/python2.5/site-packages/Trac-0.11b1-py2.5.egg
Processing dependencies for Trac==0.11b1
Searching for Genshi>=0.4.1
Reading http://pypi.python.org/simple/Genshi/
Reading http://genshi.edgewall.org/
Reading http://genshi.edgewall.org/wiki/Download
Best match: Genshi 0.4.4
Downloading http://ftp.edgewall.com/pub/genshi/Genshi-0.4.4-py2.5.egg
Processing Genshi-0.4.4-py2.5.egg
Moving Genshi-0.4.4-py2.5.egg to /usr/lib/python2.5/site-packages
Adding Genshi 0.4.4 to easy-install.pth file

Installed /usr/lib/python2.5/site-packages/Genshi-0.4.4-py2.5.egg
Finished processing dependencies for Trac==0.11b1
atusi@kage:~/local/src/trac/Trac-0.11b1$ 

エラーが全然でないな。山が無くてちょっと怖い

  1. このまま、Tracの構築をしたいところをぐっとこらえて、mercurialのプラグインを入れてみる。

ここを参考にした。

atusi@kage:~/local/src/trac/mercurial-plugin-0.11$ sudo python setup.py install
running install
running bdist_egg
running egg_info
writing requirements to TracMercurial.egg-info/requires.txt
〜〜ざっくり〜〜
creating 'dist/TracMercurial-0.11.0.2-py2.5.egg' and adding 'build/bdist.linux-i686/egg' to it
removing 'build/bdist.linux-i686/egg' (and everything under it)
Processing TracMercurial-0.11.0.2-py2.5.egg
Copying TracMercurial-0.11.0.2-py2.5.egg to /usr/lib/python2.5/site-packages
Adding TracMercurial 0.11.0.2 to easy-install.pth file

Installed /usr/lib/python2.5/site-packages/TracMercurial-0.11.0.2-py2.5.egg
Processing dependencies for TracMercurial==0.11.0.2
Finished processing dependencies for TracMercurial==0.11.0.2
atusi@kage:~/local/src/trac/mercurial-plugin-0.11$ 

ふぅ、ちょっと疲れてきた。このまま続ける。

  1. tracの構築をしてみる。
root@kage:/var/trac# trac-admin /var/trac/kagerepo initenv
Creating a new Trac environment at /var/trac/kagerepo

Trac will first ask a few questions about your environment 
in order to initalize 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]> kagerepo

 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]> hg	

ん?ここで行き詰まる。ローカルのリポジトリも作る前にtrac-admin動かしたのがまずいし、RepositoryTypeはなんて設定すれば良いんだ?とりあえづ、ぐぐる。

タイプは、hgでいいみたいだな。

リポジトリを作る。

root@kage:~# cd /var/
root@kage:/var# mkdir hg
root@kage:/var# cd hg/
root@kage:/var/hg# mkdir kagerepo
root@kage:/var/hg# cd kagerepo/
root@kage:/var/hg/kagerepo# hg init
root@kage:/var/hg/kagerepo# ls -la
合計 12
drwxr-xr-x 3 root root 4096 2008-03-03 02:55 .
drwxr-xr-x 3 root root 4096 2008-03-03 02:53 ..
drwxr-xr-x 3 root root 4096 2008-03-03 02:55 .hg
root@kage:/var/hg/kagerepo# 

coし無くて良いのが便利なんだけど、imoprtもcoも無いところから始まるところに違和感がかなりある。が気にせずに進もう。

trac設定する2

oot@kage:/var/trac# trac-admin /var/trac/kagerepo initenv
Creating a new Trac environment at /var/trac/kagerepo

Trac will first ask a few questions about your environment 
in order to initalize 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]> kagerepo

 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]> hg	

 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/hg/kagerepo

Creating and Initializing Project
 Installing default wiki pages
 /usr/lib/python2.5/site-packages/Trac-0.11b1-py2.5.egg/trac/wiki/default-pages/WikiHtml imported from WikiHtml
〜〜ざっくり〜〜 
imported from RecentChanges

Warning:

Repository type hg not supported

---------------------------------------------------------------------
Project environment for 'kagerepo' created.

You may now configure the environment by editing the file:

  /var/trac/kagerepo/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/kagerepo

Then point your browser to http://localhost:8000/kagerepo.
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!

root@kage:/var/trac# 

でけたっぽいな。
こっからが鬼門だよ・・・アパッチの設定に挑む。

やっぱり鬼門だった・・・あきらめて、tracdで運用して逃げる事にする。

ここまでに設定した事
>/var/trac/kagerepo/conf/trac.iniの設定を修正(hg対応)した。以下の物を追加した。

[components]
tracext.hg.* = enabled

[hg]
# -- Show revision number in addition to the changeset hash
show_rev = yes

# -- Changeset hash format
node_format = short
# hex:   Show the full SHA1 hash 
# short: Show a shortened hash for the changesets 

起動してみるには

atusi@kage:/var/trac/kagerepo$ tracd --port 8080 .
Server starting in PID 23186.
Serving on 0.0.0.0:8080 view at http://127.0.0.1:8080/

ブラウザからアクセスしたり、コミットしてタイムラインみたりしてみたけど無事に起動できている様子。
今日はここまで・・・orz

今後の課題

  1. 日本語リソースへの差し替え
  2. apache2での運用
    • trac.cgiがどこにあるのかが不明(/usr/local/shareにtracが存在しない)>要調査
  3. /var/hg/kagerepo にDAVの設定
  4. ルータに設定してお外からアクセスできるようにする。
  5. リポジトリを rootで作ったせいで、.hgがroot700になったのをむりやり777にしてしまった。対応をする

こうやってみると、apache2のスキルが足りなさすぎる・・・
ちょっとドキュメント見たけど、dnsより難しそうだなぁ。
かなりびびってるけど、避けては通れないので明日じっくり設定してみよう。

ひとまず・・・3:43
トータル2時間23分かかった。
初めてのmercurialに挑んだ割には早くすんだ感じ。
(apache2あきらめたのが良かったな。うん。)
tracdのままだと、なんか問題有るのかな?使っても最大4人くらいなのでこのまま行ってしまいそう・・・