37.4 Создание пакетов
Внутренне пакет представляет собой просто сжатый в формате gzip файл 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 ('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–2022 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/v5.2.0/Creating-Packages.html