Changes RSS

====== Differences ====== This shows you the differences between two versions of the page.

Link to this comparison view

guides:rt3.8 [2009/03/04 21:51]
fishy rough notes....
guides:rt3.8 [2009/03/16 16:02] (current)
fishy
Line 1: Line 1:
-http://wiki.bestpractical.com/view/DebianLennyInstallGuide+====== How I installed Request Tracker 3.8.2 on Debian Lenny ======
  
-openssl +My first hints and pointers were from the poorly formatted guide at:
-apache2  +
-mysql-server-5.0 +
-libc6-dev libc-dev +
-gcc-4.1-base libmudflap0 libmudflap0-dev +
-libapache2-mod-perl2  +
-libxml-dom-perl libxml-encoding-perl libxml-parser-perl libxml-perl libxml-regexp-perl libxml-um-perl +
-libxml-handler-composer-perl libxml-generator-perl mlocate+
  
-libapache-dbi-perl libapache-session-perl libcalendar-simple-perl libconvert-binhex-perl libcss-squish-perl libdatetime-format-mail-perl libdatetime-format-w3cdtf-perl libdatetime-locale-perl libdatetime-perl libdatetime-timezone-perl libdbd-sqlite3-perl libdbix-searchbuilder-perl liberror-perl libexception-class-perl libgd-gd2-noxpm-perl libgd-graph-perl libgd-text-perl libhtml-mason-perl libhtml-scrubber-perl libio-socket-ssl-perl libmime-tools-perl libmodule-versions-report-perl libnet-libidn-perl libnet-ssleay-perl libparams-validate-perl libregexp-common-perl+  * http://wiki.bestpractical.com/view/DebianLennyInstallGuide
  
 +===== Basic prerequisites =====
  
-  libcache-cache-perl libcache-simple-timedexpiry-perl libclass-accessor-perl libclass-container-perl +Install "providing" software. By this, I mean software that is needed to compile software, serve data to the web, test the data served, and communicate with the world. 
-  libclass-data-inheritable-perl libclass-returnvalue-perl libclass-singleton-perl libclone-perl libdbix-dbschema-perl +
-  libdevel-stacktrace-perl libfreezethaw-perl libipc-sharelite-perl libwant-perl+
  
-libterm-readline-perl-perl libtext-autoformat-perl libtext-quoted-perl libtext-reform-perl libtext-template-perl libtext-wikiformat-perl libtext-wrapper-perl libtime-modules-perl libtree-simple-perl libxml-parser-perl libxml-rss-perl libxml-sax-expat-perl libxml-sax-perl libxml-simple-perl +<code> 
-  libxml-namespacesupport-perl+apt-get install build-essential bzip2 \ 
 +                gcc libncurses5 libncurses5-dev bin86 gawk \ 
 +                ncurses-dev initramfs-tools \ 
 +                zlib1g zlib1g-dev binutils
  
-postfix +sudo apt-get install openssl apache2  mysql-server-5.0 \ 
- ... Internet siter with host....+                libapache2-mod-perl2 curl lftp lynx \ 
 +                mlocate makepatch wget gpgv libgpgme11 \ 
 +                libgpgme11-dev libgpg-error0 libgpg-error-dev \ 
 +                libapache2-mod-fcgid libcgi-fast-perl libfcgi-perl libfcgi-dev
  
-fetchmail 
  
 +sudo apt-get install fetchmail
 +
 +</code>
 +
 +Install and configure an MTA. I prefer to use postfix, and in my setup, the postfix installation is configured to use a smarthost to send mail out to the world.
 +
 +<code>
 +sudo apt-get install postfix
 +</code>
 +
 +
 +===== Perl prerequisites... =====
 +
 +Next up is a shockingly long list of development- and perl-dependencies. The commands below are split into chunks that the BASH shell will accept, but the order, and eventual dependency satification is not taken into consideration. I.e. the list is for completeness.
 +
 +Your mileage may vary on what you actually need to install.
 +
 +==== OS packaged perl-dependencies ====
 +
 +<code>
 +sudo apt-get install  libc6-dev libc-dev gcc-4.1-base libmudflap0 libmudflap0-dev
 +                libxml-dom-perl libxml-encoding-perl libxml-parser-perl \
 +                libxml-perl libxml-regexp-perl libxml-um-perl \
 +                libxml-handler-composer-perl libxml-generator-perl
 +
 +sudo apt-get install libapache-dbi-perl libapache-session-perl \
 +                libcalendar-simple-perl libconvert-binhex-perl libcss-squish-perl \
 +                libdatetime-format-mail-perl libdatetime-format-w3cdtf-perl \
 +                libdatetime-locale-perl libdatetime-perl \
 +                libdatetime-timezone-perl libdbd-sqlite3-perl \
 +                libdbix-searchbuilder-perl liberror-perl libexception-class-perl \
 +                libgd-gd2-noxpm-perl libgd-graph-perl libgd-text-perl 
 +
 +sudo apt-get install libhtml-mason-perl libhtml-scrubber-perl libio-socket-ssl-perl \
 +                libmime-tools-perl libmodule-versions-report-perl libnet-libidn-perl \
 +                libnet-ssleay-perl libparams-validate-perl libregexp-common-perl \
 +                libcache-cache-perl libcache-simple-timedexpiry-perl \
 +                libclass-accessor-perl libclass-container-perl \
 +                libclass-data-inheritable-perl libclass-returnvalue-perl
 +
 +sudo apt-get install libclass-singleton-perl libclone-perl libdbix-dbschema-perl \
 +                libdevel-stacktrace-perl libfreezethaw-perl libipc-sharelite-perl \
 +                libwant-perl libterm-readline-perl-perl libtext-autoformat-perl \
 +                libtext-quoted-perl libtext-reform-perl libtext-template-perl
 +
 +sudo apt-get install libtext-wikiformat-perl libtext-wrapper-perl libtime-modules-perl \
 +                libtree-simple-perl libxml-parser-perl libxml-rss-perl \
 +                libxml-sax-expat-perl libxml-sax-perl libxml-simple-perl \
 +                libxml-namespacesupport-perl
 +</code>
 +
 +==== CPAN setup ====
 +
 +Now, prepare your Perl CPAN setup, as Request Tracker installation __will__ use CPAN to pull in even more dependencies!
 +Here follows a somewhat complete(ish) summary of my interaction with CPAN:
 +[[guides:rt3.8:CPAN]]
 +
 +===== Download & unpack Request Tracker =====
 +
 +
 +Now, download and unpack Request Tracker, the latest release:
 +
 +<code>
 +wget http://download.bestpractical.com/pub/rt/release/
 +tar zxvf rt.tar.gz
 +cd rt-3.*
 +</code>
 +
 +===== Setting up the source tree =====
 +
 +The following code sets up my RT install to dump the instance files into the dir /opt/rt/defcon, and
 +use MySQL for storage
 +
 +<code>
 +./configure \
 +  --prefix=/opt/rt/defcon \
 +  --enable-gd \
 +  --enable-gpg \
 +  --with-db-type=mysql \
 +</code>
 +
 +Test for dependencies. This will fail, even though we have run a fairly thorough pre-install... The output below is an excerpt, showing only the packages that failed on my test-run.
 +
 +<code>
 +make testdeps 
 +        Locale::Maketext::Lexicon >= 0.32...MISSING
 +        Text::Template >= 1.45...MISSING
 +                Text::Template version 1.45 required--this is only version 1.44 
 +        File::ShareDir...MISSING
 +        Locale::Maketext::Fuzzy...MISSING
 +        Log::Dispatch >= 2.0...MISSING
 +        UNIVERSAL::require...MISSING
 +        Email::Address...MISSING
 +        HTML::RewriteAttributes >= 0.02...MISSING
 +        CGI >= 3.38...MISSING
 +                CGI version 3.38 required--this is only version 3.29 
 +        PerlIO::eol...MISSING
 +        GnuPG::Interface...MISSING
 +        Data::ICal...MISSING
 +        Net::Server::PreFork...MISSING
 +        Net::Server...MISSING
 +        HTTP::Server::Simple >= 0.34...MISSING
 +        HTTP::Server::Simple::Mason >= 0.09...MISSING
 +make: *** [testdeps] Error 1
 +</code>
 +
 +Use RT's own helper to satisfy the missing dependencies:
 +<code>
 +sudo make fixdeps
 +</code>
 +
 +This uses CPAN to pull in the missing or out-dated Perl modules. After a successful run, rerun make testdeps, and you shuld get:
 +<code>
 +All dependencies have been found.
 +</code>
 +
 +===== Installation =====
 +
 +Time to do the actual installation:
 +<code>
 +sudo make install
 +
 +...
 +</code>
 +
 +===== Configuration of RT =====
 +
 +You must now configure RT by editing /opt/rt/defcon/etc/RT_SiteConfig.pm. 
 +
 +WARNING: Never, EVER, change RT_Config.pm. All your changes need to be put in
 +RT_SiteConfig.pm.
 +
 +(You will definitely need to set RT's database password in 
 +/opt/rt/defcon/etc/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.)
 +
 +So, the natural next step is to open $PREFIX/etc/RT_SiteConfig.pm in your favourite text-editor, and decide on the basic setting of this instance...
 +
 +<code>
 +
 +# What RT instance?
 +Set($rtname, 'Ticket');
 +Set($Organization , "defcon.no");
 +
 +# Default email adresses
 +Set($CorrespondAddress , 'rt@defcon.no');
 +Set($CommentAddress , 'rt-comment@defcon.no');
 +
 +# How to handle time (timezone setting)
 +Set($Timezone , 'CET');
 +
 +# Database setup
 +#Set($DatabaseHost   , 'localhost');
 +#Set($DatabaseRTHost , 'localhost');
 +#Set($DatabasePort , '');
 +Set($DatabaseType, 'mysql');
 +Set($DatabaseUser , 'rt_user');
 +Set($DatabasePassword , 'password');
 +Set($DatabaseName , 'rt_database');
 +
 +# Who is owner/admin of this instance?
 +Set($OwnerEmail , 'rtowner@defcon.no');
 +Set($LoopsToRTOwner , 1);
 +
 +# Max allowed attachments, up from 10MB to 20MB
 +Set($MaxAttachmentSize , 20000000);
 +
 +# Where do we exist on the web?
 +Set($WebDomain, 'rt.home.defcon.no');
 +
 +# RT resides on the root of the previous name...
 +Set($WebPath, "");
 +
 +</code>
 +
 +===== Initialize the RT database =====
 +
 +<code>
 +sudo make initialize-database
 +</code>
 +
 +===== Configure HTTPd =====
 +
 +I am using Apache2, and running RT through mod_perl. Note the PerlRequire, SetHandler and PerlResponseHandler. Without these, your RT will __not__ work.
 +
 +<code>
 +# /etc/apache2/sites-available/rt.home.defcon.no
 +<VirtualHost *:80>
 +
 +ServerName rt.home.defcon.no
 +
 +DocumentRoot /opt/rt/defcon/share/html
 +PerlRequire "/opt/rt/defcon/bin/webmux.pl"
 +
 +<Location />
 +    AddDefaultCharset UTF-8
 +    SetHandler perl-script
 +    PerlResponseHandler RT::Mason
 +</Location>
 +
 +</VirtualHost> 
 +
 +</code>
 +
 +As this is a Debian Lenny system, I used the Debian helper tools to enable all needed apache2 related configurations:
 +
 +<code>
 +sudo /usr/sbin/a2enmod perl
 +sudo /usr/sbin/a2enmod rewrite
 +sudo /usr/sbin/a2ensite rt.home.defcon.no
 +sudo /etc/init.d/apache2 reload
 +</code>
 +
 +===== First look at the installed RT =====
 +
 +Go to the address you have configured in Apache, DNS and RT_SiteConfig.pm, and you should be greeted with the login-box of RT3.8!
 +
 +Log in as "root" with password "password". Now SET A NEW PASSWORD ! (!)
 +  * Preferences
 +    * About me
 +    * Password
 +      * New passord
 +      * Retype passord
 +
 +===== Post install setup =====
 +
 +That's not all, but it is all for now...
 +
 +==== Overriding the footer ====
 +
 +<code>
 +web:/opt/rt/defcon# mkdir local/html/Elements
 +web:/opt/rt/defcon# cp share/html/Elements/Footer local/html/Elements/
 +web:/opt/rt/defcon# vim local/html/Elements/Footer 
 +</code>
 +
 +==== Setting up default permissions ====
 +
 +==== Adding a few queues ====