RT 5.0.5 Documentation
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:
Run
perl Makefile.PLto check for dependencies, and minimum versions of RT. If your RT is in an unusual location (not/opt/rt5/), you may need to set theRTHOMEenvironment variable to the root of your RT location.Run
maketo prepare the package for installation.Run
make install; you may need to run this step asroot, 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 theINSTALLINGsection 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()command:Plugin( 'RT::Extension::Example' ); Plugin( 'RT::Extension::Sample' );On RT 4.0, enabling them instead requires adding them to the
@Pluginsconfiguration: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/rt5/var/mason_data/obj directory:
rm -rf /opt/rt5/var/mason_data/objThis 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 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.