Pkg

Pkg 是 Julia 的內建套件管理員,處理安裝、更新和移除套件等操作。

注意

以下是 Pkg 的非常簡短介紹。如需有關 Project.toml 檔案、Manifest.toml 檔案、套件版本相容性 ([compat])、環境、註冊表等的詳細資訊,強烈建議閱讀完整手冊,您可以在這裡取得:https://pkgdocs.julialang.org

以下是 Pkg 基本功能的快速概觀。它應該可以幫助新使用者熟悉 Pkg 的基本功能,例如新增和移除套件,以及使用環境。

注意

為了讓本基礎指南保持重點,此部分省略了部分 Pkg 輸出。這有助於保持良好的步調,不會陷入細節中。如果您需要更多詳細資訊,請參閱 Pkg 手冊的後續部分。

注意

本指南使用 Pkg REPL 來執行 Pkg 指令。對於非互動式使用,我們建議使用 Pkg API。Pkg API 在 Pkg 文件的 API 參考 部分中有完整的說明。

Pkg 附帶一個 REPL。從 Julia REPL 按下 ] 進入 Pkg REPL。要返回 Julia REPL,請按 Ctrl+C 或退格鍵(當 REPL 游標位於輸入開頭時)。

進入 Pkg REPL 後,您應該會看到以下提示

(@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 指令有短版本和長版本的指令,例如 statusst

要移除套件,請使用 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 會升級套件。

有關管理套件的更多資訊,請參閱文件中的 管理套件 部分。

到目前為止,我們已經介紹了基本的套件管理:新增、更新和移除套件。

您可能已注意到 REPL 提示中的 (@v1.8)。這讓我們知道 v1.8活動環境。不同的環境可以安裝與其他環境完全不同的套件和版本。活動環境是會受到 Pkg 指令(例如 addrmupdate)修改的環境。

讓我們設定一個新的環境,以便我們進行實驗。若要設定活動環境,請使用 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 環境現在包含 ExampleJSON

注意

如果您在多個環境中安裝了相同的套件(版本相同),則只會下載該套件並將其儲存在硬碟上一次。這使得環境非常輕量,而且可以有效地免費建立。初學者在 Julia 中常犯的錯誤,就是只使用預設環境,其中包含大量的套件。學習如何有效地使用環境將有助於您體驗 Julia 套件。

有關環境的更多資訊,請參閱文件中的 使用環境 部分。

如果您遇到問題,可以向 Pkg 尋求協助

(@v1.8) pkg> ?

您應該會看到可用命令的清單,以及簡短的說明。您可以透過指定命令來尋求更詳細的協助

(@v1.8) pkg> ?develop

本指南應有助您開始使用 PkgPkg 在強大的套件管理方面有更多功能,請閱讀完整手冊以了解更多資訊!