swiftly 是一個 CLI 工具,用於安裝、管理和在 Swift 工具鏈之間切換,以 Swift 編寫。 swiftly 本身的設計非常容易安裝和運行,其命令介面既靈活又易於使用。整體體驗的靈感來自於 Rust 工具鏈管理器 rustup,並且讓人想起它。
該專案的持續維護和管理由 SSWG 領導。
若要快速下載並安裝 Swift,請在終端機中執行以下命令,然後按照螢幕上的指示進行操作。
curl -L https://swiftlang.github.io/swiftly/swiftly-install.sh | bash
或者,您可以下載 swiftly 二進位文件,它可以自行安裝:
swiftly init
$ swiftly install latest
Fetching the latest stable Swift release...
Installing Swift 5.8.1
Downloaded 488.5 MiB of 488.5 MiB
Extracting toolchain...
Swift 5.8.1 installed successfully!
$ swift --version
Swift version 5.8.1 (swift-5.8.1-RELEASE)
Target: x86_64-unknown-linux-gnu
$PATH
發現哪個工具鏈)目前,swiftly 正處於開發的早期階段,並在 Linux 和 macOS 上支援。有關 swiftly 的預期功能和實現的更多詳細信息,請查看設計文件。
$ swiftly install latest
可以向install
指令提供特定版本的 Swift。
$ swiftly install 5.6.1
如果未指定補丁版本,則 swiftly 將尋找並安裝與提供的次要版本相符的最新補丁版本:
$ swiftly install 5.6
$ swiftly install main-snapshot-2022-01-28
如果未指定日期,則會迅速尋找並安裝最新的可用快照:
$ swiftly install main-snapshot
$ swiftly install 5.7-snapshot-2022-08-30
如果未指定日期,將迅速尋找並安裝與提供的開發分支關聯的最新快照:
$ swiftly install 5.7-snapshot
$ swiftly uninstall 5.6.3
若要卸載與給定次要版本關聯的所有工具鏈,請忽略補丁版本:
$ swiftly uninstall 5.6
$ swiftly uninstall main-snapshot-2022-08-30
$ swiftly uninstall 5.7-snapshot-2022-08-30
若要卸載與給定分支(主分支或發布分支)關聯的所有快照,請省略日期:
$ swiftly uninstall main-snapshot
$ swiftly uninstall 5.7-snapshot
list
指令快速列印安裝的所有工具鏈:
$ swiftly list
「使用」工具鏈將其設定為活動工具鏈,這表示它將是透過 $PATH 找到並透過在 shell 中執行的swift
命令呼叫的工具鏈。必須先安裝工具鏈才能使用它。
您可以提供與swiftly install
相同的版本選擇器來使用工具鏈,包括確切的發布版本“major.minor.patch”和快照。
$ swiftly use latest
$ swiftly use 5.3.1
$ swiftly use 5.3
$ swiftly use 5.3-snapshot
$ swiftly use 5.3-snapshot-2022-08-16
$ swiftly use main-snapshot
$ swiftly use main-snapshot-2024-06-18
使用工具鏈後,shell 中的命令將使用該工具鏈執行:
$ swiftly use x.y.z
$ swift build # Build my package with toolchain version x.y.z
$ clang -c foo.c -o foo.o # Compile this C file using the clang compiler in toolchain version x.y.z
$ lldb # Open the debugger from toolchain version x.y.z
如果您只想使用特定工具鏈執行一個命令,而不必切換回先前使用的命令,則可以使用該版本的swiftly run
命令。此命令使用目前版本的最新快照工具鏈建立目前包:
$ swiftly run swift build +main-snapshot
帶有“+”的參數表示這是要使用的工具鏈的版本選擇器,並支援上面顯示的全系列選擇器和swiftly install
命令。必須安裝工具鏈才能使用該工具鏈運行命令。
更新將給定的工具鏈替換為該工具鏈的更高版本。對於穩定版本,這意味著更新到更高的修補程式、次要版本或主要版本。對於快照,這意味著更新到最新可用的快照。
如果未提供版本,則更新會將目前選取的工具鏈更新為最新的修補程式版本(如果是版本工具鏈)或最新的可用快照(如果是快照)。將選擇新安裝的版本。
$ swiftly update
若要將最新安裝的發行版本更新為最新可用的發行版本,可以提供「最新」版本。請注意,這可能會將工具鏈更新到下一個次要版本甚至主要版本。
swiftly update latest
如果僅指定主要版本,則具有該主要版本的最新安裝的工具鏈將更新為該主要版本的最新可用版本:
swiftly update 5
如果指定了主要版本和次要版本,則與該主要/次要版本關聯的最新安裝的工具鏈將更新為該主要/次要版本的最新可用修補程式版本。
swiftly update 5.3
您也可以指定完整版本以將該工具鏈更新至該主要/次要版本可用的最新補丁:
swiftly update 5.3.1
同樣,要更新與特定版本關聯的最新快照,可以提供“ab-snapshot”版本:
swiftly update 5.3-snapshot
您也可以透過提供main-snapshot
將最新安裝的主快照更新為最新的可用快照:
swiftly update main-snapshot
可以透過包含日期將特定快照工具鏈更新為該分支的最新可用快照:
swiftly update 5.9-snapshot-2023-09-20
list-available
指令可用來列出 Apple 可供安裝的最新工具鏈。
請注意,此命令尚未實現,但它將包含在未來的版本中。
swiftly list-available
可以選擇提供選擇器來縮小結果範圍:
$ swiftly list-available 5.6
$ swiftly list-available main-snapshot
$ swiftly list-available 5.7-snapshot
該指令檢查swiftly
本身是否有新版本,如果有則升級。
請注意,此命令尚未實現,但它將包含在未來的版本中。
swiftly self-update
swiftly 的命令介面中快照工具鏈的規範名稱如下:
<branch>-snapshot-YYYY-MM-DD
但是,swiftly 也接受 swift.org 提供的下載中的快照工具鏈檔案名稱。例如:
swift-DEVELOPMENT-SNAPSHOT-2022-09-10-a
swift-5.7-DEVELOPMENT-SNAPSHOT-2022-08-30-a
選擇規範名稱格式是為了減少引用快照工具鏈所需的擊鍵次數,但在複製/貼上從其他地方提供的工具鏈名稱時,較長的形式也很有用。
歡迎來到斯威夫特社群!
歡迎並鼓勵對 Swiftly 做出貢獻!請參閱 Swift 貢獻指南並查看社群的結構。
要成為一個真正偉大的社區,Swift 需要歡迎來自各行各業、具有不同背景和豐富經驗的開發者。一個多元化、友善的社區將會有更多偉大的想法、更獨特的觀點、並產生更多偉大的程式碼。我們將努力工作,讓 Swift 社群歡迎所有人。
為了明確我們對會員的期望,Swift 採用了貢獻者契約定義的行為準則。該文件在許多開源社群中使用,我們認為它很好地闡明了我們的價值觀。有關更多信息,請參閱行為準則。
apt
或yum
)安裝 Swift? Swift.org 目前提供實驗性.rpm
和.deb
軟體包,讓您可以透過軟體包管理器安裝 Swift。雖然這些是安裝和更新單一版本 Swift 的有效方法,但它們不太適合安裝多個可以輕鬆切換的 Swift 工具鏈的任務。 swiftly 的目標受眾是為了測試其程式庫和應用程式而在版本之間切換的 Swift 開發人員。 .deb
和.rpm
目前也不提供對快照工具鏈的支援。
swiftenv 是一個現有的 Swift 版本管理器,它已經擁有 swift 最終將擁有的大部分功能。這是一個很棒的工具,如果它是您工作流程的一部分,那麼我們鼓勵您繼續使用它!也就是說,swiftly 在以下幾個方面有所不同:
swiftly 是由 Swift 伺服器工作小組領導的社群驅動項目,透過此次合作,swiftly 最終將成為 Swift 工具鏈的官方安裝工具。作為實現這一目標的第一步,swiftly 將協助通知 Swift 專案維護的 API 端點的創建,它將用於檢索有關可安裝哪些工具鏈並驗證其預期簽名的資訊。 swiftenv 目前為此使用第三方 API 層。使用官方 API 可以減少安全漏洞的可能性,還可以降低影響 Swift 安裝的停機風險。
swiftly 將以 Swift 編寫,我們認為這對於可維護性和鼓勵社群貢獻很重要。
迅速為安裝和管理快照工具鏈提供一流的支援。
swiftly 內建了對更新工具鏈的支援。
swiftly 已針對易於安裝進行了最佳化——可以使用類似於 Homebrew 和 rustup 的 bash 單行程式碼來完成。此外,swiftly 不需要在使用者係統上安裝任何系統相依性。雖然 swiftenv 也相對容易安裝,但它確實涉及克隆 git 儲存庫或使用 Homebrew,並且需要一些系統依賴項(例如 bash、curl、tar)。