- Introduction
- Finding extensions
- Installing extensions

# Introduction

RT has a lot of core features, but sometimes you have a problem to solve that's beyond the scope of just configuration. The standard way to add features to RT is with an extension, or plugin -- RT uses the terms interchangably.

# Finding extensions

Most of the extensions written by Best Practical (and quite a few contributed by the community) are available from CPAN; a search for RT::Extension will turn up most of them. The Best Practical website also maintains a list, at http://www.bestpractical.com/rt/extensions.html

# Installing extensions

RT extensions should be installed by downloading the `.tar.gz` file for the extensions, extracting it (with `tar xzf filename.tar.gz`), and following the instructions in its included README.

The instructions under `INSTALLING` in the README always take precedence over those found here. In general, however, the process is as follows:

1. Run `perl Makefile.PL` to check for dependencies, and minimum versions of RT. On Debian, Request Tracker knows where to find the various RT directories.

2. Run `make` to prepare the package for installation.

3. Run `make install`; you may need to run this step as `root`, or at least a user that has permission to install into RT's directories.

4. If the extension contains database changes or new queues, scrips, templates, or the like, you will need to run `make initdb` to install them. Not all extensions have database changes, and most of them only need this step run when they are first installed, and not on later updates. Refer to the `INSTALLING` section of the module's documentation.

5. Add the plugin to RT's configuration. By default, newly installed plugins are not enabled. On RT 4.2 and later, each plugin should be enabled by the `Plugin()` command:

           Plugin( 'RT::Extension::Example' );
           Plugin( 'RT::Extension::Sample' );

   On RT 5.0, enabling them instead requires adding them to the `@Plugins` configuration:

           Set( @Plugins, 'RT::Extension::Example', 'RT::Extension::Sample' );

6. Configure any additional settings that the extension requires. Many options that must be set before the plugin can be used. Read the documentation carefully.

7. Next, clear the cache. RT caches the files it serves, and installing a plugin requires clearing this cache to ensure that the changes are served. This is done by removing files in the /var/cache/request-tracker5/mason_data/obj directory:

          rm -rf /var/cache/request-tracker5/mason_data/obj

   This step may not be necessary if the extension does not affect RT's display.

8. Finally, restart your webserver. The steps for this will vary from webserver to webserver.

Again, the above are generalizations. The `README` shipped with the extension always takes precedence over the above steps.

We do not suggest using the command-line `cpan` or `cpanm` client to install RT extensions, despite them being available from CPAN. Those command-line clients are not aware of steps 4-8 listed above, and may result in an incomplete installation.

← Back to index