Web Analytics

nothing-but-nix

⭐ 126 stars Arabic by wimpysworld

🌐 اللغة

لا شيء سوى نيكس

حوّل جهاز تشغيل GitHub Actions الخاص بك إلى قوة نيكس ❄️ من خلال القضاء التام على البرامج المثبتة غير الضرورية.

يأتي جهاز تشغيل GitHub Actions بمساحة قرص محدودة جدًا لنيكس - حوالي ~20 جيجابايت فقط. لا شيء سوى نيكس يقوم بحذف البرمجيات غير الضرورية بشكل وحشي، ليمنحك 65GB إلى 130GB لمخزن نيكس الخاص بك! 💪

كيفية الاستخدام 🔧

أضف هذا الإجراء قبل تثبيت نيكس في سير العمل الخاص بك:

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:

هذه البرمجيات الزائدة تترك فقط ~20 جيجابايت لمخزن Nix الخاص بك - بالكاد تكفي لبناءات Nix جادة! 😞

الحل: لا شيء سوى Nix ️❄️

لا شيء سوى Nix يتبع نهج الأرض المحروقة مع عدّادات GitHub Actions ويستعيد مساحة القرص بلا رحمة باستخدام هجوم من مرحلتين:

يتم تشغيل عملية التنظيف بواسطة rmz (من مشروع أوامر يونكس السريعة (FUC)) - بديل عالي الأداء لأمر rm يجعل استعادة المساحة فائقة السرعة! ⚡ النتيجة النهائية؟ عدّاد GitHub Actions مع 65 جيجابايت إلى 130 جيجابايت من المساحة الجاهزة لـ Nix! 😁

نمو الحجم الديناميكي

على عكس الحلول الأخرى، يقوم لا شيء سوى Nix بزيادة حجم /nix الخاص بك بشكل ديناميكي:

حجم /nix ينمو تلقائياً أثناء تنفيذ سير العمل 🎩🪄

اختر أداتك: بروتوكول Hatchet 🪓

تحكم في مستوى الإزالة 💥 باستخدام المُدخل 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

تحدد هذه المناطق الآمنة مقدار المساحة (بالميجابايت) التي سيتم استثناؤها من عملية استعادة المساحة برحمة:

قم بزيادة هذه القيم إذا كنت بحاجة إلى مساحة أكبر على أنظمة الملفات لديك، أو قللها إذا أردت عدم الرحمة! 😈

منح ملكية المستخدم لمجلد /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! ❄️

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