|Version 66 (modified by 16 years ago) ( diff ),|
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 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 -vand 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 startAlso, edit /etc/default/apache2 so it says
NO_START=0if 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.3after 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 subversionand 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 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 <Location /svn> DAV svn SVNParentPath /var/svn SVNAutoversioning on AuthType Basic AuthName "SVN - Your Project" AuthUserFile /ect/apache2/svn.passwd Require valid-user </Location>
Then I fixed permissions, added User and restarted apache2:chown www-data /var/svn/project chown -R www-data /var/svn/project/* 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:
ln -s /etc/apache2/mods-available/dav.load /etc/apache2/mods-enabled/dav.load ln -s /etc/apache2/mods-available/dav_fs.load /etc/apache2/mods-enabled/dav_fs.load apache2 -k restart
Debian even comes with tools to manage these symlinks. Instead of the above you can also type this, which will have the same effect:
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 ranmkdir /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
<Directory "/usr/lib/cgi-bin">directives, and added this at the end:Alias /trac "/usr/share/trac/htdocs" ScriptAlias /proj /usr/share/trac/cgi-bin/trac.cgi <Location "/proj"> SetEnv TRAC_ENV "/var/trac/project" </Location> <Directory "/usr/share/trac/htdocs"> Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all </Directory> # You need something like this to authenticate users <Location "/proj/login"> AuthType Basic AuthName "project" AuthUserFile /var/www/trac.htpasswd Require valid-user </Location>
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