12 คะแนน โดย GN⁺ 2026-03-23 | 8 ความคิดเห็น | แชร์ทาง WhatsApp
  • NixOS ที่สร้างบนพื้นฐานของ Nix package manager มีโครงสร้างที่กำหนดทั้งระบบด้วยโค้ด และสามารถ กู้คืนกลับสู่สถานะที่กำหนดแน่นอนและทำซ้ำได้ เมื่อใดก็ได้
  • จัดการการตั้งค่าและแพ็กเกจทั้งหมดด้วย ไฟล์คอนฟิกเชิงประกาศเพียงไฟล์เดียว ทำให้สามารถ สร้างสภาพแวดล้อมเดิมขึ้นใหม่จากแหล่งข้อมูลเดียว ได้แม้บนอุปกรณ์เครื่องใหม่
  • รองรับ รีลีสเสถียรทุก 6 เดือน พร้อมการอัปเดตอัตโนมัติ และหากต้องการก็สามารถทดลองใช้ซอฟต์แวร์ล่าสุดผ่าน ช่อง unstable ได้
  • มี สภาพแวดล้อมพัฒนาแบบแยกขาด ให้ทดลองใช้ภาษาและเครื่องมือต่าง ๆ ได้โดยไม่ทำให้ระบบปนเปื้อน พร้อมรักษา ประสบการณ์พัฒนาที่สม่ำเสมอ ระหว่าง macOS และ Linux
  • รองรับการเปลี่ยนเครื่องมืออย่างรวดเร็วในยุคของ การเขียนโค้ดด้วย LLM และยังคงความสม่ำเสมอไปถึงการดีพลอยด้วย โมเดลการบิลด์แบบกำหนดแน่นอนและแบ่งชั้น ที่เหนือกว่า Docker

ปรัชญาและเสน่ห์ของ NixOS

  • หัวใจของ NixOS ไม่ใช่ Linux distribution แต่คือ Nix package manager
    • NixOS เป็นผลลัพธ์ของ functional package manager ที่กำหนดแน่นอนและทำซ้ำได้ ซึ่งสามารถประกอบระบบปฏิบัติการทั้งหมดตาม Nix DSL ที่ป้อนเข้าไป
    • มีโครงสร้างที่ให้คุณสร้างระบบขึ้นใหม่ แก้ไขเพียงบางส่วน และ rollback ได้หากไม่พอใจผลลัพธ์
  • ในขณะที่ระบบปฏิบัติการส่วนใหญ่มักไม่เสถียรขึ้นเมื่อเวลาผ่านไป NixOS สามารถ กำหนดสถานะและบิลด์มันขึ้นมาได้
    • ป้องกันการสะสมของสถานะที่คลุมเครือจากการติดตั้งแพ็กเกจ การเปลี่ยนคอนฟิก และการเพิ่มหรือลบเครื่องมือ
    • เมื่อกำหนดระบบเป็นโค้ด ก็สามารถสร้างผลลัพธ์เดิมซ้ำได้ทุกเมื่อ

คอนฟิกเชิงประกาศและการจัดการจากแหล่งเดียว

  • ใน NixOS คุณสามารถ กำหนดทั้งระบบ ไม่ว่าจะเป็นแพ็กเกจ การตั้งค่า หรือการแมปคีย์บอร์ด ด้วยคอนฟิกเชิงประกาศชุดเดียว
    • สามารถอธิบายการทำงานระดับรายละเอียดด้วย Nix DSL ได้ เช่น ตัวอย่างการตั้งค่า GNOME extension และการแมปคีย์บอร์ด
    • แม้เป็นคอมพิวเตอร์เครื่องใหม่ ก็สามารถ สร้างทั้งระบบขึ้นใหม่จากแหล่งเดียว ได้
  • ช่วยให้ รักษาสถานะของระบบให้สม่ำเสมอ ได้โดยไม่ต้องพึ่งการตั้งค่าด้วยมือหรือการจัดการสคริปต์ที่กระจัดกระจาย

เสถียรภาพและการจัดการอัปเดต

  • NixOS มี รอบรีลีสที่คาดการณ์ได้ทุก 6 เดือน และรองรับการอัปเดตอัตโนมัติ
    • ช่วยลดปัญหาความไม่เสถียร การแจ้งเตือน และ system drift ที่มักเกิดขึ้นระหว่างการอัปเกรด OS แบบทั่วไป
    • หากจำเป็น สามารถเปิดใช้ ช่อง unstable เพื่อทดลองใช้ซอฟต์แวร์เวอร์ชันล่าสุดได้
  • แม้บนโน้ตบุ๊ก HP ก็ยังมี ความเข้ากันได้กับฮาร์ดแวร์และเสถียรภาพ สูง ใช้งานได้ทันทีโดยแทบไม่ต้องตั้งค่าเพิ่ม

การทดลองและสภาพแวดล้อมพัฒนาแบบแยกขาด

  • NixOS มอบ สภาพแวดล้อมสำหรับการทดลองที่ปลอดภัยและมีต้นทุนต่ำ
    • สามารถรันแพ็กเกจใน shell แบบแยกขาด ได้โดยไม่ต้องติดตั้งลงระบบโดยตรง
    • ด้วย Nix DSL คุณสามารถกำหนด dependency ขั้นตอนการบิลด์ และผลลัพธ์แบบเชิงประกาศ เพื่อรักษา สภาพแวดล้อมพัฒนาที่ไม่ปนเปื้อน
  • ทั้งบน macOS และ Linux สามารถใช้ Nix package manager ตัวเดียวกันได้ จึงได้ ความสม่ำเสมอในการจัดการเครื่องมือพัฒนาและ dependency
    • ยังมีการสนับสนุนจากชุมชนสำหรับ FreeBSD ด้วย

ความเข้ากันได้กับยุคของการเขียนโค้ดด้วย LLM

  • เครื่องมือเขียนโค้ดที่อิงกับ LLM มักต้องสลับ utility, compiler และ runtime เวอร์ชันเฉพาะอยู่บ่อยครั้ง
    • Nix รองรับความต้องการลักษณะนี้ด้วยการปฏิบัติต่อ เครื่องมือเป็นอินพุตเชิงประกาศ และรันในสภาพแวดล้อมที่แยกขาด
    • ตัวอย่างเช่น เมื่อบิลด์เอเจนต์แปลงเสียงเป็นข้อความด้วย Rust, Nix จะ ดึง Rust toolchain มาให้อัตโนมัติและจัดเตรียมสภาพแวดล้อมบิลด์แบบแยกขาด
    • โดยไม่เปลี่ยนแปลงสภาพแวดล้อมของระบบ (~/.cargo, ~/.rustup, PATH เป็นต้น)
  • ผ่าน flake.nix และ nix flake check คุณสามารถ ตรึงสภาพแวดล้อมทดลองของเอเจนต์ให้เป็นอาร์ติแฟกต์ที่ทำซ้ำได้
    • เปลี่ยนเซสชันชั่วคราวให้กลายเป็น หน่วยบิลด์ที่ตรวจสอบได้

การดีพลอยและโมเดลการพัฒนาที่สม่ำเสมอ

  • Nix มอบ วิธีบิลด์อิมเมจที่กำหนดแน่นอนและแบ่งชั้นได้มากกว่า Docker
    • ใช้ dockerTools.buildLayeredImage เพื่อสร้าง อิมเมจ Docker ขนาดเล็กและทำซ้ำได้
    • สามารถบิลด์ผลลัพธ์เดียวกันได้บนสถาปัตยกรรมอื่น ๆ ด้วยคอนฟิกชุดเดียวกัน
  • โมเดลเดียวกันนี้ถูกนำไปใช้ได้อย่างสม่ำเสมอตั้งแต่ โน้ตบุ๊ก, shell, dependency ของโปรเจกต์, CI pipeline ไปจนถึงอาร์ติแฟกต์สำหรับดีพลอย
    • แทนที่จะต้องประกอบหลายเครื่องมือเข้าด้วยกัน คุณสามารถ จัดการระบบซอฟต์แวร์ทั้งหมดด้วยวิธีคิดแบบเดียว

บทสรุป

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

8 ความคิดเห็น

 
dongho42 2026-03-24

ผมเองก็เคยใช้ NixOS อยู่ราวๆ ครึ่งปี แล้วมีงานง่ายๆ มากงานหนึ่งที่บน OS อื่นแทบไม่ต้องหาข้อมูลอะไรเพิ่มเลย แต่ไม่ว่าจะค้น Google แค่ไหนก็แก้ไม่ได้ สุดท้ายไปเจอโซลูชันที่ผู้เชี่ยวชาญ NixOS? คนหนึ่งบันทึกไว้ในที่อย่างฟอรัม NixOS แล้วพอเห็นว่าโซลูชันแบบแฮ็กๆ ยาวเป็นสิบๆ บรรทัดนั้นกลับได้ไลก์มากที่สุด ผมก็รู้สึกว่าชีวิตกับ NixOS ต่อจากนี้คงมืดมน เลยกลับไปใช้ Arch...

 
dongho42 2026-03-24

แล้วก็จำไม่ค่อยได้เหมือนกันว่า flake หรือฟีเจอร์อะไรสักอย่าง ที่บางที่ก็บอกว่าเป็น best practice บางที่ก็บอกว่าเป็น experimental แล้วบางที่ก็บอกว่าเป็นทั้งสองอย่าง ซึ่งพอเห็นว่าสภาพแบบนี้ยืดเยื้อมาหลายปีแล้ว ก็รู้เลยว่าหนทางข้างหน้าคงลำบากแน่ ๆ..

แน่นอนว่า ประสบการณ์ที่สามารถทำให้สภาพแวดล้อมเดสก์ท็อปทั้งหมดอยู่ในรูปโค้ดได้อย่างง่ายดายนั้นก็สนุกดี

 
pmc7777 2026-03-24

Firebase Studio ก็ใช้ Nix เช่นกัน

 
laeyoung 2026-03-24

โอ้...อย่างนั้นนี่เอง!

ว่าแต่ R.I.P. Firebase Studio ฮือฮือ

 
grenade 2026-03-24

ยากเกินไปครับ/ค่ะ ลองอยู่พักนึงแล้วก็ยอมแพ้ T_T
(I use Arch btw)

 
ztaka 2026-03-24

คนที่รู้ก็แอบๆ ใช้กันอยู่แล้ว 555
การตั้งค่าที่ทำซ้ำได้ซึ่งสร้างด้วยภาษาเชิงฟังก์ชันแบบประกาศ

 
ytuniverse 2026-03-24

เส้นโค้งการเรียนรู้โหดเกินเหตุครับ พอจะการันตีความสามารถในการทำซ้ำได้ ก็ต้องการความเข้าใจในระดับสูงตามไปด้วย
ถึงจะใช้ flake ก็ยังจุกจิกอยู่ดี

อีกอย่างดูเหมือนภายในจะใช้ sqlite ด้วย ซึ่งตัวนี้ประสิทธิภาพก็ขึ้นๆ ลงๆ อีก เลยทำให้เวลาที่ใช้ในการจำลองสภาพแวดล้อมขึ้นมาใหม่แต่ละครั้งมีความผันผวนอยู่พอสมควร

 
GN⁺ 2026-03-23
ความคิดเห็นบน Hacker News
  • ฉันคิดว่า NixOS โดดเด่นเป็นพิเศษในแง่ของ ความเข้ากันได้กับเครื่องมือ AI
    บน OS อื่น การปล่อยให้ AI จัดการการตั้งค่าระบบเป็นเรื่องยาก แต่ NixOS เชื่อถือได้เพราะมีโครงสร้างแบบ declarative และสามารถ rollback ได้
    ปกติฉันคงไม่ให้ Claude หรือ Codex จัดการงานอย่างการย้ายจาก Pulseaudio ไป Pipewire หรือการติดตั้ง Hyprland แต่ถ้าเป็น NixOS ฉันมั่นใจถึงขั้นให้ Grok จัดการได้
    หัวใจสำคัญคือความเสถียรที่สามารถตรวจทานการเปลี่ยนแปลงล่วงหน้าและย้อนกลับได้ทุกเมื่อ
    ถ้าเป็นนักพัฒนา ขอแนะนำให้ลอง NixOS โดยนึกถึงภาพ “ลินุกซ์เดสก์ท็อปที่ AI ดูแล” เริ่มต้นได้ด้วยการบอก Claude ว่า “ช่วยสร้างการตั้งค่า Gnome แบบ Flake ที่สาธิตบน VM ได้ให้หน่อย”

    • ฉันใช้ NixOS มา 3 ปี และใช้ Claude มามากกว่า 1 ปีแล้ว การจับคู่กันของสองสิ่งนี้ยอดเยี่ยมจริงๆ
      เวลาที่เห็น Claude ปรับ การตั้งค่า dconf ของ GNOME แบบ declarative มันน่าทึ่งมาก
      แต่บางครั้ง AI ก็ให้ผลลัพธ์เพี้ยนๆ เพราะไม่เข้าใจบริบทที่ซับซ้อนของ ecosystem ของ Nix
      มันทำให้รู้สึกว่า โครงสร้าง lambda ที่ไม่เป็นแบบแผน ของ Nix และ implicit scope ระหว่างโมดูลนั้นยากไม่ใช่แค่สำหรับคน แต่สำหรับ AI ด้วย
      เพราะงั้นการกำหนดโครงสร้างและแพตเทิร์นของโปรเจกต์ให้ชัดเจนจึงสำคัญ ถึงอย่างนั้นกระบวนการสร้างเทมเพลตบน Nix ก็ยังทั้งสนุกและเพิ่มประสิทธิภาพการทำงาน
    • พูดตามตรง นี่ดูเหมือนเป็น วิธีแก้ปัญหาทางเทคนิคที่เกินจำเป็น สำหรับปัญหาที่ไม่มีอยู่จริง
      จำเป็นต้องใช้ LLM เพื่อติดตั้ง Hyprland ด้วยเหรอ? แค่ sudo dnf install hyprland ก็พอแล้ว
      ดูเหมือนว่าไม่ใช่เพราะ Nix ‘เป็นมิตรกับ AI’ แต่เป็นเพราะมันยุ่งยากเกินกว่าที่คนจะจัดการเอง เลยต้องใช้ LLM มากกว่า
    • ฉันก็มีประสบการณ์คล้ายกัน ก่อนหน้านี้เคยโพสต์บน HN ในชื่อ “ClaudeOS” แต่จริงๆ แล้วมันคือการผสมกันของ NixOS + Flakes + Claude Code
      ฉันจัดการการตั้งค่าของหลายเครื่องเป็น ‘โปรไฟล์ธุรกิจ’ และ deploy repo กับการตั้งค่าที่แต่ละเครื่องต้องใช้โดยอัตโนมัติ
      เพื่อนร่วมงานในบริษัทเดิมทีใช้ Windows แต่ตอนนี้ใช้งาน NixOS เป็นประจำทุกวันแล้ว
      การตั้งค่าฮาร์ดแวร์ทั้งหมดก็ถูกจัดการแบบ declarative และการตั้งค่าของฉันอยู่ใน ที่เก็บสาธารณะบน GitHub ยินดีรับคำแนะนำ
    • ฉันก็เคยให้ Claude ช่วยแก้ปัญหาการตั้งค่า NixOS และมันทำงานได้ดีมาก
      เวลาโยกการตั้งค่าไปสู่โครงสร้างใหม่ หรือสร้าง สภาพแวดล้อมทดสอบ WM/DE หลายแบบ Claude ก็จัดการงานซ้ำๆ ส่วนใหญ่ให้ได้
      ตอนนี้ระบบเสถียรสมบูรณ์แล้ว เลยแทบไม่มีอะไรให้ต้องทำด้วยมือ
      บน OS อื่นยากที่จะมีความมั่นใจแบบนี้
    • เมื่อก่อน Nix ดูเข้าใจยากเกินไป ฉันเลยรอจนกว่า AI จะพัฒนามากกว่านี้
      ระหว่างนั้นก็ใช้ Docker script จัดการสภาพแวดล้อมการพัฒนา แต่ตอนนี้รู้สึกว่า Nix กับ AI เข้ากันอย่างสมบูรณ์แบบ
      ต่อไปน่าจะมีซอฟต์แวร์ที่ AI จัดการได้ง่ายขึ้นออกมาอีกมาก
  • ฉันใช้ Windows มา 30 ปี ก่อนจะย้ายมา Nix แบบเต็มตัวเมื่อปีที่แล้ว
    ตอนนี้ไม่คิดจะกลับไปใช้ Windows อีกเลย
    ฉันชอบมากที่การตั้งค่า OS ทั้งหมดอยู่ใน Git repository
    การพัฒนาโดยไม่มี Nix ไร้ประสิทธิภาพพอๆ กับการเขียนโค้ดโดยไม่มี Git
    พอตั้งค่าไว้ครั้งหนึ่งแล้ว การเซ็ตอัประบบใหม่หลังจากนั้นก็ง่ายมาก

    • ฉันสงสัยว่ามีโปรเจกต์ที่ช่วยสร้าง คอนเทนเนอร์แบบแยกขาด จากการตั้งค่า NixOS ของฉันได้ง่ายๆ ไหม
      อยากให้แต่ละแอปรันในสภาพแวดล้อมของตัวเองโดยไม่กระทบทั้งระบบ
      ฉันคิดว่า NixOS เป็นหนึ่งในเส้นทางไปสู่อนาคตแบบนั้น
    • เคยคิดจะกลับไปใช้ Fedora Bazzite แต่สุดท้ายอยู่กับ NixOS ต่อ เพราะทำ HDR บน Sway ได้เสถียรกว่า
      Nvidia GPU ก็ใช้งานได้ดี และเสถียรกว่า Gamescope มาก
    • อยากเห็นตัวอย่างว่าใช้ nix-shell อย่างไรในการรัน Python script แบบรวดเร็ว ตอนนี้ยังอยู่ในช่วงเรียนรู้การทำงานร่วมกันของ Python และ NixOS
  • ฉันอยากชอบ NixOS ให้มากกว่านี้ แต่ปัญหาใหญ่ที่สุดคือ เอกสารไม่เพียงพอ
    ข้อมูลกระจัดกระจายอยู่ตามฟอรัมหลายแห่ง บล็อกเก่าๆ และ issue ต่างๆ

    • แถมยังมีวิกิทางการอยู่สองอัน (nixos.wiki, wiki.nixos.org) เลยยิ่งสับสน
      ทั้งคู่ยังอัปเดตอยู่ แต่เวลาค้นหาว่าอันไหนใหม่กว่ากัน คำตอบก็ไม่เหมือนกันทุกครั้ง
    • เมื่อก่อนฉันก็เคยบ่นเรื่องเอกสารไม่พอ แต่ตอนนี้มองว่า ซอร์สโค้ดนั่นแหละคือเอกสาร
      clone nixpkgs มาอ่านเองโดยตรงเร็วที่สุด
    • ChatGPT มีประโยชน์มากพอสมควรในการรวบรวมข้อมูลจากหลายแหล่งแล้วสร้าง ตัวอย่างโค้ดที่ใช้งานได้จริง
    • จริงๆ แล้วผู้ใช้จำนวนมากไม่ได้อ่านเอกสาร แต่ปล่อยให้ Claude Code เขียนโค้ด Nix ให้
  • ฉันเคยใช้ NixOS เป็น OS สำหรับโน้ตบุ๊ก ซึ่งมีทั้งข้อดีและข้อเสียชัดเจน
    การตั้งค่าแบบ declarative และฟีเจอร์ snapshot นั้นปฏิวัติวงการ แต่แนวคิดเรื่อง การแยกระหว่างแพ็กเกจกับเซอร์วิส และ Flake ทำให้สับสน
    ตอนติดตั้ง KDE มันลงมาให้แค่ชุดขั้นต่ำ เลยต้องตั้งค่าเพิ่ม และเอกสารก็แตกต่างกันไปตามแต่ละเวอร์ชันจนตามได้ยาก
    สุดท้ายฉันต้องการเครื่องที่เสถียรเลยเลิกใช้ แต่คิดว่าน่าจะเป็นตัวเลือกที่ยอดเยี่ยมสำหรับผู้ดูแลระบบ

    • ตอนแรกฉันก็รู้สึกว่า Flake ยาก แต่จริงๆ แล้วมันคือ วิธีที่ตรงไปตรงมาที่สุด
      ตัวติดตั้งของ Determinate Systems เปิดใช้ Flake มาเป็นค่าเริ่มต้น
      คุณสามารถย้ายการตั้งค่า /etc/nixos ไปไว้ใน Git repository และ deploy การตั้งค่าแบบครบถ้วนได้ด้วยคำสั่ง nixos-install --flake <repo>
      ถ้าใช้ Home-manager ร่วมด้วย ก็จัดการแม้แต่ไดเรกทอรีของผู้ใช้แบบ declarative ได้
      ไฟล์ใน /etc จัดการได้ด้วย environment.etc ส่วนไฟล์ .config จัดการได้ด้วยออปชันของ home-manager
      ลิงก์ที่เกี่ยวข้อง: ตัวเลือก environment.etc, ตัวเลือก home-manager
    • ตอนหาข้อมูลเอกสารเกี่ยวกับ mkOutOfStoreSymlink แล้วเจอคำตอบว่า “มันง่ายมากเลยไม่จำเป็นต้องมีเอกสาร” ก็ได้แต่ขำ
      ถึงอย่างนั้นข้อดีของ NixOS ก็มีมากจนฉันกำลังย้ายทั้งหมดแบบ โฮมแล็บ → โน้ตบุ๊ก → เดสก์ท็อป
      แต่สถานการณ์ด้านเอกสารก็ยังสิ้นหวังเหมือนเดิม
    • Flake มีหน้าที่สองอย่าง:
      1. ประกาศ input และ output ของโค้ดเบส
      2. ตรึงเวอร์ชัน (pinning) ของแหล่ง input
        พูดอีกอย่างคือมันทำหน้าที่แบบ package.json และ lock file ในระดับของ Nix
    • ฉันแปลกใจว่าทำไมถึงยังไม่มีใครใช้ LLM มาช่วยปรับปรุงเอกสารเสียที
  • ฉันชอบ NixOS มานานแล้ว และหลังเข้าสู่ยุค LLM ก็ยิ่งชอบมากขึ้น
    ถ้าบอก Codex ว่า “ช่วยแก้การตั้งค่าเซิร์ฟเวอร์นี้ให้ wildcard certificate ทำงานได้” มันก็แก้ให้เสร็จใน 5 นาที
    การจัดการเซิร์ฟเวอร์แบบทำซ้ำได้อย่างแม่นยำ ไม่เคยง่ายขนาดนี้มาก่อน

  • หลังจากย้ายมา NixOS ยุคที่จัดการทุกอย่างด้วย apt หรือ brew ดูเหมือน เทคโนโลยียุคหิน ไปเลย
    มันยังเข้ากันได้ดีมากกับเครื่องมือ AI อย่าง Copilot

    • NixOS ยอดเยี่ยมอยู่ 95% แต่มีอีก 5% ที่ทรมานมาก
      ถ้าจะแก้ปัญหา ต้องเข้าใจลึกกว่าลินุกซ์ทั่วไป
      แต่ข้อแลกเปลี่ยนคือคุณจ่ายต้นทุนของความซับซ้อน ครั้งใหญ่ตั้งแต่ต้น
    • ฉันใช้ลินุกซ์มาหลายดิสโทรตลอด 20 ปี แต่ NixOS เป็นตัวแรกที่ทำให้รู้สึกว่า “นี่แหละคำตอบ”
      ความสามารถในการติดตั้งชั่วคราวด้วย nix-shell หรือการดูแพ็กเกจทั้งหมดที่ติดตั้งผ่านไฟล์ config เพียงไฟล์เดียวคือที่สุด
      ด้วย snapshot อัตโนมัติ การทดลองจึงไม่น่ากลัวอีกต่อไป ถ้าพลาดก็แค่บูตกลับไป generation ก่อนหน้า
      เมื่อก่อนฉันกลัวการแก้ kernel parameter แต่ตอนนี้ลองได้เต็มที่
      ฉันชอบ Lisp เลยเคยพิจารณา Guix System เหมือนกัน แต่ในแง่การใช้งานจริง NixOS ดีกว่า
  • ฉันอยากให้ NixOSไม่มีแค่ โครงสร้างไฟล์ซิสเต็มที่แปลก
    มันเป็นแนวทางเพื่อแก้ปัญหาการใช้ Python หลายเวอร์ชันพร้อมกัน แต่สำหรับฉันมันไม่จำเป็น
    ฉันแค่อยากให้ทุกเครื่องมีการตั้งค่าแบบเดียวกัน
    ตอนนี้กำลังทดลองใช้ Fedora bootc image กับ Podman อยู่ แต่ไม่มีฟีเจอร์ให้เปลี่ยนแล้วมีผลทันทีแบบ nixos-rebuild switch เลยไม่สะดวก
    สุดท้ายมันคือการแลกกันระหว่าง Nix ที่ทดลองอะไรได้ง่าย กับ Fedora ที่มีไฟล์ซิสเต็มมาตรฐาน

  • จุดเด่นที่สุดของ NixOS คือ ความสามารถในการทำซ้ำแบบกำหนดแน่นอนของแคช CI
    ไม่ต้อง build แพ็กเกจใหม่ทุกครั้ง และการตั้งค่าสภาพแวดล้อมสำหรับพัฒนาก็ง่าย

    • การใช้ Nix กับ CI เป็นการจับคู่ที่ลงตัวจริงๆ
      ตัวอย่างเช่น Tangled สร้างระบบ CI ทั้งหมดด้วย Nix ซึ่งแก้ปัญหาเรื่องแคชของ GitHub Actions ได้หมดจด
  • แม้จะไม่ได้ใช้กับทั้งระบบ แต่ฉันชอบใช้ devenv.sh
    มันช่วยสร้างสภาพแวดล้อมการพัฒนาได้ง่ายกว่าคอนเทนเนอร์บนเครื่องมาก

    • แต่สิ่งที่ยังไม่ชัดเจนคือวิธี ตรึงเวอร์ชัน (pinning)
      มันไม่มีวิธีง่ายๆ แบบ .tool-versions ของ asdf สำหรับทำให้เวอร์ชันตรงกัน เลยรู้สึกเสียดาย
      ฝั่ง Nix มักบอกว่า “นั่นเป็นแนวทางที่ผิด” แต่ฉันก็ยังอยากตรึงเวอร์ชันเป็นรายตัวอยู่ดี
    • ฉันสงสัยว่ามันต่างจาก home-manager อย่างไร
    • แค่ pkgs.mkShell แบบง่ายๆ ก็สร้างสภาพแวดล้อมคล้ายกันได้อยู่แล้ว เลยสงสัยว่าทำไมต้องใช้ devenv ด้วย
  • ฉันชอบ NixOS เหมือนกัน แต่ Guix คือสิ่งที่ฉันชอบมากกว่า
    ฉันคุ้นกับภาษา Guile มากกว่า และเอกสารก็ดีกว่า ฉันมองว่าสองระบบนี้เป็นเหมือนพี่น้องกัน

    • ฉันคิดว่า Guix สมควรได้รับความรักมากกว่านี้
      การใช้ ภาษาโปรแกรมจริง (Scheme) เป็นข้อได้เปรียบอย่างมาก
      มันมีรากฐานที่ทรงพลังกว่าภาษาสำหรับตั้งค่าแบบเรียบง่ายมาก