Swiftly เป็นเครื่องมือ CLI สำหรับการติดตั้ง จัดการ และสลับระหว่าง Toolchains ของ Swift ซึ่งเขียนด้วยภาษา Swift Swiftly ได้รับการออกแบบให้ติดตั้งและใช้งานได้ง่ายมาก และอินเทอร์เฟซคำสั่งได้รับการออกแบบให้มีความยืดหยุ่นในขณะเดียวกันก็ใช้งานง่าย ประสบการณ์โดยรวมได้รับแรงบันดาลใจและให้ความรู้สึกชวนให้นึกถึงความขัดข้องของผู้จัดการห่วงโซ่เครื่องมือของ Rust
การบำรุงรักษาและการดูแลโครงการนี้อย่างต่อเนื่องนำโดย SSWG
หากต้องการดาวน์โหลดอย่างรวดเร็วและติดตั้ง Swift ให้รันสิ่งต่อไปนี้ในเทอร์มินัลของคุณ จากนั้นทำตามคำแนะนำบนหน้าจอ
curl -L https://swiftlang.github.io/swiftly/swiftly-install.sh | bash
หรือคุณสามารถดาวน์โหลดไบนารี่ที่รวดเร็วและสามารถติดตั้งเองได้:
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
)ขณะนี้อยู่ในขั้นเริ่มต้นของการพัฒนาอย่างรวดเร็ว และได้รับการสนับสนุนบน Linux และ macOS หากต้องการข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับฟีเจอร์และการนำไปใช้งานของ Swiftly โปรดดูเอกสารการออกแบบ
$ swiftly install latest
สามารถระบุเวอร์ชันเฉพาะของ Swift ให้กับคำสั่ง install
$ swiftly install 5.6.1
หากไม่ได้ระบุเวอร์ชันแพตช์ ระบบจะค้นหาและติดตั้งเวอร์ชันแพตช์ล่าสุดที่ตรงกับเวอร์ชันรองที่ให้ไว้อย่างรวดเร็ว:
$ 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
หากต้องการถอนการติดตั้ง toolchains ทั้งหมดที่เกี่ยวข้องกับรุ่นรอง ให้ละเว้นเวอร์ชันแพตช์:
$ 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
จะพิมพ์ toolchains ทั้งหมดที่ติดตั้งอย่างรวดเร็ว:
$ swiftly list
“การใช้” toolchain จะกำหนดให้เป็น toolchain ที่ใช้งานอยู่ ซึ่งหมายความว่าจะเป็น toolchain ที่พบผ่าน $PATH และเรียกใช้ผ่านคำสั่ง swift
ที่ดำเนินการในเชลล์ ต้องติดตั้ง toolchain ก่อนจึงจะสามารถใช้งานได้
คุณสามารถจัดเตรียมตัวเลือกเวอร์ชันเดียวกันกับที่คุณใช้ใน swiftly install
เพื่อใช้ toolchain รวมถึงเวอร์ชันรีลีค "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
หลังจากที่คุณใช้ toolchain คำสั่งของคุณที่เชลล์จะทำงานด้วย toolchain นั้น:
$ 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
หากคุณต้องการรันเพียงคำสั่งเดียวด้วย toolchain เฉพาะโดยไม่ต้องสลับกลับไปใช้คำสั่งที่คุณใช้ก่อนหน้านี้ คุณสามารถใช้คำสั่ง swiftly run
กับเวอร์ชันได้ คำสั่งนี้สร้างแพ็คเกจปัจจุบันของคุณด้วย Snapshot Toolchain ล่าสุดของรีลีสปัจจุบัน:
$ swiftly run swift build +main-snapshot
พารามิเตอร์ที่มีเครื่องหมาย "+" บ่งชี้ว่านี่คือตัวเลือกเวอร์ชันของ toolchain ที่จะใช้และสนับสนุนตัวเลือกทั้งหมดที่แสดงด้านบน และด้วยคำสั่ง swiftly install
ต้องติดตั้ง toolchain เพื่อรันคำสั่งด้วย toolchain นั้น
การอัปเดตจะแทนที่ toolchain ที่กำหนดด้วย toolchain เวอร์ชันใหม่กว่า สำหรับรุ่นที่เสถียร หมายถึงการอัปเดตเป็นแพตช์ที่ใหม่กว่า เวอร์ชันรอง หรือเวอร์ชันหลัก สำหรับสแนปชอต หมายถึงการอัปเดตเป็นสแน็ปช็อตที่มีอยู่ล่าสุด
หากไม่มีการระบุเวอร์ชัน การอัปเดตจะอัปเดต Toolchain ที่เลือกในปัจจุบันไปเป็นแพตช์ล่าสุดหากเป็น Toolchain ที่วางจำหน่ายหรือ Snapshot ล่าสุดที่มีอยู่หากเป็น Snapshot เวอร์ชันที่ติดตั้งใหม่จะถูกเลือก
$ swiftly update
หากต้องการอัปเดตเวอร์ชันที่ติดตั้งล่าสุดให้เป็นเวอร์ชันล่าสุดที่มี สามารถระบุเวอร์ชัน "ล่าสุด" ได้ โปรดทราบว่าการดำเนินการนี้อาจอัปเดต toolchain เป็นเวอร์ชันรองหรือเวอร์ชันหลักถัดไป
swiftly update latest
หากระบุเฉพาะเวอร์ชันหลัก Toolchain ที่ติดตั้งล่าสุดพร้อมกับเวอร์ชันหลักนั้นจะได้รับการอัปเดตเป็นรุ่นล่าสุดที่มีอยู่ของเวอร์ชันหลักนั้น:
swiftly update 5
หากมีการระบุเวอร์ชันหลักและเวอร์ชันรอง Toolchain ที่ติดตั้งล่าสุดซึ่งเชื่อมโยงกับเวอร์ชันหลัก/รองนั้นจะได้รับการอัปเดตเป็นแพตช์ล่าสุดที่มีอยู่สำหรับเวอร์ชันหลัก/รองนั้น
swiftly update 5.3
คุณยังสามารถระบุเวอร์ชันเต็มเพื่ออัปเดต toolchain ให้เป็นแพตช์ล่าสุดสำหรับเวอร์ชันหลัก/รองนั้นได้:
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
สามารถใช้เพื่อแสดงรายการ toolchains ล่าสุดที่ Apple ได้เปิดให้ติดตั้ง
โปรดทราบว่าคำสั่งนี้ยังไม่ได้ใช้งาน แต่จะรวมอยู่ในรุ่นต่อๆ ไป
swiftly list-available
สามารถเลือกระบุตัวเลือกเพื่อจำกัดผลลัพธ์ให้แคบลงได้:
$ swiftly list-available 5.6
$ swiftly list-available main-snapshot
$ swiftly list-available 5.7-snapshot
คำสั่งนี้จะตรวจสอบเพื่อดูว่ามีเวอร์ชันใหม่ swiftly
หรือไม่และจะอัปเกรดเป็นเวอร์ชันเหล่านั้นหากมี
โปรดทราบว่าคำสั่งนี้ยังไม่ได้ใช้งาน แต่จะรวมอยู่ในรุ่นต่อๆ ไป
swiftly self-update
ชื่อมาตรฐานสำหรับ toolchain สแน็ปช็อตในอินเทอร์เฟซคำสั่งของ Swiftly มีดังต่อไปนี้:
<branch>-snapshot-YYYY-MM-DD
อย่างไรก็ตาม ยังยอมรับชื่อไฟล์ toolchain สแน็ปช็อตจากการดาวน์โหลดที่จัดทำโดย Swift.org อย่างรวดเร็วอีกด้วย ตัวอย่างเช่น:
swift-DEVELOPMENT-SNAPSHOT-2022-09-10-a
swift-5.7-DEVELOPMENT-SNAPSHOT-2022-08-30-a
รูปแบบชื่อ Canonical ได้รับเลือกเพื่อลดการกดแป้นพิมพ์ที่จำเป็นในการอ้างอิงถึง Toolchain สแน็ปช็อต แต่รูปแบบที่ยาวกว่ายังมีประโยชน์เมื่อคัดลอก/วางชื่อ Toolchain ที่มาจากที่อื่น
ยินดีต้อนรับสู่ชุมชน Swift!
เรายินดีและสนับสนุนการมีส่วนร่วมใน Swiftly! โปรดดูคู่มือการสนับสนุน Swift และตรวจสอบโครงสร้างของชุมชน
ในการเป็นชุมชนที่ยอดเยี่ยมอย่างแท้จริง Swift จำเป็นต้องต้อนรับนักพัฒนาจากทุกสาขาอาชีพ ที่มีภูมิหลังที่แตกต่างกัน และมีประสบการณ์ที่หลากหลาย ชุมชนที่มีความหลากหลายและเป็นมิตรจะมีแนวคิดที่ยอดเยี่ยมมากขึ้น มีมุมมองที่เป็นเอกลักษณ์มากขึ้น และสร้างโค้ดที่ยอดเยี่ยมมากขึ้น เราจะทำงานอย่างเต็มที่เพื่อให้ชุมชน Swift ยินดีต้อนรับทุกคน
เพื่อให้ชัดเจนว่าสิ่งที่คาดหวังจากสมาชิกของเรา Swift ได้นำหลักจรรยาบรรณที่กำหนดโดย Contributor Covenant มาใช้ เอกสารนี้ใช้ในชุมชนโอเพ่นซอร์สหลายแห่ง และเราคิดว่ามันสะท้อนถึงคุณค่าของเราได้เป็นอย่างดี สำหรับข้อมูลเพิ่มเติม โปรดดูหลักจรรยาบรรณ
apt
หรือ yum
) ปัจจุบัน Swift.org มีแพ็คเกจ .rpm
และ .deb
รุ่นทดลองที่ให้คุณติดตั้ง Swift ผ่านตัวจัดการแพ็คเกจของคุณได้ แม้ว่าสิ่งเหล่านี้จะเป็นวิธีที่มีประสิทธิภาพในการติดตั้งและอัปเดต Swift เวอร์ชันเดียว แต่ก็ไม่เหมาะกับงานติดตั้งกลุ่มเครื่องมือ Swift หลายตัวที่คุณสามารถสลับไปมาได้อย่างง่ายดาย กลุ่มเป้าหมายของ Swiftly คือนักพัฒนา Swift ที่สลับระหว่างเวอร์ชันต่างๆ เพื่อวัตถุประสงค์ในการทดสอบไลบรารีและแอปพลิเคชันของตน ขณะนี้ .deb
และ .rpm
ยังไม่รองรับกลุ่มเครื่องมือสแน็ปช็อต
Swiftenv เป็นตัวจัดการเวอร์ชัน Swift ที่มีอยู่แล้วซึ่งมีฟังก์ชันมากมายที่ในที่สุดจะมีอย่างรวดเร็ว มันเป็นเครื่องมือที่ยอดเยี่ยม และหากมันเป็นส่วนหนึ่งของขั้นตอนการทำงานของคุณ เราขอแนะนำให้คุณใช้มันต่อไป! ที่กล่าวว่าอย่างรวดเร็วคือ/จะแตกต่างกันสองสามวิธี:
Swiftly กำลังถูกสร้างขึ้นในฐานะความพยายามที่ขับเคลื่อนโดยชุมชนซึ่งนำโดยเวิร์กกรุ๊ปเซิร์ฟเวอร์ Swift และด้วยการทำงานร่วมกันนี้ ในที่สุด Swiftly ก็จะกลายเป็นเครื่องมือการติดตั้งอย่างเป็นทางการสำหรับ Toolchains ของ Swift ในที่สุด ในขั้นตอนแรก จะช่วยแจ้งการสร้างจุดสิ้นสุด API ที่ดูแลโดยโปรเจ็กต์ Swift อย่างรวดเร็ว ซึ่งจะใช้เพื่อดึงข้อมูลเกี่ยวกับ toolchains ที่พร้อมสำหรับการติดตั้ง และเพื่อตรวจสอบลายเซ็นที่คาดหวัง ปัจจุบัน Swiftenv ใช้เลเยอร์ API ของบุคคลที่สามสำหรับสิ่งนี้ การใช้ API อย่างเป็นทางการจะช่วยลดช่องทางสำหรับช่องโหว่ด้านความปลอดภัย และยังลดความเสี่ยงของการหยุดทำงานที่ส่งผลต่อการติดตั้ง Swift
Swiftly จะเขียนด้วยภาษา Swift ซึ่งเราคิดว่ามีความสำคัญต่อการบำรุงรักษาและส่งเสริมการมีส่วนร่วมของชุมชน
ได้รับการสนับสนุนชั้นหนึ่งอย่างรวดเร็วสำหรับการติดตั้งและจัดการ Toolchas สแน็ปช็อต
ได้สร้างการสนับสนุนการอัปเดต toolchains อย่างรวดเร็ว
ได้รับการปรับให้เหมาะสมอย่างรวดเร็วเพื่อความสะดวกในการติดตั้ง - สามารถทำได้ด้วย bash one-liner ที่คล้ายกับ Homebrew และสนิม นอกจากนี้ ไม่จำเป็นต้องติดตั้งการพึ่งพาระบบใดๆ บนระบบของผู้ใช้อย่างรวดเร็ว แม้ว่า Swiftenv จะติดตั้งได้ค่อนข้างง่าย แต่ก็เกี่ยวข้องกับการโคลนพื้นที่เก็บข้อมูล git หรือใช้ Homebrew และจำเป็นต้องมีการพึ่งพาระบบบางอย่าง (เช่น bash, curl, tar)