Spec-Zone.ru › Octave 7

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

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

Можно удалить пакет из системы, используя команду pkg uninstall, например так

pkg uninstall image

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

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

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:

END_OF_DOCUMENT_MARKER
‘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.

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

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

pkg update

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

pkg update -local

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

pkg update -verbose -nodeps image signal geometry

Обновления для нескольких пакетов сортируются в алфавитном порядке и не проверяются на наличие зависимостей, влияющих на порядок установки. Если возникает ошибка, связанная с порядком зависимостей, используйте pkg update для игнорирования зависимостей или 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–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/v7.2.0/Installing-and-Removing-Packages.html

Spec-Zone.ru

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