37.4 Создание пакетов
Внутренне пакет представляет собой обычный архив tar, сжатый gzip, содержащий каталог верхнего уровня с произвольным именем. Далее этот каталог будет называться 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-
Необязательный каталог, содержащий код, который необходимо собрать перед установкой пакета. Если в этом каталоге существует сценарий ./configure, менеджер пакетов Octave выполнит его, а затем вызовет
make, если в каталоге существует файл Makefile. Однакоmake installвызван не будет. При вызовеconfigureиmakeпеременным средыMKOCTFILE,OCTAVE_CONFIGиOCTAVEбудут присвоены полные пути к программамmkoctfile,octave-configиoctaveсоответственно, имеющим правильную версию. Если существует файл с именемFILES, все перечисленные в нём файлы будут скопированы в каталогinstи также установлены. Если файлFILESне существует, файлы src/*.m и src/*.oct будут скопированы в каталогinst. package/doc-
Необязательный каталог с документацией к пакету. Файлы из этого каталога будут непосредственно установлены в подкаталог установленного пакета для последующего использования.
package/binНеобязательный каталог с файлами, которые будут добавлены в
EXEC_PATHOctave при загрузке пакета. Здесь могут находиться внешние сценарии и другие файлы, вызываемые функциями пакета.
© 1996–2026 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.4.0/Creating-Packages.html