Пакетный менеджер Pkg
Pkg — встроенный пакетный менеджер Julia, обрабатывающий такие операции, как установка, обновление и удаление пакетов.
Следующее — очень краткое введение в Pkg. Для получения более подробной информации о файлах Project.toml, файлах Manifest.toml, совместимости версий пакетов ([compat]), средах, реестрах и т. д., настоятельно рекомендуется прочитать полное руководство, доступное здесь: https://pkgdocs.julialang.org.
Ниже представлен краткий обзор основных функций Pkg. Это должно помочь новым пользователям ознакомиться с основными функциями Pkg, такими как добавление и удаление пакетов и работа со средами.
В данном разделе опущено некоторое выходное содержимое Pkg для сохранения фокуса данного базового руководства. Это поможет сохранить хороший темп и не углубляться в детали. Если вам требуются дополнительные сведения, обратитесь к последующим разделам руководства по Pkg.
В этом руководстве используется Pkg REPL для выполнения команд Pkg. Для неинтерактивного использования рекомендуется API Pkg. API Pkg полностью документирован в разделе «Справочник по API» документации Pkg по адресу API Reference.
Pkg поставляется с REPL. Перейдите в REPL Pkg, нажав ] из REPL Julia. Чтобы вернуться в REPL Julia, нажмите Ctrl+C или клавишу Backspace (когда курсор REPL находится в начале ввода).
При входе в REPL Pkg вы увидите следующий приглашающий текст:
(@v1.8) pkg>
Для добавления пакета используйте add:
(@v1.8) pkg> add Example
Resolving package versions...
Installed Example ─ v0.5.3
Updating `~/.julia/environments/v1.8/Project.toml`
[7876af07] + Example v0.5.3
Updating `~/.julia/environments/v1.8/Manifest.toml`
[7876af07] + Example v0.5.3
После установки пакета его можно загрузить в сеанс Julia:
julia> import Example
julia> Example.hello("friend")
"Hello, friend"
Мы также можем указать сразу несколько пакетов для установки:
(@v1.8) pkg> add JSON StaticArrays
Команда status (или сокращенная команда st) может быть использована для просмотра установленных пакетов.
(@v1.8) pkg> st Status `~/.julia/environments/v1.6/Project.toml` [7876af07] Example v0.5.3 [682c06a0] JSON v0.21.3 [90137ffa] StaticArrays v1.5.9
Некоторые команды Pkg REPL имеют короткую и длинную версию, например, status и st.
Для удаления пакетов используйте rm (или remove):
(@v1.8) pkg> rm JSON StaticArrays
Используйте up (или update) для обновления установленных пакетов
(@v1.8) pkg> up
Если вы следовали этому руководству, то установленные пакеты, скорее всего, находятся в последней версии, поэтому up ничего не сделает. Ниже показан вывод состояния в случае, когда мы намеренно установили старую версию пакета Example, а затем обновили ее:
(@v1.8) pkg> st
Status `~/.julia/environments/v1.8/Project.toml`
⌃ [7876af07] Example v0.5.1
Info Packages marked with ⌃ have new versions available and may be upgradable.
(@v1.8) pkg> up
Updating `~/.julia/environments/v1.8/Project.toml`
[7876af07] ↑ Example v0.5.1 ⇒ v0.5.3
Мы видим, что вывод состояния сообщает нам о наличии новой версии и что up обновляет пакет.
Для получения дополнительной информации об управлении пакетами см. раздел «Управление пакетами» в документации по адресу Managing Packages.
До этого момента мы рассмотрели базовые операции управления пакетами: добавление, обновление и удаление пакетов.
Вы, возможно, заметили (@v1.8) в приглашении REPL. Это указывает, что v1.8 является активной средой. Различные среды могут иметь совершенно разные пакеты и версии, установленные в другой среде. Активная среда — это среда, которая будет изменяться командами Pkg, такими как add, rm и update.
Давайте настроим новую среду для экспериментов. Для установки активной среды используйте activate:
(@v1.8) pkg> activate tutorial [ Info: activating new environment at `~/tutorial/Project.toml`.
Pkg сообщает нам о создании новой среды и о том, что эта среда будет сохранена в каталоге ~/tutorial. Путь к среде создается относительно текущей рабочей директории REPL.
Pkg также обновил приглашение REPL, чтобы отразить новую активную среду:
(tutorial) pkg>
Мы можем запросить информацию об активной среде, используя status:
(tutorial) pkg> status
Status `~/tutorial/Project.toml`
(empty environment)
~/tutorial/Project.toml — это расположение файла проекта активной среды. Файл проекта — это файл TOML, в котором Pkg хранит пакеты, которые были явно установлены. Обратите внимание, что эта новая среда пуста. Давайте добавим несколько пакетов и понаблюдаем:
(tutorial) pkg> add Example JSON
...
(tutorial) pkg> status
Status `~/tutorial/Project.toml`
[7876af07] Example v0.5.3
[682c06a0] JSON v0.21.3
Мы видим, что среда tutorial теперь содержит Example и JSON.
Если один и тот же пакет (с той же версией) установлен в нескольких средах, пакет будет загружен и сохранен на жестком диске только один раз. Это делает среды очень легкими и позволяет создавать их свободно. Использование только стандартной среды с огромным количеством пакетов — распространенная ошибка начинающих пользователей Julia. Изучение эффективного использования сред улучшит ваши взаимодействия с пакетами Julia.
Для получения дополнительной информации об средах см. раздел «Работа со средами» в документации по адресу Working with Environments.
Если у вас возникнут трудности, вы можете запросить помощь у Pkg:
(@v1.8) pkg> ?
Вы должны увидеть список доступных команд вместе с краткими описаниями. Вы можете запросить более подробную помощь, указав команду:
(@v1.8) pkg> ?develop
Это руководство должно помочь вам начать работу с Pkg. Pkg предлагает гораздо больше возможностей для эффективного управления пакетами, прочитайте полное руководство, чтобы узнать больше!
© 2009–2024 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors
Licensed under the MIT License.
https://docs.julialang.org/en/v1.10/stdlib/Pkg/