Web Analytics

nothing-but-nix

⭐ 213 stars Hindi by wimpysworld

🌐 भाषा

कुछ नहीं बस निक्स

अपने GitHub Actions रनर को एक Nix ❄️ पावरहाउस में बदलें, पहले से इंस्टॉल किए गए अनावश्यक सॉफ़्टवेयर को बेरहमी से हटाकर।

GitHub Actions रनर में Nix के लिए बहुत कम डिस्क स्पेस होती है - सिर्फ ~20GB। कुछ नहीं बस निक्स अनावश्यक सॉफ़्टवेयर को पूरी तरह से हटा देता है, जिससे आपको अपने Nix स्टोर के लिए 65GB से 130GB तक जगह मिलती है! 💪

उपयोग कैसे करें 🔧

इस क्रिया को अपने वर्कफ़्लो में Nix इंस्टॉल करने से पहले जोड़ें:

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 रनर "अनावश्यक सॉफ़्टवेयर" से भरे होते हैं जिनका आप Nix वर्कफ़्लो में कभी उपयोग नहीं करेंगे:

इस अनावश्यकता के कारण आपके Nix स्टोर के लिए केवल ~20GB बचता है - गंभीर Nix बिल्ड के लिए मुश्किल से ही पर्याप्त! 😞

समाधान: केवल Nix ️❄️

केवल Nix GitHub Actions रनर पर कठोर दृष्टिकोण अपनाता है और दो-चरणीय हमले के ज़रिए डिस्क स्पेस पुनः प्राप्त करता है:

फाइल सिस्टम सफाई को rmz ( Fast Unix Commands (FUC) प्रोजेक्ट से) द्वारा संचालित किया जाता है - rm का एक उच्च-प्रदर्शन विकल्प जो स्पेस रिक्लेमेशन को बेहद तेज बनाता है! ⚡ अंतिम परिणाम? एक GitHub Actions रनर जिसमें 65GB से 130GB तक Nix के लिए तैयार स्थान है! 😁

डायनामिक वॉल्यूम ग्रोथ

अन्य समाधानों के विपरीत, Nothing but Nix आपके /nix वॉल्यूम को गतिशील रूप से बढ़ाता है:

/nix वॉल्यूम स्वचालित रूप से वर्कफ़्लो निष्पादन के दौरान बढ़ता है 🎩🪄

अपना हथियार चुनें: The Hatchet Protocol 🪓

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 | हर तरह के फालतू को निर्दयी रूप से हटाना | आक्रामक | हाँ | हाँ | मुहाहा! 🔥🌎 |

सावधानीपूर्वक चुनें:

तबाही का गवाह बनें 🩸

डिफ़ॉल्ट रूप से, शुद्धिकरण प्रक्रिया पृष्ठभूमि में चुपचाप चलती है जबकि आपका वर्कफ़्लो जारी रहता है। लेकिन यदि आप वास्तविक समय में कत्लेआम देखना चाहते हैं:

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

सुरक्षित आश्रयों को अनुकूलित करें 🛡️

कस्टम सुरक्षित आश्रय आकारों के साथ Nix स्टोर की ज़मीन पर कब्ज़ा करने से कितनी जगह बचानी है, इसे नियंत्रित करें:

- 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 इंस्टॉलर स्क्रिप्ट्स के लिए जो /nix के भीतर सभी ऑपरेशनों के लिए sudo का उपयोग नहीं करती हैं), तो आप nix-permission-edict को सक्षम कर सकते हैं:

- uses: wimpysworld/nothing-but-nix@main
  with:
    nix-permission-edict: true  # Default: false
जब nix-permission-edict को true पर सेट किया जाता है, तो यह क्रिया /nix को माउंट करने के बाद sudo chown -R "$(id --user)":"$(id --group)" /nix चलाएगी।

Nix को /nix/build उपयोग करने के लिए कॉन्फ़िगर करें

यह क्रिया Nix डेरिवेशन बिल्ड्स के लिए रिक्लेम की गई स्पेस का उपयोग करने हेतु /nix/build बनाती है। अपने Nix कॉन्फ़िगरेशन में build-dir जोड़ें:

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

या DeterminateSystems के साथ:

- uses: DeterminateSystems/nix-installer-action@main
  with:
    extra-conf: |
      build-dir = /nix/build
यह Nix को सिस्टम की डिफ़ॉल्ट टेम्परेरी डायरेक्टरी के बजाय बड़े BTRFS वॉल्यूम पर बिल्ड करने का निर्देश देता है।

समस्या निवारण 🔍

बड़े बिल्ड के दौरान "डिवाइस पर कोई जगह नहीं बची"

यदि आपका बिल्ड केवल Nix का उपयोग करने के बावजूद भी स्पेस खत्म कर देता है, तो संभावना है कि बैकग्राउंड पर्जिंग आपके बिल्ड के उपलब्ध स्पेस को उपयोग करने से पहले पूरी नहीं हुई है। यह आमतौर पर इनको प्रभावित करता है:

समाधान: सिंक्रोनस पर्जिंग को मजबूर करने के लिए witness-carnage: true का उपयोग करें। यह सुनिश्चित करता है कि सारा स्पेस आपके बिल्ड शुरू होने से पहले रिक्लेम हो जाए:

- uses: wimpysworld/nothing-but-nix@main
  with:
    hatchet-protocol: 'rampage'
    witness-carnage: true
यह आपके वर्कफ़्लो सेटअप में 30-180 सेकंड जोड़ता है, लेकिन यह सुनिश्चित करता है कि जब आपका बिल्ड शुरू हो तब अधिकतम स्थान उपलब्ध हो।

अब उस शानदार Nix स्टोर स्पेस के साथ कुछ अद्भुत बनाएं! ❄️

--- Tranlated By Open Ai Tx | Last indexed: 2026-03-18 ---