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 23:58]
fishy Tidying up. Adding markup.
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 ====== 
 + 
 +My first hints and pointers were from the poorly formatted guide at: 
 + 
 +  * http://wiki.bestpractical.com/view/DebianLennyInstallGuide 
 + 
 +===== Basic prerequisites =====
  
 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.  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. 
 +
 <code> <code>
 apt-get install build-essential bzip2 \ apt-get install build-essential bzip2 \
Line 10: Line 17:
 sudo apt-get install openssl apache2  mysql-server-5.0 \ sudo apt-get install openssl apache2  mysql-server-5.0 \
                 libapache2-mod-perl2 curl lftp lynx \                 libapache2-mod-perl2 curl lftp lynx \
-                mlocate makepatch wget+                mlocate makepatch wget gpgv libgpgme11 \ 
 +                libgpgme11-dev libgpg-error0 libgpg-error-dev \ 
 +                libapache2-mod-fcgid libcgi-fast-perl libfcgi-perl libfcgi-dev 
  
 sudo apt-get install fetchmail sudo apt-get install fetchmail
Line 21: Line 31:
 sudo apt-get install postfix sudo apt-get install postfix
 </code> </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. 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. Your mileage may vary on what you actually need to install.
 +
 +==== OS packaged perl-dependencies ====
  
 <code> <code>
Line 56: Line 72:
                 libxml-namespacesupport-perl                 libxml-namespacesupport-perl
 </code> </code>
 +
 +==== CPAN setup ====
  
 Now, prepare your Perl CPAN setup, as Request Tracker installation __will__ use CPAN to pull in even more dependencies! 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: 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> <code>
-sudo perl -MCPAN -e shell +wget http://download.bestpractical.com/pub/rt/release
-Would you like me to configure as much as possible automatically? [yes] no +tar zxvf rt.tar.gz 
-CPAN build and cache directory? [/home/username/.cpan] +cd rt-3.* 
-Download target directory? [/home/fishy/.cpan/sources] +</code>
-Directory where the build process takes place? [/home/fishy/.cpan/build] +
-CPAN.pm sessions? [yes] +
-building modules that need some customization? [/home/fishy/.cpan/prefs] +
-Always commit changes to config variables to disk? [no] +
-Cache size for build directory (in MB)? [100] +
-Let the index expire after how many days? [1] +
-Perform cache scanning (atstart or never)? [atstart] +
-Cache metadata (yes/no)? [yes] +
-Use CPAN::SQLite if available? (yes/no)? [no] yes +
-Policy on building prerequisites (follow, ask or ignore)? [ask] follow +
-Policy on installing 'build_requires' modules (yes, no, ask/yes, +
-ask/no)? [ask/yes] yes +
-Always try to check and verify signatures if a SIGNATURE file is in +
-the package and Module::Signature is installed (yes/no)? [no] +
-Email test reports if CPAN::Reporter is installed (yes/no)? [no] +
-Do you want to enable code deserialisation (yes/no)? [no] yes +
-Where is your bzip2 program? [/bin/bzip2] +
-Where is your gzip program? [/bin/gzip] +
-Where is your tar program? [/bin/tar] +
-Where is your unzip program? [/usr/bin/unzip] +
-Where is your make program? [/usr/bin/make] +
-Where is your curl program? [/usr/bin/curl]  +
-Where is your lynx program? [/usr/bin/lynx]  +
-Where is your ncftpget program? [] +
-Where is your ncftp program? [] +
-Where is your ftp program? [/usr/bin/ftp] +
-Where is your gpg program? [/usr/bin/gpg] +
-Where is your patch program? [/usr/bin/patch] +
-Where is your applypatch program? [/usr/bin/applypatch]  +
-What is your favorite pager program? [/usr/bin/less] +
-What is your favorite shell? [/bin/bash] +
-Tar command verbosity level (none or v or vv)? [v] +
-Verbosity level for loading modules (none or v)? [v] +
-Do you want to turn this message off? [no] +
-In case you can choose between running a Makefile.PL or a Build.PL, +
-which installer would you prefer (EUMM or MB or RAND)? [MB] +
-Parameters for the 'perl Makefile.PL' command? [INSTALLDIRS=site] +
-Parameters for the 'make' command? Typical frequently used setting:+
  
-    -j3              # dual processor system (on GNU make)+===== Setting up the source tree =====
  
- <make_arg> +The following code sets up my RT install to dump the instance files into the dir /opt/rt/defcon, and 
-Your choice: []+use MySQL for storage
  
-Do you want to use a different make command for 'make install'? +<code> 
-Cautious people will probably prefer:+./configure \ 
 +  --prefix=/opt/rt/defcon \ 
 +  --enable-gd \ 
 +  --enable-gpg \ 
 +  --with-db-type=mysql \ 
 +</code>
  
-    su root -c make +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.
- or +
-    sudo make +
- or +
-    /path1/to/sudo -u admin_account /path2/to/make+
  
- <make_install_make_command+<code
-or some suchYour choice[/usr/bin/make] +make testdeps  
-^[[5~ +        Locale::Maketext::Lexicon >= 0.32...MISSING 
-Parameters for the 'make install' command? +        Text::Template >= 1.45...MISSING 
-Typical frequently used setting:+                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>
  
-    UNINST=1         # to always uninstall potentially conflicting files+Use RT's own helper to satisfy the missing dependencies: 
 +<code> 
 +sudo make fixdeps 
 +</code>
  
- <make_install_arg+This uses CPAN to pull in the missing or out-dated Perl modules. After a successful run, rerun make testdeps, and you shuld get: 
-Your choice: [] UNINST=1+<code
 +All dependencies have been found. 
 +</code>
  
-A Build.PL is run by perl in a separate process. Likewise we run +===== Installation =====
-'./Build' and './Build install' in separate processes. If you have any +
-parameters you want to pass to the calls, please specify them here.+
  
-Typical frequently used settings:+Time to do the actual installation: 
 +<code> 
 +sudo make install
  
-    --install_base /home/xxx             # different installation directory+... 
 +</code>
  
- <mbuildpl_arg> +===== Configuration of RT =====
-Parameters for the 'perl Build.PL' command? []+
  
-Parameters for the './Build' command? Setting might be:+You must now configure RT by editing /opt/rt/defcon/etc/RT_SiteConfig.pm. 
  
-    --extra_linker_flags -L/usr/foo/lib  # non-standard library location+WARNING: Never, EVER, change RT_Config.pm. All your changes need to be put in 
 +RT_SiteConfig.pm.
  
- <mbuild_arg> +(You will definitely need to set RT's database password in  
-Your choice: []+/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.)
  
-Do you want to use a different command for './Build install'? Sudo +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...
-users will probably prefer:+
  
-    su root -c ./Build +<code>
- or +
-    sudo ./Build +
- or +
-    /path1/to/sudo -u admin_account ./Build+
  
- <;mbuild_install_build_command&gt; +# What RT instance? 
-or some suchYour choice: [./Build]+Set($rtname, 'Ticket'); 
 +Set($Organization , &quot;defcon.no");
  
-Parameters for the './Build installcommand? Typical frequently used +# Default email adresses 
-setting:+Set($CorrespondAddress , 'rt@defcon.no'); 
 +Set($CommentAddress , 'rt-comment@defcon.no');
  
-    --uninst 1                           uninstall conflicting files+How to handle time (timezone setting) 
 +Set($Timezone , 'CET');
  
- <;mbuild_install_arg>+# Database setup 
-Your choice: [] --uninst 1+#Set($DatabaseHost   , 'localhost'); 
 +#Set($DatabaseRTHost , 'localhost')
 +#Set($DatabasePort , ''); 
 +Set($DatabaseType, 'mysql'); 
 +Set($DatabaseUser , 'rt_user'); 
 +Set($DatabasePassword , 'password'); 
 +Set($DatabaseName , 'rt_database');
  
-Timeout for inactivity during {Makefile,Build}.PL? [0] +# Who is owner/admin of this instance
-Your ftp_proxy? [] +Set($OwnerEmail , 'rtowner@defcon.no'); 
-Your http_proxy? [] +Set($LoopsToRTOwner , 1);
-Your no_proxy? [] +
-Shall we always set the FTP_PASSIVE environment variable when dealing +
-with ftp download (yes/no)? [yes] +
-Preferred method for determining the current working directory? [cwd] +
-Do you want the command number in the prompt (yes/no)? [yes] +
-Do you want to turn ornaments on? [yes] +
-Do you want to turn on colored output? [no] +
-Your terminal expects ISO-8859-1 (yes/no)? [yes] +
-File to save your history? [/home/fishy/.cpan/histfile] +
-Number of lines to save[100] +
-Always try to show upload date with 'd' and 'm' command (yes/no)? [no] +
-Show all individual modules that have no $VERSION? [no+
-Show all individual modules that have a $VERSION of zero? [no] +
-Is it OK to try to connect to the Internet? [yes] +
-Select your continent (or several nearby continents[] 4 +
-Select your country (or several nearby countries[] 19 +
- e.g. '1 4 5' or '7 1-4 8' [] 2 +
-Enter another URL or RETURN to quit: []+
  
-cpan[2]>install Bundle::CPAN +# Max allowed attachments, up from 10MB to 20MB 
-cpan[2]&gtinstall CPAN::SQLite +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, &quot;");
  
 </code> </code>
  
-Now, download and unpack Request Tracker, the latest release:+===== Initialize the RT database =====
  
 <code> <code>
-wget http://download.bestpractical.com/pub/rt/release/ +sudo make initialize-database
-tar zxvf rt.tar.gz +
-cd rt-3.*+
 </code> </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 ====
 +