= Installing and Running Trac on Debian =
The Debian Sid distribution already contain Trac and all required dependencies.
Debian Woody and Sarge users need to add a few lines to their '''/etc/apt/sources.list''' before installing Trac.
For Woody:
{{{
# Trac, clearsilver, sqlite, pysqlite
deb http://ftp.edgewall.com/pub/debian woody trac
# Subversion, Apache2
deb http://people.debian.org/~adconrad woody subversion
}}}
For Sarge:
{{{
# Trac and clearsilver
deb http://ftp.edgewall.com/pub/debian sarge trac
}}}
Run
{{{
$ apt-get update
}}}
after editing the file to update the package cache.
Installing Trac and the required dependencies should now be as simple as:
{{{
$ apt-get install trac
}}}
'''Note:''' While installing Trac on Debian Woody you might get some harmless warnings when the installation process byte-compiles some source files.
'''More notes for Trac 0.8 on Debian Woody:'''
Notice, this is what worked for me on a '''new''' Woody system I built just to host Trac (in a VMware image, yet!), so I was able to be a little free with modifications I made. Be more careful if you are adding Trac to a system you use for other tasks - don't blame me if these instructions break something!
These instructions ignore the above and start at the very beginning.
* Subversion really wants Apache2 installed. If you run {{{apache2 -v}}} and get an error, you'll need to install Apache2.
I removed apache 1.3 and installed Apache2 with the following:
{{{
apt-get install apache2-common apache2-doc apache2-mpm-worker libapache2-svn
apt-get remove apache
apache2 -k start
}}}
* Trac 0.8 runs better with Python 2.2 and python-xml (without them, diffs and attachment uploading may not work):
{{{
apt-get install python 2.2 python-xml
cd /usr/bin
mv python python.orig
ln -s python2.2 python
cp -R /usr/lib/python2.1/site-packages /usr/lib/python2.2
apache2 -k restart
}}}
* After completing these pre-requisites, I added the following to /etc/apt/sources.list
{{{
deb http://ftp.edgewall.com/pub/debian woody trac
deb http://people.debian.org/~adconrad woody subversion
}}}
and ran
{{{
apt-get install trac
}}}
* Getting Subversion working:
I decided to keep my Subversion project at /var/svn/project. Here are the commands I entered to get SVN up and running:
{{{
mkdir /var/svn
mkdir /var/svn/project
mkdir /tmp/project
mkdir /tmp/project/branches
mkdir /tmp/project/tags
mkdir /tmp/project/trunk
svnadmin create /var/svn/project
rm -rf /tmp/project
svn import /tmp/project file:///var/svn/project -m "initial import"
}}}
I added the following to /etc/apache2/sites-available/default:
{{{
#SVN dir
DAV svn
SVNParentPath /var/svn
}}}
Then I fixed permissions and restarted apache2:
{{{
chown /var/svn/nim www-data
chown -R /var/svn/nim/* www-data
apache2 -k restart
}}}
I was able to test by going to !http://servername.foo.com/svn/project where I could see the empty directories as imported. I did not move on to the next step until this worked right!
* Getting Trac running:
I put my trac environment at /var/trac/project. I'm not using the mod_python extentions at the moment. First I ran
{{{
trac-admin /var/trac/project initenv (will prompt you for several things and print lots of output)
}}}
Then I edited /etc/apache2/sites-available/default. I commented out the existing {{{ScriptAlias}}} and {{{}}} directives, and added this at the end:
{{{
Alias /trac "/usr/share/trac/htdocs"
ScriptAlias /cgi-bin/ /usr/share/trac/cgi-bin/
SetEnv TRAC_ENV "/var/trac/project"
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
# You need something like this to authenticate users
AuthType Basic
AuthName "project"
AuthUserFile /var/www/trac.htpasswd
Require valid-user
}}}
Now to fix the permissions, add a couple of users, and restart Apache:
{{{
cd /var/www
htpasswd -c trac.htpasswd user1 (you'll be prompted for the password)
htpasswd trac.htpasswd bar user2 (you'll be prompted for the password)
apache2 -k restart
}}}
Finally, test by going to !http://servername.foo.com/cgi-bin/trac.cgi
On my installation, I do get some errors ("Python C API version mismatch for module ''blah''") when I run trac-admin at the commandline. This is probably because I didn't upgarde to Python2.2 until ''after'' I installed Trac. Hopefully these errors will be avoided by upgradng Python first, but in any case they don't seem to hurt Trac at all. Everything works perfectly! ''bryan@lockwoods.us''
Furthermore, there is a guide on building the Debian Trac package from the trunk at TracOnDebianFromTrunk