Spec-Zone.ru › Octave 9

Предыдущий: Управление пакетами, Выше: Пакеты [Оглавление][Индекс]

37.4 Создание пакетов ¶

Внутренне пакет — это просто сжатый в формате gzipped tar файл, содержащий каталог верхнего уровня с произвольным именем. Этот каталог далее будет называться package и может содержать следующие файлы:

package/CITATION

Это необязательный файл, описывающий инструкции по цитированию пакета для публикации. Он будет отображен дословно функцией citation.

package/COPYING

Это обязательный файл, содержащий лицензию пакета. В общем случае нет ограничений на лицензию. Однако, если пакет содержит динамически подключаемые функции, лицензия должна быть совместима с GNU General Public License.

package/DESCRIPTION

Это обязательный файл, содержащий информацию о пакете. Подробности об этом файле см. в разделе Файл DESCRIPTION.

package/ChangeLog

Это необязательный файл, описывающий все внесенные изменения в исходные файлы пакета.

package/INDEX

Это необязательный файл, описывающий функции, предоставляемые пакетом. Если этот файл отсутствует, он будет автоматически создан на основе функций в пакете и ключевого слова Categories в файле DESCRIPTION. Подробности об этом файле см. в разделе Файл INDEX.

package/NEWS

Это необязательный файл, описывающий все заслуживающие упоминания изменения, видимые пользователю. По мере увеличения размера этого файла старые записи могут быть перемещены в package/ONEWS.

package/ONEWS

Это необязательный файл, описывающий старые записи из файла NEWS.

package/PKG_ADD

Необязательный файл, содержащий команды, которые выполняются при добавлении пакета в пути пользователя. Обратите внимание, что директивы PKG_ADD в исходном коде пакета также будут добавлены в этот файл менеджером пакетов Octave. Следует избегать символических ссылок в пакетах, так как они могут отсутствовать в некоторых файловых системах. Типичное использование этого файла — замена символической ссылки

ln -s foo.oct bar.oct

директивой autoload, например

autoload ('bar', which ('foo'));

Подробности о директивах PKG_ADD см. в разделе Директивы PKG_ADD и PKG_DEL.

package/PKG_DEL

Необязательный файл, содержащий команды, которые выполняются при удалении пакета из пути пользователя. Обратите внимание, что директивы PKG_DEL в исходном коде пакета также будут добавлены в этот файл менеджером пакетов Octave. Подробности о директивах PKG_DEL см. в разделе Директивы PKG_ADD и PKG_DEL.

package/pre_install.m

Это необязательная функция, которая выполняется перед установкой пакета. Эта функция вызывается с одним аргументом — структурой с полями, названными по данным в файле DESCRIPTION, и путями, где будут установлены функции пакета.

package/post_install.m

Это необязательная функция, которая выполняется после установки пакета. Эта функция вызывается с одним аргументом — структурой с полями, названными по данным в файле DESCRIPTION, и путями, где были установлены функции пакета.

package/on_uninstall.m

Это необязательная функция, которая выполняется перед удалением пакета. Эта функция вызывается с одним аргументом — структурой с полями, названными по данным в файле DESCRIPTION, путями, где установлены функции пакета, и указанием, загружен ли пакет в данный момент.

Помимо вышеупомянутых файлов, пакет также может содержать один или несколько следующих каталогов:

package/inst

Необязательный каталог, содержащий любые файлы, которые устанавливаются пакетом напрямую. Обычно в него входят файлы m.

package/src

Необязательный каталог, содержащий код, который необходимо скомпилировать перед установкой пакета. Менеджер пакетов Octave выполнит ./configure в этом каталоге, если такой скрипт существует, а затем вызовет make если файл Makefile существует в этом каталоге. make install однако не будет вызван. Переменные среды MKOCTFILE, OCTAVE_CONFIG, и OCTAVE будут установлены в полных путях к программам mkoctfile, octave-config, и octave, соответственно, правильной версии при вызове configure и make. Если существует файл FILES, все файлы, указанные в нём, будут скопированы в каталог inst, таким образом они также будут установлены. Если файл FILES не существует, src/*.m и src/*.oct будут скопированы в каталог inst.

package/doc

Необязательный каталог, содержащий документацию для пакета. Файлы в этом каталоге будут установлены непосредственно в подкаталоге установленного пакета для дальнейшего использования.

package/bin

Необязательный каталог, содержащий файлы, которые будут добавлены в Octave EXEC_PATH при загрузке пакета. В него могут входить внешние скрипты и т. п., вызываемые функциями внутри пакета.

  • Файл DESCRIPTION
  • Файл INDEX
  • Директивы PKG_ADD и PKG_DEL
  • Отсутствующие компоненты

Предыдущий: Управление пакетами, Выше: Пакеты [Оглавление][Индекс]

© 1996–2023 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v9.2.0/Creating-Packages.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API