Web Analytics

nothing-but-nix

⭐ 126 stars Japanese by wimpysworld

🌐 言語

Nothing but Nix

Nix ❄️ のみを使用するパワフルな GitHub Actions ランナーへ変身し、事前インストールされた不要なソフトウェアを徹底的に排除します。

GitHub Actions ランナーには Nix 用のディスク容量がわずか約 20GB しかありません。 Nothing but Nix は不要なソフトウェアを徹底的に削除し、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だけの環境 ️❄️

Nothing but Nixは、GitHub Actionsランナーに対して徹底的な掃討戦を仕掛け、二段階の攻撃でディスク容量を容赦なく奪い返します:

ファイルシステムの掃除は、Fast Unix Commands (FUC)プロジェクトのrmzを使用しています。rmの高速代替で、容量回収が超高速!⚡ 結果は? GitHub Actionsランナーに65GBから130GBのNix対応スペースが確保されます!😁

動的なボリューム成長

他の解決策と違い、Nothing but Nix/nixボリュームを動的に拡張します:

/nixボリュームはワークフロー実行中に自動的に拡大します 🎩🪄

武器を選べ: 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 内で全操作に sudo を使わない特定のNixインストーラースクリプトなど)、nix-permission-edict を有効にできます:

- uses: wimpysworld/nothing-but-nix@main
  with:
    nix-permission-edict: true  # Default: false
nix-permission-edicttrue に設定されている場合、アクションは /nix をマウントした後に sudo chown -R "$(id --user)":"$(id --group)" /nix を実行します。

さあ、その素晴らしい Nix ストアのスペースを使って何か素敵なものを作りましょう! ❄️

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