Installing Trac: Six hours of my life, wasted

I like [Trac][], the Python-based project wiki, ticketing system, and over-all useful management dashboard from Edgewall Software. I’ve mentioned it in my articles, I’ve recommended it to friends and clients. I even run it myself.

[Trac]:

But *geez* is it a pain to install. I’m talking about the “simple case” here. Nothing fancy. Just get it running to see what it looks like. In this particular case, a buddy of mine had asked about it (I kept mentioning it, you see…) and I said “Go for it! Install it, play with it, see what you think.”


The problem, of course, is that the simple case isn’t the default case. Nobody who’s serious about doing any kind of web anything thinks that running a bare-bones CGI script is a good idea. You want SCGI, or FastCGI, or mod_python. Something, anything, to squeeze more performance out.

Unless you’re my buddy. And you’re not *at all* sure about this Python stuff. And it’s going on your laptop. And how much performance does one person need?

So I get a cross-country call, and spend some time tele-debugging. My first job after college was in phone support, and I did a lot of it while consulting for Continuus, so I’m still actually pretty good at it. Which is good, because playing around with [Apache][] configuration directives isn’t the most productive debugging session ever. Not that I’m comparing [httpd.conf][] to [sendmail.cf][] or anything, but *beep*–is my cell-phone battery dead already?

[Apache]:
[httpd.conf]:
[sendmail.cf]:

Well *that* doesn’t cut it, by half. So I do what any decent sort would do: since I convinced my buddy to give it a shot, I’ll just cobble up an httpd.conf file that my buddy can use and email it to him. Sounds easy enough, and Apache has enough “using alternate config file” support that it’s really no skin off my nose. All I have to do is:

* Install [Python][] 2.3.5 — \[DONE\]

* Install [Subversion][] — \[DONE\]

* Install [Subversion/Python Bindings][] — \[DONE\]

* Install [ClearSilver][] — \[DONE\]

* Install [PySqlite][] — \[DONE\]

[Python]:
[Subversion]:
[Subversion/Python Bindings]:
[ClearSilver]:
[PySqlite]:

Happily for me, all this downloading and installing is *already done*–because I’ve got Trac working on my own laptop, see. So while it seems like a long, boring, tedious march, in reality it’s “okay, what do I need to do differently?” And the answer is “nothing,” but it took me 5 hours to discover that. Because I *thought* I would just gen up a new `httpd.conf` file with an `ExecCGI` directive, maybe a `SetHandler`, some `ScriptAlias` voodoo, and I’ll have this baby done before the microwave popcorn is done.

I could tell you what I tried and what I thought. But I wrote a long post the other day. So I’m going to jump right to the chase:

“Buddy,” I says at the end, “you need to install [mod_python][].”

[mod_python]:

###   ###

It’s a quick little download. Once you’ve got it, there’s a separate section of the wiki discussing how to configure Apache+mod_python to work with Trac. There’s no magic. You just copy and paste and it works.

I honestly think that the Edgewall guys would be closer to taking over the world if they deleted any mention of using it in CGI mode. I did encounter two different [blogs][] during my frenzied Googling for `+python +cgi +apache +windows` in which hapless victims who went before me posted that they were surrendering. I suppose that should have been an immediate hint.

[blogs]:

I still love Trac. It looks great. It works great. It’s project-management friendly, with tickets automatically linked in to milestones. It is *not* metrics-friendly. It’s not something you construct complex queries on. You could add that stuff, but it would probably make the whole tool less fun to use. As it stands, though, it’s a great tool for a team of maybe 30 folks.

If only it were easy to try out.

Leave a Reply