| 6 | | What follows are generic instructions for installing and setting up Trac and its requirements. While you can find instructions for installing Trac on specific systems at TracInstallPlatforms on the main Trac site, please be sure to '''first read through these general instructions''' to get a good understanding of the tasks involved. |
| 7 | | |
| 8 | | == Short - Install a released version == |
| 9 | | For the quick install, make sure you have [http://python.org Python-2.5], [http://peak.telecommunity.com/DevCenter/EasyInstall#installing-easy-install easy_install] and SQlite-3.3.4 installed (or above). |
| 10 | | {{{ |
| 11 | | sudo easy_install Trac |
| 12 | | }}} |
| 13 | | |
| 14 | | == Requirements == |
| 15 | | The hardware requirements for running Trac obviously depend on the expected data volume (number of wiki pages, tickets, revisions) and traffic. Very small projects will run fine with a 500MHz processor and 128MB RAM using SQLite. In general, the more RAM, the better. A fast hard disk also helps. |
| | 11 | Since version 0.12, Trac can also be localized, and there's probably a translation available for your language. If you want to be able to use the Trac interface in other languages, then make sure you have installed the optional package [#OtherPythonPackages Babel]. Pay attention to the extra steps for localization support in the [#InstallingTrac Installing Trac] section below. Note Trac can still be installed without Babel, but then you will only get the default english version, as usual. |
| | 12 | |
| | 13 | If you're interested in contributing new translations for other languages or enhance the existing translations, then please have a look at ["TracL10N"]. |
| | 14 | |
| | 15 | What follows are generic instructions for installing and setting up Trac and its requirements. While you may find instructions for installing Trac on specific systems at TracInstallPlatforms on the main Trac site, please be sure to '''first read through these general instructions''' to get a good understanding of the tasks involved. |
| | 16 | |
| | 17 | |
| | 18 | == Prerequisites == |
| 26 | | The database can be either SQLite, PostgreSQL or ''MySQL (experimental)''. |
| 27 | | * Optional if some plugins require it: [http://www.clearsilver.net/ ClearSilver] |
| 28 | | |
| 29 | | ==== For SQLite ==== |
| 30 | | |
| 31 | | * [http://www.sqlite.org/ SQLite], version 3.3.4 and above preferred (note: it is preinstalled in Python 2.5.2). |
| 32 | | * If not using Python-2.5: [http://pysqlite.org/ PySQLite], version 1.x (for SQLite 2.x) or version 2.x (for SQLite 3.x), version 2.3.2 preferred. For details see [trac:PySqlite PySqlite] |
| 33 | | |
| 34 | | ''Note: It appears that PySQLite 2.x is required for Trac 0.9+/SQLite 3.x if you plan to use the 'trac-post-commit-hook.py' script available from the 'contrib' section of the source repository.'' |
| 35 | | |
| 36 | | ''Note: Users of Mac OS X please take care; the Apple-supplied SQLite contains additional code to support file locking on network filesystems like AFP or SMB. This is not presently (3.3.6) in the mainline sources, so if you build your own SQLite from source it will not function correctly on such filesystems - typically it gives the error "{{{database is locked}}}". [http://www.alastairs-place.net/2006/07/sqlite_and_mac/ A patch] is available for version 3.3.6, based on Apple's code, otherwise you're probably best off using the Apple supplied version (presently 3.1.3).'' |
| 37 | | |
| 38 | | ==== For PostgreSQL ==== |
| 39 | | |
| | 26 | The database can be either SQLite, PostgreSQL or MySQL. |
| | 27 | |
| | 28 | === For SQLite === |
| | 29 | |
| | 30 | If you're using Python 2.5 or 2.6, you already have everything you need. |
| | 31 | |
| | 32 | If you're using Python 2.4 and need pysqlite, you can download from |
| | 33 | [http://code.google.com/p/pysqlite/downloads/list google code] the Windows |
| | 34 | installers or the tar.gz archive for building from source: |
| | 35 | {{{ |
| | 36 | $ tar xvfz <version>.tar.gz |
| | 37 | $ cd <version> |
| | 38 | $ python setup.py build_static install |
| | 39 | }}} |
| | 40 | |
| | 41 | That way, the latest SQLite version will be downloaded and built into the |
| | 42 | bindings. |
| | 43 | |
| | 44 | SQLite 2.x is no longer supported. For SQLite 3.x, the pysqlite 1.1.x |
| | 45 | bindings are also no longer supported, use pysqlite 2.x. |
| | 46 | |
| | 47 | See additional information in [trac:PySqlite PySqlite]. |
| | 48 | |
| | 49 | === For PostgreSQL === |
| | 50 | |
| | 51 | You need to install the database and its Python bindings: |
| 42 | | * See [trac:wiki:DatabaseBackend#Postgresql DatabaseBackend] |
| 43 | | |
| 44 | | '''Warning''': PostgreSQL 8.3 uses a strict type checking mechanism. To use Trac with the 8.3 Version of PostgreSQL, you will need [http://trac.edgewall.org/changeset/6512 trac-0.11] or later. |
| 45 | | |
| 46 | | ==== For MySQL ==== |
| 47 | | |
| 48 | | '''Warning''': MySQL support is currently ''still'' experimental. That means it works for some people, but several issues remain, in particular regarding the use of unicode and the key length in the repository cache. See [trac:MySqlDb MySqlDb] for more detailed information. |
| 49 | | |
| 50 | | * [http://mysql.com/ MySQL], version 4.1 or later |
| 51 | | * [http://sf.net/projects/mysql-python MySQLdb], version 1.2.1 or later |
| 52 | | |
| 53 | | == Optional Requirements == |
| | 54 | |
| | 55 | See [trac:DatabaseBackend#Postgresql DatabaseBackend] for details |
| | 56 | |
| | 57 | |
| | 58 | === For MySQL === |
| | 59 | |
| | 60 | Trac can now work quite well with MySQL, provided you follow the guidelines. |
| | 61 | |
| | 62 | * [http://mysql.com/ MySQL], version 5.0 or later |
| | 63 | * [http://sf.net/projects/mysql-python MySQLdb], version 1.2.2 or later |
| | 64 | |
| | 65 | See [trac:MySqlDb MySqlDb] for more detailed information. |
| | 66 | It is ''very'' important to read carefully that page before creating the database. |
| | 67 | |
| | 68 | === Optional Requirements === |
| 68 | | * an [http://tomcat.apache.org/connectors-doc/ajp/ajpv13a.html AJP]-capable web server (see [trac:TracOnWindowsIisAjp TracOnWindowsIisAjp]), or |
| 69 | | * [http://httpd.apache.org/ Apache] with [http://code.google.com/p/modwsgi/ mod_wsgi] (see [wiki:TracModWSGI] or http://code.google.com/p/modwsgi/wiki/IntegrationWithTrac) |
| 70 | | * This should work with Apache 1.3, 2.0 or 2.2 and promises to deliver more performance than using mod_python. A little less mature than mod_python. |
| 71 | | * [http://httpd.apache.org/ Apache] with [http://www.modpython.org/ mod_python 3.1.3+] (see TracModPython) |
| 72 | | * When installing mod_python the development versions of Python and Apache are required (actually the libraries and header files) |
| 73 | | |
| 74 | | For those stuck with Apache 1.3, it is also possible to get Trac working with [http://www.modpython.org/ mod_python 2.7] (see [wiki:TracModPython2.7 TracModPython2.7]). This guide hasn't been updated since 0.84, so it may or may not work. |
| 75 | | |
| 76 | | ==== Other Python Utilities ==== |
| 77 | | * [http://docutils.sourceforge.net/ docutils], version >= 0.3.9 for WikiRestructuredText. |
| 78 | | * [http://pygments.pocoo.org Pygments] for '''syntax highlighting''', although [http://silvercity.sourceforge.net/ SilverCity] >= 0.9.7 and/or [http://gnu.org/software/enscript/enscript.html GNU Enscript] are also possible. Refer to TracSyntaxColoring for details. |
| 79 | | * [http://pytz.sf.net pytz] to get a complete list of time zones, otherwise Trac will fall back on a shorter list from an internal time zone implementation. |
| | 89 | * an [http://tomcat.apache.org/connectors-doc/ajp/ajpv13a.html AJP]-capable web |
| | 90 | server (see [trac:TracOnWindowsIisAjp TracOnWindowsIisAjp]), or |
| | 91 | * [http://httpd.apache.org/ Apache] with |
| | 92 | - [http://code.google.com/p/modwsgi/ mod_wsgi], see [wiki:TracModWSGI] or |
| | 93 | http://code.google.com/p/modwsgi/wiki/IntegrationWithTrac |
| | 94 | - [http://modpython.org/ mod_python 3.3.1], see TracModPython) |
| | 95 | |
| | 96 | |
| | 97 | ==== Other Python Packages ==== |
| | 98 | |
| | 99 | * [http://babel.edgewall.org Babel], version >= 0.9.4, |
| | 100 | needed for localization support |
| | 101 | * [http://docutils.sourceforge.net/ docutils], version >= 0.3.9 |
| | 102 | for WikiRestructuredText. |
| | 103 | * [http://pygments.pocoo.org Pygments] for |
| | 104 | [wiki:TracSyntaxColoring syntax highlighting]. |
| | 105 | [http://silvercity.sourceforge.net/ SilverCity] and/or |
| | 106 | [http://gnu.org/software/enscript/enscript.html Enscript] may still be used |
| | 107 | but are deprecated and you really should be using Pygments. |
| | 108 | * [http://pytz.sf.net pytz] to get a complete list of time zones, |
| | 109 | otherwise Trac will fall back on a shorter list from |
| | 110 | an internal time zone implementation. |
| | 203 | |
| | 204 | ==== Generating the Trac cgi-bin directory ==== |
| | 205 | |
| | 206 | In order for Trac to function properly with FastCGI or mod_python, you need to have a trac.cgi file. This is an executable which loads the appropriate Python code. It can be generated using the `deploy` option of [wiki:TracAdmin trac-admin]. |
| | 207 | |
| | 208 | There is, however, a bit of a chicken-and-egg problem. The [wiki:TracAdmin trac-admin] command requires an existing environment to function, but complains if the deploy directory already exists. This is a problem, because environments are often stored in a subdirectory of the deploy. The solution is to do something like this: |
| | 209 | {{{ |
| | 210 | mkdir -p /usr/share/trac/projects/my-project |
| | 211 | trac-admin /usr/share/trac/projects/my-project initenv |
| | 212 | trac-admin /usr/share/trac/projects/my-project deploy /tmp/deploy |
| | 213 | mv /tmp/deploy/* /usr/share/trac |
| | 214 | }}} |