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 выполняет следующие задачи:
- Если пакет зависит от других пакетов (и
pkg loadвызывается без опции -nodeps), пакет не загружается сразу. Вместо этого сначала загружаются эти зависимости (рекурсивно, если необходимо). - Когда все зависимости удовлетворены, подкаталоги пакета добавляются в путь поиска.
Этот порядок загрузки приводит к тому, что функции, предоставляемые зависимостями, могут быть скрыты функциями с тем же именем, которые предоставляются пакетами верхнего уровня.
Каждый раз, когда пакет добавляется в путь поиска, скрипты инициализации пакета автоматически выполняются, если они предоставлены пакетом.
В зависимости от значения 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.
Опции для команды install и имена отдельных пакетов, которые нужно проверить на наличие обновлений, могут быть указаны в виде списка после команды update. Если указана опция -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
© 1996–2023 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.2.0/Installing-and-Removing-Packages.html