Spec-Zone.ru › Octave 9

37.1 Установка и удаление пакетов

Предположим, пакет доступен в файле image-1.0.0.tar.gz. Его можно установить из командной строки Octave с помощью команды

pkg install image-1.0.0.tar.gz

Если пакет установлен успешно, в командной строке ничего не будет выведено. Если во время установки возникнет предупреждение или ошибка, об этом будет сообщено. Можно установить несколько пакетов одновременно, указав несколько имен файлов пакетов после команды pkg install. Если уже установлена другая версия пакета, она будет удалена перед установкой новой. Это упрощает обновление и откат версии пакета, но не позволяет одновременно установить несколько версий одного пакета.

Чтобы посмотреть, какие пакеты установлены, введите

pkg list
-| Package Name  | Version | Installation directory
-| --------------+---------+-----------------------
-|        image *|   1.0.0 | /home/jwe/octave/image-1.0.0

В этом случае установлен пакет image версии 1.0.0. Символ '*' рядом с именем пакета показывает, что пакет image загружен и готов к использованию.

Пакет можно удалить из системы с помощью команды pkg uninstall, например так:

pkg uninstall image

Если пакет удален успешно, в командной строке ничего не будет выведено. Если возникнет предупреждение или ошибка, об этом будет сообщено. Обратите внимание: для удаления не нужен файл пакета, использованный при установке; при удалении пакета следует указывать только его имя, как оно отображается командой pkg list. Можно удалить несколько пакетов одновременно, указав несколько имен пакетов после команды pkg uninstall.

Чтобы свести к минимуму дублирование кода между пакетами, один пакет может зависеть от другого. Если пакет зависит от другого пакета, во время установки проверяется, установлен ли он. Если нет, будет выведена ошибка, и пакет не будет установлен. Это поведение можно отключить, передав команде pkg install флаг -nodeps

pkg install -nodeps my_package_with_dependencies.tar.gz

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

: pkg command pkg_name
: pkg command option pkg_name
: [out1, …] = pkg (command, … )

Управление пакетами (наборами дополнительных функций) для Octave и получение сведений о них.

Пакеты можно устанавливать глобально (то есть для всех пользователей системы) или локально (то есть только для текущего пользователя).

По умолчанию глобальные пакеты устанавливаются в общесистемное расположение. Обычно это подкаталог папки, в которой установлена сама Octave. Поэтому для установки глобальных пакетов Octave требуется право записи в эту папку; обычно оно доступно только при запуске Octave с административными привилегиями, например от имени root (суперпользователя) в Unix-подобных системах или с повышенными привилегиями («Запуск от имени администратора») в Windows.

Локальные пакеты, напротив, по умолчанию устанавливаются в домашний каталог пользователя (или профиль пользователя в Windows) и доступны только этому пользователю. Обычно для их установки административные привилегии не требуются.

При запуске Octave с административными привилегиями команда pkg по умолчанию устанавливает пакеты в глобальное расположение. В противном случае пакеты по умолчанию устанавливаются в локальное расположение. Пользователь может изменить расположение установки по умолчанию с помощью необязательных аргументов (-local или -global), описанных ниже. Текущее используемое расположение установки пакетов по умолчанию можно запросить с помощью pkg prefix.

Для глобальных и локальных пакетов используются отдельные базы данных, содержащие сведения об установленных пакетах. Если пакет установлен и глобально, и локально, локальная установка имеет приоритет над глобальной (то есть затеняет ее). Выбор используемой установки пакета (глобальной или локальной) также можно изменить с помощью префиксов и/или входного аргумента ‘local_list’. Эти механизмы позволяют также устанавливать параллельно несколько разных выпусков одного пакета (но одновременно загрузить их нельзя).

Пакеты могут зависеть от внешнего программного обеспечения и/или других пакетов. Чтобы установить такие пакеты, сначала нужно установить эти зависимости. Пакет, зависящий от других пакетов, все же можно установить с помощью флага -nodeps. Последствия неудовлетворенных зависимостей от внешнего программного обеспечения, например библиотек, зависят от конкретного пакета.

Перед использованием пакеты необходимо загрузить. При загрузке пакета Octave выполняет следующие действия:

  1. Если пакет зависит от других пакетов (и pkg load вызвана без параметра -nodeps), пакет не загружается сразу. Сначала загружаются эти зависимости (при необходимости рекурсивно).
  2. Когда все зависимости удовлетворены, подкаталоги пакета добавляются в путь поиска.

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

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

В зависимости от значения command и количества запрошенных выходных аргументов pkg можно использовать для выполнения различных задач. Возможные значения command:

‘install’

Установка указанных пакетов. Например,

pkg install image-1.0.0.tar.gz

устанавливает пакет из файла image-1.0.0.tar.gz. Файлом, содержащим пакет, может быть URL-адрес, например

pkg install 'http://somewebsite.org/image-1.0.0.tar.gz'

устанавливает пакет, доступный по указанному URL-адресу. Для этого требуется подключение к Интернету и библиотека cURL.

Риск для безопасности: перед установкой подлинность пакета не проверяется. Это сопряжено с теми же рисками для безопасности, что и ручная загрузка и установка пакета по указанному URL-адресу.

Поддержка не предоставляется: сообщество GNU Octave не отвечает за пакеты, установленные со сторонних сайтов. Для получения поддержки или сообщения об ошибках необходимо напрямую связаться с сопровождающими установленного пакета (см. файл DESCRIPTION пакета).

Переменная option может содержать параметры, влияющие на способ установки пакета. Она может содержать один или несколько следующих параметров:

-nodeps

Менеджер пакетов отключит проверку зависимостей. Этот параметр позволяет установить пакет, даже если он зависит от другого пакета, не установленного в системе. Используйте этот параметр с осторожностью.

-local

Принудительно выполнить локальную установку (пакет доступен только текущему пользователю), даже если Octave запущена с административными привилегиями.

-global

Принудительно выполнить глобальную установку (пакет доступен всем пользователям), даже если Octave запущена без административных привилегий. У пользователя должно быть право записи в глобальное хранилище пакетов.

-forge

Установить пакет непосредственно из репозитория Octave Forge. Для этого требуется подключение к Интернету и библиотека cURL.

Риск для безопасности: перед установкой подлинность пакета не проверяется. Для пакетов нет подписей или контрольных сумм, которые подтверждали бы, что был загружен нужный файл. Это сопряжено с теми же рисками для безопасности, что и ручная загрузка и установка пакета из репозитория Octave Forge.

-verbose

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

‘update’

Проверка установленных пакетов Octave Forge на наличие обновлений в репозитории и обновление устаревших пакетов. Обновленные пакеты устанавливаются глобально или локально в зависимости от того, запущена ли Octave с повышенными привилегиями. Для этого требуется подключение к Интернету и библиотека cURL.

После команды update можно указать параметры команды install и имена отдельных пакетов, для которых следует проверить наличие обновлений. Если указан параметр -local или -global, pkg update ограничивает проверку обновлений локально или глобально установленными пакетами и устанавливает обновления в том же контексте. Например:

Обновить все пакеты:

pkg update

Обновить все локальные пакеты:

pkg update -local

Обновить определенные пакеты, игнорировать зависимости, максимальный уровень подробности:

pkg update -verbose -nodeps image signal geometry

Обновления нескольких пакетов сортируются по алфавиту; зависимости, на которые влияет порядок установки, не проверяются. Если возникает сбой pkg update, связанный с порядком зависимостей, используйте pkg update -nodeps, чтобы игнорировать зависимости, или pkg install -forge <package_name>, чтобы обновить пакеты вручную по отдельности.

‘uninstall’

Удаление указанных пакетов. Например,

pkg uninstall image

удаляет пакет image из системы. Если другой установленный пакет зависит от пакета image, будет выдана ошибка. Пакет все равно можно удалить, используя параметр -nodeps.

‘load’

Добавление указанных пакетов в путь. После загрузки пакета можно использовать предоставляемые им функции. Например,

pkg load image

добавляет пакет image в путь.

Примечание: при загрузке пакета pkg также автоматически попытается загрузить все еще не загруженные зависимости, если не указан флаг -nodeps. Например,

pkg load signal

добавляет пакет signal и также пытается загрузить его зависимость — пакет control. Учтите, что использование флага -nodeps, вероятно, повлияет на функциональность загруженных пакетов. Даже если необходимые зависимости будут загружены позднее, функциональность пакетов верхнего уровня все равно может пострадать из-за нарушения оптимального порядка загрузки.

‘unload’

Удаление указанных пакетов из пути. После выгрузки пакета использовать предоставляемые им функции больше нельзя. Попытка выгрузить пакет, от которого зависят другие загруженные пакеты, приведет к ошибке; в этом случае ни один пакет не будет выгружен. Пакет можно принудительно удалить с помощью флага -nodeps, но учтите, что это, вероятно, повлияет на функциональность зависимых пакетов. Как и при загрузке пакетов, повторная загрузка зависимостей после их выгрузки с помощью флага -nodeps может не восстановить всю функциональность зависимых пакетов, поскольку необходимый порядок загрузки может быть нарушен.

‘list’

Вывод списка установленных в данный момент пакетов. Например,

pkg list

выведет краткую сводку с именем, версией и каталогом установки каждого установленного пакета. Укажите имя пакета, чтобы ограничить вывод сведениями о конкретном пакете. Например:

pkg list image

Если запрошен один выходной аргумент, pkg возвращает массив ячеек, в котором каждый элемент представляет собой структуру со сведениями об одном пакете.

installed_packages = pkg ("list")

Если запрошены два выходных аргумента, pkg разделяет список установленных пакетов на пакеты, установленные текущим пользователем, и пакеты, установленные системным администратором.

[user_packages, system_packages] = pkg ("list")

Параметр "-forge" выводит список пакетов, доступных в репозитории Octave Forge. Для этого требуется подключение к Интернету и библиотека cURL. Например:

oct_forge_pkgs = pkg ("list", "-forge")
‘describe’

Вывод краткого описания установленных пакетов. С параметром "-verbose" также выводится список функций, предоставляемых пакетом. Например,

pkg describe -verbose

выведет описания всех установленных пакетов и предоставляемых ими функций. Вывод можно ограничить набором пакетов:

## describe control and signal packages
pkg describe control signal

Если запрошен один выходной аргумент, описание и список функций каждого пакета возвращаются в виде ячейки со структурой, а не выводятся на экран:

desc = pkg ("describe", "secs1d", "image")

Если какой-либо из запрошенных пакетов не установлен, pkg выдает ошибку, если не запрошен второй выходной аргумент:

[desc, flag] = pkg ("describe", "secs1d", "image")

Для каждого из указанных пакетов flag принимает одно из значений "Not installed", "Loaded" или "Not loaded".

‘prefix’

Задание каталога префикса установки. Например,

pkg prefix ~/my_octave_packages

задает префикс установки ~/my_octave_packages. Пакеты будут установлены в этот каталог.

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

pfx = pkg ("prefix")

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

pkg prefix ~/my_octave_packages ~/my_arch_dep_pkgs
‘local_list’

Задание файла, в котором следует искать сведения о локально установленных пакетах. Локально установленные пакеты доступны только текущему пользователю. Например:

pkg local_list ~/.octave_packages

Текущее значение local_list можно получить следующим образом:

pkg local_list
‘global_list’

Задание файла, в котором следует искать сведения о глобально установленных пакетах. Глобально установленные пакеты доступны всем пользователям. Например:

pkg global_list /usr/share/octave/octave_packages

Текущее значение global_list можно получить следующим образом:

pkg global_list
‘build’

Сборка двоичной версии одного или нескольких пакетов. Созданный двоичный файл сам будет пакетом Octave, который можно обычным образом установить с помощью pkg. Команда сборки двоичного пакета имеет следующий вид:

pkg build builddir image-1.0.0.tar.gz ...

где builddir — имя каталога, в котором будет выполнена временная установка и будут размещены двоичные пакеты. Параметры -verbose и -nodeps учитываются, а все остальные параметры игнорируются.

‘rebuild’

Пересоздание базы данных пакетов на основе каталогов установленных пакетов. Это можно использовать в случае повреждения базы данных пакетов.

‘test’

Запуск встроенных самопроверок во всех функциях указанных пакетов. Например:

pkg test image

См. также: ver, news.

© 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/Installing-and-Removing-Packages.html

Spec-Zone.ru

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