Web Analytics

nothing-but-nix

⭐ 126 stars Thai by wimpysworld

🌐 ภาษา

Nothing but Nix

เปลี่ยนเครื่องรัน GitHub Actions ของคุณให้กลายเป็นขุมพลัง Nix ❄️ โดยการกำจัดซอฟต์แวร์ที่ไม่จำเป็นออกอย่างเด็ดขาด

GitHub Actions runner มาพร้อมกับพื้นที่ดิสก์สำหรับ Nix เพียงเล็กน้อย - แค่ประมาณ ~20GB เท่านั้น Nothing but Nix จะลบซอฟต์แวร์ที่ไม่จำเป็นออกอย่างรุนแรง ให้คุณมีพื้นที่ว่างสำหรับ Nix store 65GB ถึง 130GB! 💪

วิธีใช้ 🔧

เพิ่มแอ็กชันนี้ ก่อน การติดตั้ง Nix ใน workflow ของคุณ:

jobs:
  build:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      id-token: write
    steps:
      
  • uses: actions/checkout@v4
  • uses: wimpysworld/nothing-but-nix@main
  • name: Install Nix
uses: DeterminateSystems/nix-installer-action@main
  • name: Run Nix
run: | nix --version # Your Nix-powered steps here...

ข้อกำหนด ️✔️

ปัญหา: สร้างพื้นที่ให้ Nix เจริญเติบโต 🌱

GitHub Actions runners มาตรฐานนั้นอัดแน่นไปด้วย "bloatware" ที่คุณจะไม่มีวันได้ใช้ใน workflow ของ Nix:

ของแถมเหล่านี้เหลือพื้นที่ให้ Nix store แค่ ~20GB - แทบไม่พอสำหรับงาน build Nix จริงจัง! 😞

ทางออก: มีแค่ Nix เท่านั้น ️❄️

Nothing but Nix ใช้วิธีการแบบ "scorched-earth" กับ GitHub Actions runners และทวงคืนพื้นที่ดิสก์อย่างไร้ปรานีผ่านสองเฟส:

การล้างไฟล์นี้ขับเคลื่อนด้วย rmz (จากโปรเจกต์ Fast Unix Commands (FUC)) - ตัวเลือกที่มีประสิทธิภาพสูงกว่า rm ในการ reclaim พื้นที่! ⚡ ผลลัพธ์สุดท้าย? GitHub Actions runner ที่มีพื้นที่ Nix พร้อมใช้ 65GB ถึง 130GB! 😁

การเติบโตของ Volume แบบไดนามิก

ต่างจากโซลูชันอื่น ๆ Nothing but Nix ขยาย volume /nix ของคุณแบบไดนามิก:

volume /nix จะ ขยายอัตโนมัติระหว่าง workflow 🎩🪄

เลือกอาวุธของคุณ: Hatchet Protocol 🪓

ควบคุมระดับความเด็ดขาด 💥 ด้วย input hatchet-protocol:

- uses: wimpysworld/nothing-but-nix@main
  with:
    hatchet-protocol: 'cleave'  # Options: holster, carve, cleave (default), rampage

#### เปรียบเทียบโปรโตคอล ⚖️

| โปรโตคอล | /nix | คำอธิบาย | ลบ apt | ลบ docker | ลบ snap | ระบบไฟล์ที่ถูกลบ | |----------|--------|--------------------------------------------------|---------|-----------|---------|--------------------------| | Holster | ~65GB | เก็บขวานไว้ในฝัก ใช้พื้นที่จาก /mnt | ไม่ | ไม่ | ไม่ | ไม่มี | | Carve | ~85GB | ผสมผสานและนำพื้นที่ว่างจาก / และ /mnt มาใช้ | ไม่ | ไม่ | ไม่ | ไม่มี | | Cleave | ~115GB | ตัดสินใจเฉียบขาด ลบแพ็กเกจขนาดใหญ่ | น้อยมาก | ใช่ | ใช่ | /opt และ /usr/local | | Rampage | ~130GB | กำจัดขยะทุกอย่างอย่างโหดเหี้ยม | รุนแรง | ใช่ | ใช่ | มูอาฮาฮาฮา! 🔥🌎 |

เลือกให้ดี:

เห็นกับตา เลือดสาด 🩸

โดยปกติ กระบวนการ purge จะทำงานเงียบ ๆ เบื้องหลังขณะ workflow ของคุณดำเนินต่อ แต่ถ้าคุณอยากดูการล้างบางแบบ real-time:

- uses: wimpysworld/nothing-but-nix@main
  with:
    ️hatchet-protocol: 'cleave'
    witness-carnage: true  # Default: false

ปรับแต่ง Safe Havens 🛡️

ควบคุมพื้นที่ที่ต้องกันไว้จากการจับจองของ Nix store ด้วยขนาด Safe Haven ที่กำหนดเอง:

- uses: wimpysworld/nothing-but-nix@main
  with:
    ️hatchet-protocol: 'cleave'
    root-safe-haven: '3072'   # Reserve 3GB on the / filesystem
    mnt-safe-haven: '2048'    # Reserve 2GB on the /mnt filesystem

พื้นที่ปลอดภัยเหล่านี้กำหนดว่าพื้นที่ (เป็น MB) จะถูกละเว้นไม่ถูกนำไปใช้คืนพื้นที่ได้มากเพียงใด:

เพิ่มค่าดังกล่าวหากคุณต้องการพื้นที่สำรองมากขึ้นในไฟล์ระบบของคุณ หรือลดค่าลงหากคุณไม่ต้องการสำรองพื้นที่เลย! 😈

ให้สิทธิ์ผู้ใช้เป็นเจ้าของ /nix (กฎอนุญาตสิทธิ์ Nix) 🧑‍⚖️

บางโปรแกรมติดตั้งหรือการตั้งค่า Nix คาดหวังว่าไดเรกทอรี /nix จะสามารถเขียนโดยผู้ใช้ปัจจุบันได้ โดยค่าเริ่มต้น /nix จะเป็นของ root หากคุณต้องการให้ผู้ใช้เป็นเจ้าของ (เช่น สำหรับบางสคริปต์ติดตั้ง Nix ที่ไม่ได้ใช้ sudo กับทุกการดำเนินการใน /nix) คุณสามารถเปิดใช้ nix-permission-edict ได้:

- uses: wimpysworld/nothing-but-nix@main
  with:
    nix-permission-edict: true  # Default: false
เมื่อกำหนดค่า nix-permission-edict เป็น true แอ็กชันจะรันคำสั่ง sudo chown -R "$(id --user)":"$(id --group)" /nix หลังจากที่เมานต์ /nix แล้ว

ตอนนี้ไปสร้างสรรค์สิ่งที่น่าทึ่งด้วยพื้นที่ Nix store อันรุ่งโรจน์นี้กันเถอะ! ❄️

--- Tranlated By Open Ai Tx | Last indexed: 2025-07-24 ---