Заметки по обновлению RT

Материал из DvoWiki
Перейти к: навигация, поиск

Здесь представлен краткий перечень шагов необходимы для обновления RT.

Собственно скопировать ebuild в /usr/portage/local/www-apps/rt под новый релиз RT например rt-3.4.1.ebuild в rt-3.6.8.ebuild. Далее по стандартной схеме выполняем

ebuild rt-3.6.8.ebuild digest, 

и получаем исходники.

Далее делаем backup базы данных

pg_dump rt3 -U some_rt_user -f /root/rt3_postgres.dump

После этого можно приступить к установке самого RT.

emerge rt-3.6.8.ebuid
webapp-config -I -h rt -d rt-3.8.6 rt 3.8.6

А также надо не забыть скопировать SiteConfig в новую директорию и поправить внутри него все данные связанные с местоположением новой инсталяции.

Обновим инсталяцию в базе данных следующей командой (Ещё раз стоит напомнить про backup):

$(YOURE_RT_INSTALL_PATH)/sbin/rt-setup-database --dba root --prompt-for-dba-password --action upgrade


Теперь необходимо установить расширения, такие как RT::Authen::ExternalAuth и RTFM, что мы и делаем командой cpan:

cpan -i RT::Authen::ExternalAuth

Не используется g-cpan потому, что нужно вводить информацию о месте установки RT во время инсталяции модуля. С RTFM, дела обстоят несколько сложнее, вот выписка из README по этому поводу. Upgrading RTFM from an earlier 2.0.x release

  1. . Edit RTFM's makefile to point to your RT 3 instance.
  2. . Make sure that MySQL or pgsql's commandline tool is in your path.
  3. . Type make upgrade
  4. . Stop and start your web server.

Installing RTFM

  1. . Install RT 3.0.x
  2. . Once RT 3.0 appears to be happily installed, cd into the directory you unpacked RTFM into.
  3. . Edit RTFM's makefile to point to your RT 3 instance.
  4. ) Make sure that MySQL's or pgsql's commandline tool is in your path.
  5. . Type make install
  6. . Stop and start your web server

Для того чтобы расширения заработали нужно поправить исходник $(YOURE_ER_PATH)/lib/RT.pm, Там надо нормализовать пути, т.е. где стоит два слеша поставить один. Запрос в бактрекер был послан уже давно, но в стандартной реализации этого так и небыло сделано. Получится что-то вроде этого стоит заметить ОДИН слеш в path-е:

our $BasePath = '/$(YORE_RT_PATH)/rt-3.8.6';
our $EtcPath = '/$(YORE_RT_PATH)/rt-3.8.6/etc';
our $BinPath = '/$(YORE_RT_PATH)/rt-3.8.6/bin';
our $SbinPath = /'$(YORE_RT_PATH)/rt-3.8.6/sbin';
our $VarPath = '/$(YORE_RT_PATH)/rt-3.8.6/var';
our $LocalPath = '/$(YORE_RT_PATH)/rt-3.8.6/local';
our $LocalEtcPath = '/$(YORE_RT_PATH)/rt-3.8.6/local/etc';
our $LocalLibPath = '/$(YORE_RT_PATH)/rt-3.8.6/local/lib';
our $LocalLexiconPath = '/$(YORE_RT_PATH)/rt-3.8.6/local/po';

Теперь необходимо поправить настройки apache, чтобы он подхватил нужную нам директорию. Также необходимо отчистить директорию $(YOURE_RT_PATH)/var/mason_data. После установки дополнений можно проверить как всё работает и перейти к установке alias-ов в sendmail. Это нужно для того, чтобы можно было отвечать на тикеты непосредственно из почтового клиента. Для этого правим конф

vim /etc/mail/aliases

Добавляем туда примерно вот это:

alias_1: "|$(YOURE_RT_PATH)/rt-3.8.6/bin/rt-mailgate --queue General --action correspond --url http://bugs.youredomain.ru/"
alias_2: "|$(YOURE_RT_PATH)/rt-3.8.6/bin/rt-mailgate --queue General --action comment --url http://bugs.youredomain.ru/"

Эти записи будут создавать alias-ы на очередь General и будут, соответственно, отвечать за ответы и за комментарии. Не забываем при этом сделать сылку на rt-mailgate в директории /usr/adm/sm.bin/. После этого вызываем команду newaliases.