Kelp เข้าร่วมรายชื่อทางเลือกที่เพิ่มขึ้นของ Homebrew ในขณะที่ภูมิทัศน์การจัดการแพ็คเกจของ macOS พัฒนาขึ้น

BigGo Editorial Team
Kelp เข้าร่วมรายชื่อทางเลือกที่เพิ่มขึ้นของ Homebrew ในขณะที่ภูมิทัศน์การจัดการแพ็คเกจของ macOS พัฒนาขึ้น

ระบบนิเวศการจัดการแพ็คเกจของ macOS กำลังเข้าสู่ยุคฟื้นฟู โดยมี Kelp ปรากฏตัวเป็นผู้แข่งขันล่าสุดในกลุ่มทางเลือกที่เพิ่มขึ้นเรื่อยๆ เมื่อเทียบกับ Homebrew ที่ครองตลาดอยู่ เครื่องมือที่พัฒนาด้วยภาษา Go นี้มีเป้าหมายเพื่อทำให้การติดตั้งแพ็คเกจไบนารีบน macOS ง่ายขึ้น โดยใช้ประโยชน์โดยตรงจาก GitHub releases เพื่อแก้ไขปัญหาเฉพาะที่สร้างความหงุดหงิดให้กับผู้ใช้ Homebrew

ความไม่พอใจต่อ Homebrew ที่ผลักดันให้เกิดทางเลือกใหม่

นักพัฒนาจำนวนมากได้แสดงความไม่พอใจที่เพิ่มขึ้นต่อพฤติกรรมของ Homebrew โดยเฉพาะแนวโน้มที่จะอัปเดตแพ็คเกจทั้งหมดโดยอัตโนมัติเมื่อติดตั้งแพ็คเกจใหม่เพียงรายการเดียว พฤติกรรมนี้นำไปสู่การหยุดชะงักที่สำคัญสำหรับผู้ใช้บางราย โดยผู้แสดงความคิดเห็นรายหนึ่งได้อธิบายว่าการติดตั้งแพ็คเกจธรรมดาส่งผลให้เกิดการอัปเดตทั้งระบบนานหนึ่งชั่วโมง ตามด้วยการแก้ไขปัญหาเป็นเวลาหนึ่งสัปดาห์เพื่อให้การทำงานกลับมาเป็นปกติ ประสบการณ์เหล่านี้ได้เปิดโอกาสให้กับทางเลือกอื่นๆ เช่น Kelp ซึ่งสัญญาว่าจะมีวิธีการจัดการแพ็คเกจที่สามารถควบคุมได้มากกว่า

สัปดาห์ที่แล้วผมต้องดาวน์โหลดแพ็คเกจที่จำเป็นผ่าน Homebrew มันเป็นเวลานานมากแล้วที่ผมไม่ได้ดาวน์โหลดอะไรเลย เนื่องจากอุปกรณ์ส่วนตัวของผมมีความเสถียรมานาน ทำให้แพ็คเกจต่างๆ ล้าสมัยไปแล้ว Homebrew ตัดสินใจที่จะอัปเกรดทุกอย่างก่อนที่จะเริ่มการดาวน์โหลดใหม่ ทั้งหมดนี้เกิดขึ้นโดยไม่มีการแจ้งเตือนผม หนึ่งชั่วโมงต่อมา ผมพบว่าอุปกรณ์ของผมเต็มไปด้วยปัญหา และผมต้องใช้เวลาทั้งสัปดาห์เพื่อกลับมาใช้งานได้ตามปกติ

ในขณะที่ผู้ใช้บางรายได้ค้นพบตัวแปรสภาพแวดล้อมเช่น HOMEBREW_NO_AUTO_UPDATE=1 และ HOMEBREW_NO_ANALYTICS=1 ที่สามารถบรรเทาพฤติกรรมการอัปเดตเชิงรุกของ Homebrew ได้ หลายคนตั้งคำถามว่าทำไมสิ่งเหล่านี้ไม่ได้เป็นการตั้งค่าเริ่มต้น การสนทนาในชุมชนเผยให้เห็นตัวแปรสภาพแวดล้อมเพิ่มเติมที่สามารถปรับแต่งพฤติกรรมของ Homebrew ได้มากขึ้น ซึ่งบ่งชี้ว่าการกำหนดค่าเริ่มต้นของเครื่องมือนี้ให้ความสำคัญกับความสะดวกมากกว่าการควบคุมโดยผู้ใช้

ตัวจัดการแพ็คเกจทางเลือกแบบ Homebrew ที่น่าสนใจ

เครื่องมือ ภาษา จุดเน้น คุณสมบัติหลัก
Kelp Go การปล่อยไบนารีบน GitHub การกำหนดค่า JSON แบบง่าย, การดาวน์โหลดไบนารีโดยตรง
MacPorts TCL แพ็คเกจที่คอมไพล์แล้ว ระบบนิเวศที่เติบโตเต็มที่, การติดตั้งแบบแยกส่วน
Nix/nix-darwin Nix สภาพแวดล้อมที่ทำซ้ำได้ แพ็คเกจที่ไม่เปลี่ยนแปลง, รองรับการย้อนกลับ
Mise ไม่ทราบ การจัดการเวอร์ชัน การพึ่งพาเฉพาะโปรเจค, ตัวรันเนอร์
Pixi Rust แพ็คเกจ Conda สภาพแวดล้อมที่แยกส่วนและรวดเร็วสำหรับแต่ละเครื่องมือ
Bin ไม่ทราบ ไบนารี GitHub การจัดการไบนารีอย่างง่าย
Eget ไม่ทราบ ไบนารี GitHub การดาวน์โหลดไบนารีโดยตรง
Devbox ไม่ทราบ สภาพแวดล้อมการพัฒนา อิงตาม Nix, การแยกส่วนโปรเจค

ตัวแปรสภาพแวดล้อม Homebrew ที่พบบ่อย

  • HOMEBREW_NO_AUTO_UPDATE=1 - ป้องกันการอัปเดตอัตโนมัติ
  • HOMEBREW_NO_ANALYTICS=1 - ปิดการเก็บข้อมูลวิเคราะห์
  • HOMEBREW_NO_EMOJI=1 - ปิดการใช้อิโมจิในผลลัพธ์
  • HOMEBREW_NO_ENV_HINTS=1 - ปิดคำแนะนำเกี่ยวกับสภาพแวดล้อม
  • HOMEBREW_NO_INSTALL_CLEANUP=1 - ป้องกันการทำความสะอาดอัตโนมัติ
  • HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 - ข้ามการอัปเดตการพึ่งพา

กลุ่มผู้แข่งขันที่แออัด

Kelp เข้าสู่พื้นที่ที่มีการแข่งขันสูงขึ้นเรื่อยๆ ทางเลือกที่มีมานานอย่าง MacPorts และ pkgsrc ได้รับการเสริมด้วยตัวเลือกใหม่ๆ รวมถึง Nix/nix-darwin, Mise, Pixi, Bin, Eget, Devbox และ Ubi แต่ละตัวนำเสนอวิธีการจัดการแพ็คเกจที่แตกต่างกัน ด้วยระดับความซับซ้อนและชุดคุณสมบัติที่หลากหลาย

Nix โดยเฉพาะอย่างยิ่ง ได้รับความสนใจอย่างมากในการสนทนา โดยผู้สนับสนุนเน้นย้ำถึงแคตตาล็อกแพ็คเกจที่ครอบคลุมและความสามารถในการแยกที่ทรงพลัง อย่างไรก็ตาม นักวิจารณ์ชี้ให้เห็นถึงเส้นโค้งการเรียนรู้ที่ชัน ไวยากรณ์คำสั่งที่ซับซ้อน และปัญหาความเข้ากันได้เป็นครั้งคราวบน macOS ความตึงเครียดนี้แสดงให้เห็นถึงการแลกเปลี่ยนพื้นฐานระหว่างพลังและความเรียบง่ายที่กำหนดภูมิทัศน์การจัดการแพ็คเกจ

ผู้แสดงความคิดเห็นหลายรายสังเกตว่าเครื่องมือที่เรียบง่ายกว่าซึ่งมุ่งเน้นไปที่กรณีการใช้งานเฉพาะอาจได้รับความนิยมมากขึ้น เครื่องมือเช่น Bin และ Eget มุ่งเป้าไปที่ GitHub binary releases โดยเฉพาะ - ซึ่งเป็นช่องว่างเดียวกับที่ Kelp จัดการ สิ่งนี้บ่งชี้ถึงแนวโน้มที่มุ่งสู่เครื่องมือเฉพาะทางที่เก่งในงานที่แคบกว่าแทนที่จะพยายามให้โซลูชันที่ครอบคลุม

แนวทางและความแตกต่างของ Kelp

Kelp แยกตัวเองด้วยวิธีการที่ตรงไปตรงมาในการจัดการแพ็คเกจไบนารี แทนที่จะรอการอัปเดตสูตรหรือจัดการกับการพึ่งพาที่ซับซ้อน มันดาวน์โหลดไบนารีโดยตรงจาก GitHub releases ไปยังตำแหน่งกลางและทำให้พวกมันพร้อมใช้งานใน PATH ของผู้ใช้ วิธีการนี้มอบความรวดเร็วและความเรียบง่ายสำหรับผู้ใช้ที่ทำงานหลักกับเครื่องมือไบนารีแบบสแตนด์อโลน

เครื่องมือนี้รองรับการระบุเวอร์ชัน การตรวจสอบการอัปเดต และแม้แต่การติดตั้งแพ็คเกจจากแหล่งที่ไม่ใช่ GitHub โดยการให้ลิงก์ดาวน์โหลดโดยตรง การกำหนดค่าของมันถูกเก็บไว้ในไฟล์ JSON อย่างง่าย ทำให้มีความโปร่งใสและพกพาได้ระหว่างระบบต่างๆ ปรัชญาการออกแบบนี้สอดคล้องกับผู้ใช้ที่ต้องการการควบคุมและความคาดการณ์ได้มากขึ้นในสภาพแวดล้อมการพัฒนาของพวกเขา

อย่างไรก็ตาม ผู้แสดงความคิดเห็นบางรายได้ยกคำถามสำคัญเกี่ยวกับความปลอดภัยและความไว้วางใจ ไม่เหมือนกับสูตรที่คัดสรรของ Homebrew ซึ่งได้รับการดูแลและตรวจสอบโดยชุมชน วิธีการดาวน์โหลดไบนารีโดยตรงของ Kelp วางความรับผิดชอบมากขึ้นให้กับผู้ใช้ในการตรวจสอบความน่าเชื่อถือของแพ็คเกจ นี่เป็นข้อพิจารณาสำคัญสำหรับนักพัฒนาที่ประเมินทางเลือกในการจัดการแพ็คเกจ

อนาคตของการจัดการแพ็คเกจ macOS

การแพร่หลายของเครื่องมือจัดการแพ็คเกจบ่งชี้ถึงการแตกแยกของระบบนิเวศ โดยมีโซลูชันต่างๆ ที่เหมาะสมกับขั้นตอนการทำงานและลำดับความสำคัญที่แตกต่างกัน ความหลากหลายนี้สะท้อนถึงความต้องการที่หลากหลายของนักพัฒนา macOS และความซับซ้อนที่มีอยู่ในการจัดการการพึ่งพาซอฟต์แวร์

ผู้ใช้บางรายกำลังใช้วิธีการแบบผสมผสาน โดยใช้หลายเครื่องมือสำหรับวัตถุประสงค์ที่แตกต่างกัน - อาจจะใช้ Homebrew สำหรับแอปพลิเคชัน GUI, Nix สำหรับเครื่องมือการพัฒนา และตัวจัดการเบาๆ เช่น Kelp สำหรับไบนารีจาก GitHub กลยุทธ์ที่ปฏิบัติได้จริงนี้ช่วยให้นักพัฒนาใช้ประโยชน์จากจุดแข็งของแต่ละระบบในขณะที่หลีกเลี่ยงจุดอ่อนของแต่ละระบบ

ในขณะที่ภูมิทัศน์ยังคงพัฒนาต่อไป เครื่องมือที่สร้างความสมดุลที่เหมาะสมระหว่างความเรียบง่าย ความยืดหยุ่น และความปลอดภัยมีแนวโน้มที่จะได้รับการยอมรับ การมุ่งเน้นของ Kelp ในการแก้ไขปัญหาเฉพาะแทนที่จะแทนที่ Homebrew ทั้งหมดเป็นวิธีการที่ปฏิบัติได้จริงซึ่งอาจตอบสนองกับนักพัฒนาที่มองหาการปรับปรุงเพิ่มเติมในขั้นตอนการทำงานของพวกเขา

อ้างอิง: kelp