Web Analytics

nothing-but-nix

⭐ 213 stars Japanese by wimpysworld

🌐 言語

Nothing but Nix

GitHub Actions ランナーを Nix ❄️ のパワーハウスへ変貌させ、プリインストールされた不要なソフトウェアを徹底的に排除します。

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だけ ️❄️

NixだけはGitHub Actionsランナーに徹底的なアプローチを取り、2段階攻撃でディスクスペースを容赦なく取り戻します:

ファイルシステムの浄化はrmzFast Unix Commands (FUC)プロジェクト)の力によるもの—rmの高性能代替で高速なスペース回収を実現!⚡ 最終結果は?Nix対応スペースが65GBから130GBのGitHub Actionsランナー!😁

ダイナミックなボリューム拡張

他のソリューションとは異なり、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 を /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ボリューム上でビルドを実行するよう指示します。

トラブルシューティング 🔍

大規模ビルド時の「デバイスに空き容量がありません」

ビルドが空き容量不足で失敗する場合、Nothing but 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 ---