สํารวจตัวจัดการตัวดึงข้อมูลแพคเกจ
แพ็คเกจแต่ละประเภทมีตัวจัดการแพ็คเกจที่สอดคล้องกันซึ่งดูแลการจัดการแพ็คเกจอย่างน้อยหนึ่งด้านต่อไปนี้:
- การติดตั้งและการถอด: การจัดการแพ็คเกจภายในเครื่องบนเครื่องพัฒนา
- เผย แพร่: การผลักดันแพ็คเกจไปยังฟีดแพ็คเกจระยะไกล
- การบริโภค: การดาวน์โหลดและการใช้แพ็คเกจจากฟีดระยะไกล
- ค้น หา: การค้นหาและค้นพบแพ็คเกจในฟีด
- การแก้ปัญหาการพึ่งพา: การติดตั้งการพึ่งพาที่จําเป็นโดยอัตโนมัติ
- การจัดการเวอร์ชัน: การจัดการเวอร์ชันแพ็คเกจและการอัปเดต
ตัวจัดการแพ็คเกจมีเครื่องมือ อินเทอร์เฟซบรรทัดคําสั่ง (CLI) ข้ามแพลตฟอร์มเพื่อจัดการแพ็คเกจและฟีดในเครื่องที่โฮสต์แพ็คเกจ เครื่องมือ CLI นี้เป็นส่วนหนึ่งของการติดตั้งภายในเครื่องบนเครื่องพัฒนา
ผู้จัดการแพ็คเกจทั่วไป
นูเก็ต CLI
วัตถุประสงค์: จัดการแพคเกจ .NET
คําสั่งสําคัญ:
-
nuget install- ติดตั้งแพ็คเกจ -
nuget pack- สร้างแพ็คเกจ -
nuget push- เผยแพร่แพ็กเกจไปยังฟีด -
nuget restore- กู้คืนแพ็คเกจสําหรับโซลูชัน
เครื่อง มือ: NuGet CLI, DOTNET CLI (รวมเข้ากับ .NET SDK)
npm
วัตถุประสงค์: จัดการแพ็คเกจ JavaScript/Node.js
คําสั่งสําคัญ:
-
npm install- ติดตั้งแพ็คเกจ -
npm publish- เผยแพร่แพ็กเกจไปยังฟีด -
npm update- อัปเดตแพ็คเกจ -
npm search- ค้นหาแพ็คเกจ
การกําหนดค่า:package.json กําหนดการขึ้นต่อกันและสคริปต์
มาเวน
วัตถุประสงค์: จัดการแพ็คเกจ Java และสร้างระบบอัตโนมัติ
คําสั่งสําคัญ:
-
mvn install- ติดตั้งสิ่งประดิษฐ์ไปยังที่เก็บในเครื่อง -
mvn deploy- ปรับใช้สิ่งประดิษฐ์ไปยังที่เก็บระยะไกล -
mvn dependency:resolve- แก้ไขและดาวน์โหลดการขึ้นต่อกัน
การกําหนดค่า:pom.xml (Project Object Model) กําหนดโครงสร้างโครงการและการขึ้นต่อกัน
ทางเลือก:Gradle เป็นอีกหนึ่งเครื่องมือสร้างยอดนิยมสําหรับ Java ที่สามารถทํางานร่วมกับที่เก็บ Maven ได้
pip
วัตถุประสงค์: จัดการแพ็คเกจ Python
คําสั่งสําคัญ:
-
pip install- ติดตั้งแพ็คเกจ -
pip uninstall- นําแพ็กเกจออก -
pip list- แสดงรายการแพ็คเกจที่ติดตั้ง -
pip freeze- ส่งออกแพ็คเกจที่ติดตั้งในรูปแบบความต้องการ
การกําหนดค่า:requirements.txt แสดงรายการการขึ้นต่อกันของแพ็กเกจ
นักเทียบท่า CLI
วัตถุประสงค์: จัดการอิมเมจคอนเทนเนอร์
คําสั่งสําคัญ:
-
docker pull- ดาวน์โหลดรูปภาพจากรีจิสทรี -
docker push- อัปโหลดรูปภาพไปยังรีจิสทรี -
docker build- สร้างภาพจาก Dockerfiles -
docker images- แสดงรายการภาพท้องถิ่น
การลงทะเบียน: Docker Hub, Azure Container Registry, รีจิสทรีส่วนตัว
ประโยชน์ของเครื่องมือ CLI
ลักษณะบรรทัดคําสั่งของเครื่องมือมีข้อดีหลายประการ:
- ความสามารถในการเขียนสคริปต์: รวมคําสั่งในสคริปต์เพื่อจัดการแพ็คเกจโดยอัตโนมัติ
- การรวม CI / CD: ใช้ในไปป์ไลน์การสร้างและนําออกใช้สําหรับเวิร์กโฟลว์อัตโนมัติ
- ความสอดคล้อง: คําสั่งเดียวกันใช้ได้กับระบบปฏิบัติการที่แตกต่างกัน
- อัตโนมัติ: สร้าง เผยแพร่ และใช้แพ็คเกจโดยอัตโนมัติ
- การควบคุมเวอร์ชัน: การจัดการแพคเกจสคริปต์ในไฟล์ที่ควบคุมเวอร์ชัน
แนวทางปฏิบัติที่ดีที่สุด: ตามหลักการแล้ว ควรใช้เครื่องมือในการสร้าง และเผยแพร่ไปป์ไลน์ สําหรับ:
- การสร้างแพ็คเกจจากส่วนประกอบที่สร้างขึ้น
- การเผยแพร่แพ็กเกจไปยังฟีดโดยอัตโนมัติ
- การใช้แพ็คเกจระหว่างการสร้าง
- การคืนค่าการขึ้นต่อกันก่อนการคอมไพล์
เครื่องมือสําหรับนักพัฒนาแบบบูรณาการ
นอกจากนี้ เครื่องมือสําหรับนักพัฒนายังสามารถรองรับการทํางานกับผู้จัดการแพ็คเกจแบบบูรณาการ โดยให้ ส่วนต่อประสานผู้ใช้ สําหรับเครื่องมือดิบ
ตัวอย่างของเครื่องมือแบบบูรณาการ:
- วิชวลสตูดิโอ: NuGet Package Manager UI การจัดการแพ็คเกจแบบบูรณาการ
- รหัสสตูดิโอภาพ: ส่วนขยายสําหรับ npm, NuGet และตัวจัดการแพ็คเกจอื่นๆ
- อุปราคา: การรวม Maven (m2eclipse) การรวม Gradle
- แนวคิด IntelliJ : รองรับ Maven และ Gradle ในตัว
- PyCharm: รวมการจัดการแพ็คเกจ pip
ประโยชน์ของเครื่องมือแบบบูรณาการ:
- อินเตอร์เฟซภาพ: ง่ายขึ้นสําหรับนักพัฒนาที่ไม่คุ้นเคยกับ CLI
- การค้นพบ: เรียกดูและค้นหาแพ็คเกจด้วยภาพ
- การติดตั้ง: ติดตั้งแพ็คเกจด้วยการคลิกแทนคําสั่ง
- ปรับ ปรุง: การแจ้งเตือนด้วยภาพของการอัปเดตแพ็คเกจที่มีอยู่
- การแก้ไขข้อขัดแย้ง: ความช่วยเหลือ UI สําหรับการแก้ไขข้อขัดแย้งการขึ้นต่อกัน
การเลือกเครื่องมือ
เมื่อเลือกเครื่องมือการจัดการพัสดุ ให้พิจารณา:
- การตั้งค่าของนักพัฒนา: CLI สําหรับระบบอัตโนมัติ GUI เพื่อความสะดวกในการใช้งาน
- ข้อกําหนด CI/CD: เครื่องมือ CLI เป็นสิ่งจําเป็นสําหรับไปป์ไลน์
- ทักษะของทีม: จับคู่เครื่องมือกับความเชี่ยวชาญของทีม
- ความต้องการของโครงการ: เลือกตามประเภทแพ็คเกจและเวิร์กโฟลว์
นักพัฒนาหลายคนใช้เครื่องมือ CLI และ GUI ร่วมกัน :
- พัฒนาการ: GUI สําหรับการเพิ่มและสํารวจแพ็คเกจอย่างรวดเร็ว
- อัตโนมัติ: CLI สําหรับสร้างสคริปต์และไปป์ไลน์ CI/CD