Version 47 (modified by 19 years ago) ( diff ) | ,
---|
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
Also, edit /etc/default/apache2 so it saysNO_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.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 ranapt-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/projectI added the following to /etc/apache2/sites-available/default:
#SVN dir <Location /svn> DAV svn SVNParentPath /var/svn </Location>Then I fixed permissions and restarted apache2:
chown www-data /var/svn/project chown -R www-data /var/svn/project/* apache2 -k restartI 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 initenvThe 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<Directory "/usr/lib/cgi-bin">
directives, and added this at the end:Alias /trac "/usr/share/trac/htdocs" ScriptAlias /cgi-bin/ /usr/share/trac/cgi-bin/ <Location "/cgi-bin/trac.cgi"> 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 "/cgi-bin/trac.cgi/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 restartFinally, 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. 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