Nothing but Nix
Transformeer je GitHub Actions-runner in een Nix ❄️ krachtpatser door rigoureus vooraf geïnstalleerde overbodige software te verwijderen.
GitHub Actions-runners hebben weinig schijfruimte voor Nix - slechts ongeveer ~20GB. Nothing but Nix zuivert genadeloos onnodige software, waardoor je 65GB tot 130GB beschikbaar krijgt voor je Nix store! 💪
Gebruik 🔧
Voeg deze actie toe vóór het installeren van Nix in je 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...Vereisten ️✔️
- Ondersteunt alleen officiële Ubuntu GitHub Actions runners
- Moet voorafgaand aan de installatie van Nix worden uitgevoerd
Het Probleem: Ruimte maken zodat Nix kan floreren 🌱
Standaard GitHub Actions runners zitten vol met "bloatware" die je nooit zult gebruiken in een Nix-werkstroom:
- 🌍 Webbrowsers. Heel veel. Je moet ze allemaal hebben!
- 🐳 Docker-images die gigabytes aan kostbare schijfruimte innemen
- 💻 Overbodige taalruntimes (.NET, Ruby, PHP, Java...)
- 📦 Pakketbeheerders die digitale stof verzamelen
- 📚 Documentatie die niemand ooit zal lezen
De Oplossing: Alleen Nix ️❄️
Alleen Nix hanteert een scorched-earth-benadering op GitHub Actions runners en claimt meedogenloos schijfruimte terug met een tweefasige aanval:
- Initiële Slag: Creëert direct een groot
/nix-volume (~65GB) door vrije ruimte van/mntte claimen - Achtergrondbarrage: Terwijl je workflow doorgaat, ruimen we genadeloos onnodige software op om je
/nix-volume uit te breiden tot wel ~130GB - Webbrowsers? Nee ⛔
- Docker-images? Weg 🗑️
- Taalruntimes? Uitgewist 💥
- Pakketbeheerders? Geëlimineerd 💣
- Documentatie? Verdwenen ️👻
rmz (van het Fast Unix Commands (FUC) project) - een high-performance alternatief voor rm dat ruimte extreem snel vrijmaakt! ⚡
- Presteert een orde van grootte sneller dan standaard
rm - Voert verwijderingen parallel uit voor maximale efficiëntie
- Claimt schijfruimte in seconden in plaats van minuten! ️⏱️
Dynamische Volume Groei
In tegenstelling tot andere oplossingen groeit Alleen Nix je /nix-volume dynamisch:
- Initiële Volumecreatie (1-10 seconden): (afhankelijk van het Hatchet Protocol)
- Maakt een loopapparaat aan van vrije ruimte op
/mnt - Zet een BTRFS-bestandssysteem op in RAID0-configuratie
- Mount met compressie en prestatieoptimalisatie
- Biedt direct een 65GB
/nix, zelfs voordat de opruiming begint - Achtergronduitbreiding (30-180 seconden): (afhankelijk van het Hatchet Protocol)
- Voert opruimacties uit
- Houdt in de gaten of er nieuwe vrije ruimte beschikbaar komt naarmate bloat wordt verwijderd
- Voegt dynamisch een uitbreidingsschijf toe aan het
/nix-volume - Herbalanceert het bestandssysteem om nieuwe ruimte toe te voegen
/nix-volume groeit automatisch tijdens de uitvoering van de workflow 🎩🪄Kies je Wapen: Het Hatchet Protocol 🪓
Bepaal het niveau van vernietiging 💥 met de hatchet-protocol input:
- uses: wimpysworld/nothing-but-nix@main
with:
hatchet-protocol: 'cleave' # Options: holster, carve, cleave (default), rampage#### Protocol Vergelijking ⚖️
| Protocol | /nix | Beschrijving | Verwijder apt | Verwijder docker | Verwijder snap | Verwijderde bestandssystemen |
|----------|--------|---------------------------------------------------|----------------|------------------|----------------|-------------------------------|
| Holster | ~65GB | Houd het bijl in de schede, gebruik ruimte van /mnt | Nee | Nee | Nee | Geen |
| Carve | ~85GB | Maak en combineer vrije ruimte van / en /mnt | Nee | Nee | Nee | Geen |
| Cleave | ~115GB | Maak krachtige, beslissende sneden in grote pakketten | Minimaal | Ja | Ja | /opt en /usr/local |
| Rampage | ~130GB | Meedogenloze, brute eliminatie van alle ballast | Agressief | Ja | Ja | Muahahaha! 🔥🌎 |
Kies wijs:
- Holster wanneer je wilt dat de runner-tools volledig functioneel blijven
- Carve om functionele runner-tooling te behouden maar alle vrije ruimte voor Nix te claimen
- Cleave (standaard) voor een goede balans tussen ruimte en functionaliteit
- Rampage wanneer je maximale Nix-ruimte wilt en het je niet uitmaakt wat er breekt
#nix-is-life
Getuige De Slachting 🩸
Standaard wordt het opschoningsproces stilletjes op de achtergrond uitgevoerd terwijl je workflow doorgaat. Maar als je het bloedbad in realtime wilt bekijken:
- uses: wimpysworld/nothing-but-nix@main
with:
️hatchet-protocol: 'cleave'
witness-carnage: true # Default: falsePas veilige havens aan 🛡️
Bepaal hoeveel ruimte je wilt vrijhouden van de Nix store-inname met aangepaste veilige haven-groottes:
- 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 filesystemDeze veilige havens bepalen hoeveel ruimte (in MB) genadig zal worden gespaard tijdens ruimte-terugwinning:
- Standaard
root-safe-havenis 2048MB (2GB) - Standaard
mnt-safe-havenis 1024MB (1GB)
Geef gebruikers eigenaarschap van /nix (Nix Permission Edict) 🧑⚖️
Sommige Nix-installers of configuraties verwachten dat de map /nix schrijfbaar is voor de huidige gebruiker. Standaard is /nix eigendom van root. Als je gebruikers-eigenaarschap nodig hebt (bijvoorbeeld voor bepaalde Nix-installatiescripts die niet sudo gebruiken voor alle bewerkingen binnen /nix), kun je de nix-permission-edict inschakelen:
- uses: wimpysworld/nothing-but-nix@main
with:
nix-permission-edict: true # Default: falseWanneer nix-permission-edict is ingesteld op true, zal de actie sudo chown -R "$(id --user)":"$(id --group)" /nix uitvoeren na het aankoppelen van /nix.
Ga nu iets geweldigs bouwen met al die glorieuze Nix store-ruimte! ❄️ --- Tranlated By Open Ai Tx | Last indexed: 2025-07-24 ---