Spec-Zone.ru › Octave 6

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 должен запускаться с правами администратора (или «Запуск от имени администратора» в Windows), чтобы иметь возможность устанавливать пакеты глобально.

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

Для глобальных и локальных пакетов существуют отдельные базы данных, содержащие информацию об установленных пакетах. Если какой-либо пакет установлен как глобально, так и локально, локальная установка имеет приоритет («затенение») глобальной. Выбор используемой установки пакета (глобальной или локальной) также может быть изменен с помощью префиксов и/или использования входного аргумента ‘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

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

-global

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

-forge

Установка пакета напрямую из репозитория Octave Forge. Это требует подключения к интернету и библиотеки cURL.

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

-verbose

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

‘update’

Проверка установленных пакетов Octave Forge по отношению к репозиторию и обновление устаревших элементов. Это требует подключения к интернету и библиотеки cURL. Использование:

pkg update

Для обновления одного пакета используйте pkg install -forge

‘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, новости.

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

Spec-Zone.ru

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