## Please edit system and help pages ONLY in the master wiki!
## For more information, please see MoinMoin:MoinDev/Translation.
##master-page:HelpOnPackageInstaller
##master-date:2010-05-15T14:56:10Z
#acl -All:write Default
#format wiki
#language ru

= Установка пакетов =

<<TableOfContents>>

Установщик пакетов — это инструментарий работы со сценариями установки пакетов для МойнМойн, упрощающий установку расширений для МойнМойн. 

Данный механизм можно исользовать для сборки дистрибутивов шаблонов, расширений и тем для простой их установки.

== Установка пакета ==

[[ПомощьПоСуперПользователю|Суперпользователь]] (то есть пользователь, присутствующий в списке параметра `superuser` конфигурации) вики может загрузить файл пакета на вики и затем установить его, выбрав соответствщее действие в списке прикреплённых файлов. Кроме того, возможна установка пакета посредством командной строки  (`MoinMoin/packages.py i package.zip`).

== Создание пакета ==

Существует несколько способов создать пакет. Можно использовать действие «<<GetText(PackagePages)>>» для автоматического создания пакета.

Или же можно сделать это вручную: создать zip-архив, содержащий необходимые файлы и специальный файл `MOIN_PACKAGE`, являющийся сценарием установки. Данный сценарий содержит по команде на строку и выполняется сверху вниз.

Пример сценария:
{{{
MoinMoinPackage|1
ReplaceUnderlay|mypage.txt|ПомощьПоГлавам
AddRevision|mypage2.txt|ГлавнаяСтраница
InstallPlugin|myparser.py|global|parser|myparser.py
}}}

 * Первая строка указывает, что данный файл является сценарием установки пакета МойнМойн и ревизию используемого языка. Текущая ревизия языка — 1.
 * Вторая строка заменяет страницу ПомощьПоГлавам в домене underlay содержимым файла `mypage.txt`
 * Третья строка добавляет новую версию страницы ГлавнаяСтраница, т. е. изменяет её.
 * Четвёртая строка устанавливает новый парсер.

=== Поддерживаемые команды ===

Команды являются регистронезависимыми.

 * `Print|текст`
  * Печать текста в поток вывода сценария, пользователь сможет увидеть его впоследствии.
 * `IgnoreExceptions|boolean`
  * Указывает, следует ли игнорировать исключительные ситуации (`True` — игнорировать, `False` — нет). В случае, если исключения игнорируются, сценарий не прекращает свою работу в случае возникновения таковых.
 * `SetThemeName|тема`
  * Задаёт имя темы, которая будет изменяться в дальнейшем.
 * `CopyThemeFile|имя_файла|тип|имя_цели`
  * Копирует файл темы (CSS, PNG, ...) в каталог текущей темы.
  * Пример: `CopyThemeFile|screen.css|css|screen.css`
 * `InstallPlugin|имя_файла|видимость|тип|целевое_имя`
  * Копирует файл расширения в файл с указанным именем. Параметр `видимость` может принимать значение `local` (в этом случае расширение устанавливается в каталог расширений экземпляра вики ,и доступно только ему) или `global` (в этом случае расширение устанавливается в каталог с пакетом МойнМойн и доступно всем экземплярам вики, использующим данный код сервера МойнМойн). Параметр `тип` может принимать значения parser (парсер), macro (макрокоманда), formatter (обработчик выходного формата), filter (фильтр извлечения текста для [[ПомощьПоXapian|Xapian]]), ... (дополнить)
  * Пример: `InstallPlugin|myparser.py|global|parser|myparser.py`
 * `AddRevision|имя_файла|имя_страницы|автор|комментарий|незначительность_правки`
  * Создаёт новую версию (используя файл `имя_файла`) страницы `имя_страницы`. Параметр `автор` определяет имя автора правки и является необязательным. Параметр `комментарий` задаёт комментарий к изменению и является необязательным. Параметр `незначительность_правки` указывает, помечать ли (в случае указания значения `True`) правку как незначительную или нет (при задании значения `False`); параметр является необязательным.
  * Пример (установки новых шаблонов):{{{
AddRevision|cust.tpl|ШаблонКлиент
AddRevision|phone.tpl|ШаблонТелефон
}}}
 * `DeletePage|имя_страницы|комментарий`
  * Удаляет страницу с именем `имя_страницы`, опционально указывая `комментарий` в качестве причины удаления.
  * Пример: `DeletePage|ГлавнаяСтраница`
 * `ReplaceUnderlay|имя_файла|имя_страницы`
  * Заменяет страницу в underlay. Может использоваться для установки или обновления страниц underlay.
 * `ReplaceUnderlayAttachment|имя_файла_в_архиве|имя_прикреплённого_файла|имя_страницы|автор|комментарий`
  * Заменяет прикреплённый к странице файл в underlay
  * Пример: `ReplaceUnderlayAttachment|2|chair.jpg|ПомощьПоИзображениям||пример для страницы ПомощьПоИзображениям.`
 * `EnsureVersion|версия|количество_строк`
  * Прерывает сценарий или пропускает указанное количество строк (в случае, если данный параметр указан), если проверка версии не пройдена.
  * В данном примере в зависимости от версии МойнМойн происходит установка соответствующего парсера: {{{
EnsureVersion|1.3.3|2
InstallPlugin|myparser.py_3|global|parser|myparser.py
Exit
EnsureVersion|1.3.2
InstallPlugin|myparser.py_2|global|parser|myparser.py
}}}
 * `Exit`
  * Завершение сценария.
 * `InstallPackage|ИмяСтраницы|ИмяФайла`
  * Установка другого пакета, являющегося прикреплённым к странице !ИмяСтранцы файлом с именем !ИмяФайла
  * Пример: `InstallPackage|ГлавнаяСтраница|MyCoolPlugin.zip`
 * `AddAttachment|имя_файла_в_пакете|имя_прикреплённого_файла|имя_страницы|автор|комментарий`
  * Пример: `AddAttachment|2_attachment|song.wav|ГлавнаяСтраница|АлександрПрвалов|пример музыкальной композиции.`
 * `DelAttachment|имя_файла|имя_страницы|автор|комментарий`
  * Пример: `DelAttachment|song.wav|ГлавнаяСтраница|АлександрПривалов|проверочка`
 * `RenamePage|имя_страницы|новое_имя|автор|комментарий`
  * Переименование страницы с необязательным указанием автора и комментария.