Web Analytics

nothing-but-nix

⭐ 213 stars Turkish by wimpysworld

🌐 Dil

Sadece Nix

GitHub Actions runner'ınızı Nix ❄️ gücüne dönüştürün, önceden kurulu gereksiz dosyaları acımasızca temizleyin.

GitHub Actions runner'ları Nix için çok az disk alanıyla gelir - yalnızca ~20GB. Sadece Nix gereksiz yazılımları acımasızca temizler ve Nix store için size 65GB ila 130GB alan kazandırır! 💪

Kullanım 🔧

Bu işlemi iş akışınızda Nix'i kurmadan önce ekleyin:

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...

Gereksinimler ️✔️

Sorun: Nix'in Gelişmesi İçin Yer Açmak 🌱

Standart GitHub Actions runner'ları, Nix iş akışında asla kullanmayacağınız "gereksiz yazılımlar" ile doludur:

Bu şişkinlik, Nix deposu için yalnızca ~20GB bırakır - ciddi Nix derlemeleri için zar zor yeter! 😞

Çözüm: Sadece Nix ️❄️

Sadece Nix, GitHub Actions runner'larına kökten bir yaklaşım getirir ve disk alanını acımasızca geri kazanmak için iki aşamalı bir saldırı kullanır:

Dosya sistemi temizliği rmz tarafından gerçekleştirilmektedir (Fast Unix Commands (FUC) projesinden) - alanı ışık hızında geri kazandıran, rm'ye yüksek performanslı bir alternatif! ⚡ Sonuç? 65GB ile 130GB arasında Nix'e hazır bir GitHub Actions runner! 😁

Dinamik Bölüm Büyümesi

Diğer çözümlerden farklı olarak, Nothing but Nix /nix biriminizi dinamik olarak büyütür:

/nix birimi, iş akışı yürütülürken otomatik olarak büyür 🎩🪄

Silahını Seç: Hatchet Protokolü 🪓

hatchet-protocol girdisiyle yok etme seviyesini kontrol edin 💥:

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

#### Protokol Karşılaştırması ⚖️

| Protokol | /nix | Açıklama | Apt temizle | Docker temizle | Snap temizle | Temizlenen dosya sistemleri | |----------|--------|--------------------------------------------------|-------------|----------------|--------------|-------------------------------| | Holster | ~65GB | Baltayı kılıfında tut, alanı /mnt'den kullan | Hayır | Hayır | Hayır | Yok | | Carve | ~85GB | Boş alanı / ve /mnt'den birleştir ve oluştur| Hayır | Hayır | Hayır | Yok | | Cleave | ~115GB | Büyük paketlere güçlü, kararlı kesikler at | Minimal | Evet | Evet | /opt ve /usr/local | | Rampage | ~130GB | Tüm şişkinliği acımasızca, vahşice yok et | Agresif | Evet | Evet | Muahahaha! 🔥🌎 |

Aklı başında seçim yap:

Katliama Tanık Olun 🩸

Varsayılan olarak, temizleme işlemi iş akışınız devam ederken arka planda sessizce yürütülür. Ama katliamı gerçek zamanlı izlemek isterseniz:

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

Güvenli Bölgeleri Özelleştirin 🛡️

Nix deposunun alan kaplamasından ne kadar yer ayıracağınızı özel güvenli bölge boyutlarıyla kontrol edin:

- 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

Bu güvenli alanlar, alan geri kazanımı sırasında acımasızca ne kadar alanın (MB cinsinden) korunacağını tanımlar:

Dosya sistemlerinizde daha fazla nefes alma alanına ihtiyacınız varsa bu değerleri artırın veya hiç merhamet göstermemek için azaltın! 😈

/nix Dizininin Kullanıcıya Sahipliğini Verin (Nix İzin Fermanı) 🧑‍⚖️

Bazı Nix yükleyicileri veya yapılandırmaları, /nix dizininin mevcut kullanıcı tarafından yazılabilir olmasını bekler. Varsayılan olarak, /nix root'a aittir. Kullanıcı sahipliğine ihtiyacınız varsa (örneğin, tüm işlemler için /nix içinde sudo kullanmayan bazı Nix yükleyici betikleri için), nix-permission-edicti etkinleştirebilirsiniz:

- uses: wimpysworld/nothing-but-nix@main
  with:
    nix-permission-edict: true  # Default: false

nix-permission-edict değeri true olarak ayarlandığında, işlem /nixi bağladıktan sonra sudo chown -R "$(id --user)":"$(id --group)" /nix komutunu çalıştırır.

Nix'i /nix/build kullanacak şekilde yapılandırın

Bu işlem, geri kazanılan alanı kullanmak için Nix türetme yapılarının kullanması amacıyla /nix/build dizinini oluşturur. Nix yapılandırmanıza build-dir ekleyin:

- uses: cachix/install-nix-action@v31
  with:
    extra_nix_config: |
      build-dir = /nix/build

Ya da DeterminateSystems ile:

- uses: DeterminateSystems/nix-installer-action@main
  with:
    extra-conf: |
      build-dir = /nix/build
Bu, Nix'i büyük BTRFS hacminde derlemeler yapmaya yönlendirir; böylece sistemin varsayılan geçici dizini yerine kullanılır.

Sorun Giderme 🔍

Büyük derlemelerde "Aygıtta yer kalmadı" hatası

Derlemeniz yalnızca Nix'i kullandığınız halde yer bitiyorsa, muhtemelen arka planda yapılan temizleme işlemi tamamlanmadan derlemeniz mevcut alanı tüketmiştir. Bu genellikle şu durumları etkiler:

Çözüm: Eşzamanlı temizlemeyi zorlamak için witness-carnage: true kullanın. Bu, tüm alanın derlemeniz başlamadan önce geri kazanılmasını sağlar:

- uses: wimpysworld/nothing-but-nix@main
  with:
    hatchet-protocol: 'rampage'
    witness-carnage: true

Bu, iş akışı kurulumunuza 30-180 saniye ekler, ancak derlemeniz başladığında maksimum alanın kullanılabilir olmasını garanti eder.

Şimdi o muhteşem Nix store alanıyla harika bir şey inşa etmeye gidin! ❄️ --- Tranlated By Open Ai Tx | Last indexed: 2026-03-18 ---