กลับไปหน้าบทความ

อ่าน 4 นาที

Nix (โปรแกรมจัดการแพ็กเกจ)

Nix เป็น ตัวจัดการแพ็ก เกจข้ามแพลตฟอร์ม สำหรับ ระบบ ที่คล้าย Unix และเป็น ภาษาฟังก์ชัน สำหรับการกำหนดค่าระบบเหล่านั้น ซึ่งคิดค้นขึ้นในปี พ.ศ. 2546 [ 7 ] โดย Eelco Dolstra

Nix (โปรแกรมจัดการแพ็กเกจ)

ห้าม
ผู้เขียนต้นฉบับอีลโค ดอลสตรา
ปล่อย15 มิถุนายน 2546 ( 15 มิถุนายน 2546 )
เวอร์ชันเสถียร
2.34.7 [ 1 ] แก้ไขข้อมูลนี้บนวิกิดาต้า / 4 พฤษภาคม 2026 ( 4 พฤษภาคม 2569 )
เขียนเป็นC++, [ 2 ] Nix [ 3 ] แก้ไขข้อมูลนี้บนวิกิดาต้า
แพลตฟอร์มลินุกซ์, ดาร์วิน, ฟรีบีเอสดี, [ 4 ]โอเพนบีเอสดี[ 5 ] แก้ไขข้อมูลนี้บนวิกิดาต้า
พิมพ์ตัวจัดการแพ็กเกจเชิงฟังก์ชันล้วนๆ ซอฟต์แวร์โอเพนซอร์สและฟรี การใช้งานภาษาโปรแกรม การใช้งานอ้างอิง ตัวแปลภาษา แก้ไขข้อมูลนี้บนวิกิดาต้า
ใบอนุญาตใบอนุญาตสาธารณะทั่วไปของ GNU เวอร์ชัน 2.1 [ 6 ] แก้ไขข้อมูลนี้บนวิกิดาต้า
เว็บไซต์nixos.org
ที่เก็บข้อมูล
  • github.com/NixOS/nix

Nixเป็นตัวจัดการแพ็กเกจข้ามแพลตฟอร์ม สำหรับ ระบบ ที่คล้าย Unixและเป็นภาษาฟังก์ชันสำหรับการกำหนดค่าระบบเหล่านั้น ซึ่งคิดค้นขึ้นในปี พ.ศ. 2546 [ 7 ]โดย Eelco Dolstra

เข้าใกล้

ตัวจัดการแพ็กเกจ Nix ใช้โมเดลที่แพ็กเกจซอฟต์แวร์แต่ละรายการจะถูกติดตั้งลงในไดเร็กทอรีที่ไม่ซ้ำกันซึ่งมีเนื้อหาที่ไม่สามารถเปลี่ยนแปลงได้ ชื่อไดเร็กทอรีเหล่านี้สอดคล้องกับแฮชเข้ารหัสลับที่คำนึงถึงการพึ่งพาของแพ็กเกจทั้งหมด รวมถึงแพ็กเกจอื่นๆ ที่จัดการโดย Nix ด้วยเหตุนี้ ชื่อแพ็กเกจของ Nix จึงระบุเนื้อหาได้ เนื่องจากแพ็กเกจที่มีชื่อเดียวกันจะมีอินพุตและแพลตฟอร์มการสร้างเดียวกัน และด้วยเหตุนี้จึงได้ผลลัพธ์การสร้างที่เหมือนกัน[ 8 ]

การดำเนินการ

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

การพึ่งพาอาศัยกันระหว่างไฟล์ตามที่ประกาศไว้ในภาษา Nix จะถูกติดตามและเก็บรักษาไว้ใน "Nix store" โดยอัตโนมัติ[ 10 ]ไฟล์ใหม่ใน Nix store จะถูกสร้างขึ้นผ่าน "derivations" derivation คือโครงสร้างข้อมูลถาวรที่ระบุไฟล์ปฏิบัติการ อาร์กิวเมนต์ และตัวแปรสภาพแวดล้อมสำหรับการเรียกใช้ (ดูexecve) และไฟล์อื่นๆ ที่จะอ่านจาก Nix store จากนั้นไฟล์ปฏิบัติการจะถูกเรียกใช้ในแซนด์บ็อกซ์ที่ห้ามการเข้าถึงสิ่งใดๆ นอกเหนือจากไฟล์อินพุตที่ระบุไว้อย่างชัดเจน และอนุญาตให้เขียนไปยังเส้นทางเอาต์พุตที่กำหนดเท่านั้น Nix จะเก็บรักษาข้อมูลการพึ่งพาอาศัยกันในไฟล์เอาต์พุตโดยการสแกนหาแฮชเฉพาะที่ใช้สำหรับชื่อไดเร็กทอรีแพ็กเกจ[ 8 ]

การติดตามการอ้างอิงอัตโนมัติช่วยให้มั่นใจได้ถึงความสมบูรณ์ของแพ็กเกจ แม้ว่าจะมีการถ่ายโอนข้ามเครื่องก็ตาม นอกจากนี้ยังช่วยให้สามารถเก็บกวาดแพ็กเกจที่ไม่ได้ใช้เมื่อไม่มีแพ็กเกจอื่นใดขึ้นอยู่กับแพ็กเกจเหล่านั้น แม้ว่าจะมีความต้องการพื้นที่จัดเก็บข้อมูลมากขึ้น แต่การอัปเกรดทั้งหมดใน Nix รับประกันได้ว่าจะเป็นแบบอะตอมิกและสามารถย้อนกลับ ได้อย่างมีประสิทธิภาพ ชื่อไดเร็กทอรีที่ไม่ซ้ำกันช่วยให้สามารถติดตั้งแพ็กเกจจำนวนมากที่มีไลบรารีที่ใช้ร่วมกันเวอร์ชันต่างๆ กันได้ และอ้างว่าสามารถกำจัดสิ่งที่เรียกว่า " นรกแห่งการพึ่งพา " ได้ [ 11 ]นอกจากนี้ยังช่วยให้ผู้ใช้หลายคนสามารถติดตั้งซอฟต์แวร์บนระบบเดียวกันได้อย่างปลอดภัยโดยไม่ต้องใช้สิทธิ์ผู้ดูแล ระบบ ส่ง ผลให้โมเดลการจัดการและการปรับใช้แพ็กเกจ Nix โฆษณาแพ็กเกจที่มีความน่าเชื่อถือทำซ้ำได้และพกพาได้ มากขึ้น [ 8 ] [ 12 ]

Nix รองรับระบบปฏิบัติการLinux , macOSและWSL อย่างเต็มรูปแบบ และสามารถติดตั้งควบคู่ไปกับโปรแกรมจัดการแพ็กเกจอื่นๆ ได้อย่างปลอดภัย

นิคแพ็คส์

Nixpkgs คือคลังแพ็กเกจที่สร้างขึ้นบนตัวจัดการแพ็กเกจ Nix ตามข้อมูลจากRepologyณ เดือนมกราคม 2025 มีแพ็กเกจมากกว่า 122,000 รายการ[ 13 ]และมีจำนวนแพ็กเกจที่ทันสมัยมากกว่าคลังแพ็กเกจอื่นๆ[ 14 ]ระบบปฏิบัติการที่ Nixpkgs รองรับส่วนใหญ่คือ Linux และ Darwin โดยมีการรองรับ Windows และ BSD บางรุ่น สถาปัตยกรรม CPU ที่รองรับ ได้แก่64 บิต x86และARMแพ็กเกจสำหรับสถาปัตยกรรมเหล่านี้จะถูกสร้างขึ้นเป็นประจำ โดยใช้ บริการการ รวมระบบอย่างต่อเนื่องที่เรียกว่า Hydra [ 15 ]และผลลัพธ์ของการสร้างเหล่านี้จะถูกอัปโหลดไปยังแคชไบนารีสาธารณะ[ 16 ]เมื่อ Nix ติดตั้งแพ็กเกจ ระบบจะตรวจสอบแคชนี้และดาวน์โหลดแพ็กเกจไบนารีเพื่อหลีกเลี่ยงการสร้างในเครื่อง

Nixpkgs ได้รับการพัฒนาในที่เก็บ Gitเดียวบน GitHub [ 17 ]นอกจากแพ็กเกจแล้ว ยังมีซอร์สโค้ดสำหรับNixOS อีก ด้วย

โครงการที่ใช้ Nix

NixOS [ 18 ]เป็นระบบปฏิบัติการ Linuxที่ใช้ Nix ในการจัดการการกำหนดค่าระบบทั้งหมด รวมถึงเคอร์เนล Linux [ 19 ]

Nix ใช้สำหรับการบรรจุและแจกจ่ายซอฟต์แวร์ในการทดลอง LHCbของCERN [ 20 ] Nix เป็นพื้นฐานของแพลตฟอร์มการพัฒนาซอฟต์แวร์แบบกระจายReplit [ 21 ]และFirebase Studio [ 22 ]

การแยกสาขาและการนำไปใช้งานทางเลือก

ในปี 2021 มีการประกาศการนำกลับมาใช้ใหม่โดยใช้ชื่อ Tvix [ 23 ]โดยมีเป้าหมายคือความเป็นโมดูลาร์ ความเข้ากันได้อย่างสมบูรณ์กับ Nixpkgs และประสิทธิภาพการประเมินที่ดีขึ้น ณ ปี 2024 Tvix มีตัวประเมิน[ 24 ]และการใช้งานร้านค้า[ 25 ]แม้ว่าผู้เขียนจะไม่ถือว่าโครงการนี้มีเสถียรภาพหรือพร้อมใช้งานในการผลิต[ 26 ] Tvix เขียนขึ้นโดยใช้Rust เป็น หลัก [ 27 ]

ในปี 2024 ทีมอาสาสมัครได้ปล่อย Lix เวอร์ชันแรก[ 28 ]ซึ่งเป็นการแยก Nix ออกมาโดยมุ่งเน้นที่ความถูกต้องและความเข้ากันได้ โดยใช้ ระบบอัตโนมัติการสร้าง Mesonโครงการนี้ตั้งใจที่จะค่อยๆ เขียนโค้ดบางส่วนใหม่ด้วย Rust [ 28 ]

ในเดือนมีนาคม พ.ศ. 2568 ได้มีการสร้างเวอร์ชันแยกของ Tvix ที่ชื่อว่า Snix ขึ้นมา[ 29 ]

ดูเพิ่มเติม

  • GNU Guix : โปรแกรมจัดการแพ็กเกจแบบประกาศอีกตัวหนึ่ง และเป็นโปรแกรมที่พัฒนาต่อยอดมาจาก Nix ในยุคแรก โดยใช้GNU Guileสำหรับการกำหนดค่าและการปรับแต่ง
  • Maak : เครื่องมือช่วยสร้างระบบอัตโนมัติคล้ายกับ make และเป็นต้นแบบแรกเริ่มของ Nix
  • การทำงานอัตโนมัติของ Runbook
  • เว็บไซต์อย่างเป็นทางการแก้ไขข้อมูลนี้ได้ที่วิกิดาต้า
  • NixบนGitHub
  • การสนทนาระหว่างนักพัฒนาใน รายชื่อผู้รับจดหมาย ของ Debian (ปี 2008)
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Nix_(package_manager)&oldid=1348008033#Nixpkgs "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ Nix (โปรแกรมจัดการแพ็กเกจ)

Nix เป็น ตัวจัดการแพ็ก เกจข้ามแพลตฟอร์ม สำหรับ ระบบ ที่คล้าย Unix และเป็น ภาษาฟังก์ชัน สำหรับการกำหนดค่าระบบเหล่านั้น ซึ่งคิดค้นขึ้นในปี พ.ศ. 2546 [ 7 ] โดย Eelco Dolstra

เข้าใกล้

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

การดำเนินการ

สูตรแพ็กเกจสำหรับ Nix เขียนขึ้นใน "ภาษา Nix" ที่สร้างขึ้นโดยเฉพาะ ซึ่งเป็นภาษาการเขียนโปรแกรม แบบประกาศ ฟังก์ชันล้วน ประเมินแบบเลซี่ และกำหนด ประเภทแบบไดนามิก [ 9 ] คุณลักษณะเด่นของภาษา Nix ได้แก่ สตริงที่มี "บริบท" การแทรกสตริง เส้นทางระบบไฟล์ระดับเฟิร์สคลาส...

นิคแพ็คส์

Nixpkgs คือคลังแพ็กเกจที่สร้างขึ้นบนตัวจัดการแพ็กเกจ Nix ตามข้อมูลจาก Repology ณ เดือนมกราคม 2025 มีแพ็กเกจมากกว่า 122,000 รายการ [ 13 ] และมีจำนวนแพ็กเกจที่ทันสมัยมากกว่าคลังแพ็กเกจอื่นๆ [ 14 ] ระบบปฏิบัติการที่ Nixpkgs รองรับส่วนใหญ่คือ Linux และ Darwin...