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.
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
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:
perl Makefile.PLto check for dependencies, and minimum versions of RT. If your RT is in an unusual location (not
/opt/rt4/), you may need to set the
RTHOMEenvironment variable to the root of your RT location.
maketo prepare the package for installation.
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.
If the extension contains database changes or new queues, scrips, templates, or the like, you will need to run
make initdbto 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
INSTALLINGsection of the module's documentation.
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( 'RT::Extension::Example' ); Plugin( 'RT::Extension::Sample' );
On RT 4.0, enabling them instead requires adding them to the
Set( @Plugins, 'RT::Extension::Example', 'RT::Extension::Sample' );
Configure any additional settings that the extension requires. Many options that must be set before the plugin can be used. Read the documentation carefully.
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 /opt/rt4/var/mason_data/obj directory:
rm -rf /opt/rt4/var/mason_data/obj
This step may not be necessary if the extension does not affect RT's display.
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
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.