DebianEtchSourceInstallGuide
Unofficial Installation Guide
This is an unofficial installation guide. It may be outdated or apply only to very specific configurations and versions. The official and maintained installation steps for RT are in the README and UPGRADING documents included in the official .tar.gz
packages.
This page 'DebianEtchSourceInstallGuide' is tagged as OUTDATED |
This page contains out of date and possibly misleading information or instructions such as installation methods or configuration examples that no longer apply. Please consider this warning when reading the page below. |
If you have checked or updated this page and found the content to be suitable, please remove this notice by editing the page and remove the Outdated template tag. |
RT 3.6.5 on Debian Etch from source with Encap
Note: This is not tested from scratch yet. It describes how to install RT on Debian GNU/Linux Etch, using the Debian repos for everything except RT itself, which is instead built from source and installed as an encap - http://www.encap.org - package. This is because Best Practical recommends not using the RT packaging currently in Debian, and checkinstall - http://packages.debian.org/checkinstall - seems to not be included in Etch (although it is in Sarge, Lenny and Sid - weird).
Perl Modules
Below are perl modules to install. They are not all required by RT, but the ones that aren't will already be installed as part of the base OS install. Just cut and paste.
aptitude install libalgorithm-dependency-perl libapache-session-perl libapache-sessionx-perl libapt-pkg-perl libarchive-tar-perl libcache-cache-perl libcache-simple-timedexpiry-perl libcalendar-simple-perl libcarp-assert-more-perl libcarp-assert-perl libclass-accessor-perl libclass-autouse-perl libclass-container-perl libclass-data-inheritable-perl libclass-factory-util-perl libclass-inspector-perl libclass-returnvalue-perl libclass-singleton-perl libclone-perl libcompress-zlib-perl libconfig-tiny-perl libconvert-binhex-perl libcrypt-ssleay-perl libdatetime-locale-perl libdatetime-perl libdatetime-timezone-perl libdbd-sqlite3-perl libdbi-perl libdbix-dbschema-perl libdbix-searchbuilder-perl libdevel-stacktrace-perl libdevel-symdump-perl libdigest-sha1-perl liberror-perl libexception-class-perl libexporter-lite-perl libextutils-autoinstall-perl libextutils-cbuilder-perl libextutils-parsexs-perl libfile-find-rule-perl libfile-flat-perl libfile-ncopy-perl libfile-remove-perl libfile-slurp-perl libfont-afm-perl libfreezethaw-perl libgd-gd2-noxpm-perl libgd-graph-perl libgd-text-perl libhtml-format-perl libhtml-mason-perl libhtml-parser-perl libhtml-scrubber-perl libhtml-tagset-perl libhtml-tree-perl libhttp-server-simple-perl libinline-perl libio-socket-ssl-perl libio-stringy-perl libio-zlib-perl libipc-sharelite-perl liblocale-gettext-perl liblocale-maketext-fuzzy-perl liblocale-maketext-lexicon-perl liblog-dispatch-perl libmail-sendmail-perl libmailtools-perl libmime-perl libmldbm-perl libmodule-versions-report-perl libnet-daemon-perl libnet-ssleay-perl libnumber-compare-perl libparams-util-perl libparams-validate-perl libparse-recdescent-perl libpath-class-perl libplrpc-perl libpod-escapes-perl libpod-simple-perl libpod-tests-perl libprefork-perl libregexp-common-perl libset-intspan-perl libsub-uplevel-perl libterm-readkey-perl libtest-classapi-perl libtest-exception-perl libtest-inline-perl libtest-pod-perl libtest-simple-perl libtext-autoformat-perl libtext-charwidth-perl libtext-glob-perl libtext-iconv-perl libtext-quoted-perl libtext-reform-perl libtext-template-perl libtext-wikiformat-perl libtext-wrapi18n-perl libtext-wrapper-perl libtime-modules-perl libtimedate-perl libtree-simple-perl libuniversal-exports-perl libuniversal-require-perl liburi-perl libwant-perl libwww-mechanize-perl libwww-perl libxml-libxml-common-perl libxml-libxml-perl libxml-namespacesupport-perl libxml-parser-perl libxml-rss-perl libxml-sax-perl libxml-simple-perl libdbd-pg-perl
These must be compiled/installed from lenny sources as the etch sources are too old:
- libdbix-searchbuilder-perl_1.49-1_all.deb
- libmodule-versions-report-perl_1.03-1_all.deb
- libtext-quoted-perl_2.02-1_all.deb
Databases
The issue here is that the mysql 5.0 optimizer has serious issues (which are being worked on) that causes millions of rows to be touched in some cases, and 4.1 should def be used as in the same cases it is on the order of thousands, but 4.1 is deprecated in Debian, so the best alternative seems to be to use postgresql (8.x is recommended).
- apt-get remove --purge libdbd-mysql-perl libmysqlclient15off mysql-client-5.0 mysql-common mysql-server-5.0
- aptitude install postgresql-8.1 postgresql-client-8.1 postgresql-doc-8.1 postgresql-server-dev-8.1
Encap Install
Encap allows us to easily build from sources while still having some packaging niceities (importantly for me it allows stuff to be installed/managed by Bcfg2 - http://bcfg2.org ). When I have time I'll make a rt-3.6.5.ep encap profile - http://bcfg2.org/wiki/EncapManEncapProfile - that automates all of the building/installing.
As root:
- mkdir /usr/local/encap; chmod 2755 /usr/local/encap; cd /usr/local/encap
- Download the appropriate one of these:
- tar xvfz epkg-2.3.9-encap-*-linux_debian_etch.tar.gz
- ./epkg-2.3.9/bin/epkg -i epkg-2.3.9
Build and Install of RT from Source
- wget http://download.bestpractical.com/pub/rt/release/rt-3.6.5.tar.gz
- tar xvfz rt-3.6.5.tar.gz
- cd rt-3.6.5
- Edit config.layout like this:
cat >> config.layout << EOF <Layout encap-rt-3.6.5> prefix: /usr/local/encap/rt-3.6.5 exec_prefix: ${prefix} bindir: ${exec_prefix}/bin sbindir: ${exec_prefix}/sbin sysconfdir: /etc/rt3 mandir: ${prefix}/man libdir: ${prefix}/lib datadir: ${prefix}/share htmldir: ${datadir}/rt3/html manualdir: ${datadir}/doc/rt3 localstatedir: /var logfiledir: ${localstatedir}/log/rt3 masonstatedir: ${localstatedir}/rt3/data/mason_data sessionstatedir: ${localstatedir}/rt3/data/session_data customdir: ${localstatedir}/rt3/local custometcdir: ${customdir}/etc customhtmldir: ${customdir}/html customlexdir: ${customdir}/po customlibdir: ${customdir}/lib </Layout> EOF
- ./configure --enable-layout=encap-rt-3.6.5 --with-db-type=Pg
- This should complete with no MISSING packages: make testdeps
- make install
- cd /usr/local/encap; /usr/local/bin/epkg -i rt-3.6.5
This layout should allow you to switch between RT versions easily without losing any local configuration or customizations (not tested yet).
Configuration
You must now configure RT by editing /etc/rt3/RT_SiteConfig.pm
(You will definitely need to set RT's database password in /etc/rt3/RT_SiteConfig.pm before continuing. Not doing so could be very dangerous. Note that you do not have to manually add a database user or set up a database for RT. These actions will be taken care of in the next step.)
After that, you need to initialize RT's database by running
make initialize-database
FastCGI is the recommended way to run RT. FastCGIConfiguration looks useful. Also see ItsFinallyInstalledNowWhat.