DebianEtchSourceInstallGuide

From Request Tracker Wiki
Revision as of 16:08, 6 April 2016 by Admin (talk | contribs) (3 revisions imported)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search


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:

Build and Install of RT from Source

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.