= Installing and Running Trac on Debian = == Releases other than Woody == Debian distributes Trac since Sarge, which has Trac 0.81. You can track version numbers in the not stable releases at http://packages.debian.org/trac. Sarge users who want to track Edgewall's [latest] version need to add a few lines to their '''/etc/apt/sources.list''' : {{{ # Trac and clearsilver deb http://ftp.edgewall.com/pub/debian sarge trac }}} Then update APT's cache : {{{ $ apt-get update }}} Whether the above steps to get Edgewall's version instead of Debian's were followed or not, installing Trac should be as simple as installing the '''trac''' package. == Woody (oldstable) == Woody users need to add a few lines to their '''/etc/apt/sources.list''' before installing Trac: {{{ # Trac, clearsilver, sqlite, pysqlite deb http://ftp.edgewall.com/pub/debian woody trac # Subversion, Apache2 deb http://people.debian.org/~adconrad woody subversion }}} After editing the file, installing the '''trac''' package should install Trac: {{{ $ apt-get update $ 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 }}} Also, edit /etc/default/apache2 so it says {{{NO_START=0}}} if you want apache2 to run on boot. * Trac 0.8 runs better with Python 2.2 and python-xml (without them, diffs and attachment uploading ''will not'' work). '''Note''' that Trac's email notifications will not work unless you have Python 2.2.2 or greater. Since I couldn't find a Debian/stable .deb for anything higher than Python 2.2.1, I gave up on email notifications. Everything else seems to be workng though! {{{ apt-get install python2.2-xmlbase python2.2-sqlite cd /usr/bin mv python python.orig ln -s python2.3 python cp -R /usr/lib/python2.1/site-packages /usr/lib/python2.3 apache2 -k restart }}} ---- * Be careful with the above steps. I attempted to follow them on an "existing" (i.e. not fresh) woody box and was unsuccessful in part because I had managed to install a newer version of subversion from source before deciding to try the packages. I decided to bite the bullet and upgrade to sarge so I could use the goodness that is apt while also using fsfs repositories. Aside from breaking my pptpd install, the upgrade only partially solved my trac/subversion woes; I was able to get apache2-mod-svn working, but trac-admin from the command line would fail when one of the subversion Python modules went looking for libswig1.3.21 and I had only libswig1.3.22; symlinking libswig1.3.21.so -> libswig1.3.22.so solved that problem but left me with another error in fs.py when running trac-admin help from the command line. After much gnashing of teeth, I tried removing the subversion package and the trac package; this triggered an uninstall of several then-unused support packages, including python2.3. However, /usr/lib/python2.3 still existed and was not empty, despite the apt database showing absolutely no python packages of any version installed. I manually rm'd /usr/lib/python2.3, did an aptitude install subversion trac, and stuff worked; I'm fairly convinced that the manual reworkings of the python install (as described above) were directly related, if not causative, in the problem; the fix could have been as simple as: {{{ aptitude remove subversion trac python2.3 rm -r /usr/lib/python2.3 aptitude install subversion trac python2.3 }}} after I had upgraded to sarge. The removal of python2.3 and the rm of /usr/lib/python2.3 are critical; prior to doing this, I had also tried removing subversion and trac and reinstlling, first from binary and then from source packages; that didn't help. * Sorry you had issues, but please note I made the python choices shown specifically for '''Woody'''. Your issues stem from being upgraded to Sarge. python2.3 wasn't available in woody when I wrote these instructions, and I made careful note of that. I too had more than a few problems with python (hence these instructions!), so I know where you're coming from. But pure Woody users won't have access to python2.3 as far as I know. ---- * 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 ... == Debian Sarge 3.1 (stable) == If you have Debian Sarge 3.1 you can directly start from this Line, after you've installed Apache2. From a basic installation of the final 3.1 stable, you'll need to install apache2, subversion, trac, and libapache2-svn. ... {{{ 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 svn import /tmp/project file:///var/svn/project -m "initial import" rm -rf /tmp/project }}} I added the following to /etc/apache2/sites-available/default: {{{ #SVN dir DAV svn SVNParentPath /var/svn SVNAutoversioning on AuthType Basic AuthName "SVN - Your Project" AuthUserFile /ect/apache2/svn.passwd Require valid-user }}} Then I fixed permissions, added User and restarted apache2: {{{ find /var/svn/project -type f -exec chmod 660 {} \; find /var/svn/project -type d -exec chmod 2770 {} \; chown -R root.www-data /var/lib/svn/repository cd /etc/apache2 htpasswd2 -c svn.passwd user1 (you'll be prompted for the password) htpasswd2 svn.passwd user2 (you'll be prompted for the password) 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! UPDATE: I had some problems with the WebDAV module not loading. To enable this, you need to create some sym links inside /etc/apache2/mods-enabled. I typed this to get it to work: {{{ a2enmod dav a2enmod dav_fs /etc/init.d/apache2 force-reload }}} If you are having problems restarting and the error is something like "Unknown DAV provider: svn" try installing the libapache2-svn module by typing {{{ apt-get install libapache2-svn apache2 -k restart }}} * 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 {{{ mkdir /var/trac trac-admin /var/trac/project initenv chown -R www-data /var/trac/project }}} The "trac-admin" command above prompted me to enter the project name, the path to the trac environment, and the path to the Trac templates directory; then it printed out a bunch of stuff. Next, 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 /proj /usr/share/trac/cgi-bin/trac.cgi 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/proj/ On my installation, I do get some errors ("Python C API version mismatch for module ''blah''") when I run trac-admin at the commandline. Apache also logs similar errors. This is probably because I didn't upgrade to Python2.2 until ''after'' I installed Trac. Hopefully these errors will be avoided by upgradng Python first (as I have advised above), but in any case they don't seem to hurt Trac at all. Everything (except email notifications which I don't need anyway) works perfectly! ---- Furthermore, there is a guide on building the Debian Trac package from the trunk at TracOnDebianFromTrunk