---
title: アンインストールとクリーンアップ
---

# アンインストールとクリーンアップ

`zcf uninstall` は安全なアンインストールプロセスを提供し、選択的アンインストール、完全アンインストール、競合解決をサポートします。環境をリセット、デバイスを移行、または設定をクリーンアップする必要があるシナリオに適しています。

## 機能概要

`zcf uninstall` コマンドは以下をサポートします：

1. 🗑️ **選択的アンインストール**：特定のコンポーネントを選択的に削除
2. 🔄 **完全アンインストール**：すべての ZCF 設定とツールを完全に削除
3. 💾 **バックアップ保持**：復元のためにバックアップを保持することをサポート
4. 🔍 **競合検出**：ファイル競合を検出して解決
5. 🗂️ **ゴミ箱サポート**：システムゴミ箱を使用して安全に削除（macOS、Windows、Linux をサポート）

## 基本的な使用方法

### 対話式モード（推奨）

```bash
# 対話式アンインストールメニューを開く
npx zcf uninstall

# またはメインメニューから
npx zcf
# 次に該当するアンインストールオプションを選択
```

対話式モードでは、ZCF が以下を案内します：

1. アンインストールモードを選択（完全アンインストールまたはカスタムアンインストール）
2. アンインストールするコンポーネントを選択（カスタムを選択した場合）
3. アンインストール操作を確認
4. バックアップを保持するかどうかを選択

### 完全アンインストール

すべての ZCF 関連の設定とツールを完全に削除します：

```bash
# 対話式完全アンインストール
npx zcf uninstall
# 次に「完全アンインストール」を選択

# 非対話式完全アンインストール
npx zcf uninstall --mode complete

# 言語を指定
npx zcf uninstall --mode complete --lang zh-CN
```

### カスタムアンインストール

特定のコンポーネントを選択的にアンインストールします：

```bash
# 対話式カスタムアンインストール
npx zcf uninstall
# 次に「カスタムアンインストール」を選択し、アンインストールするコンポーネントを選択

# 非対話式カスタムアンインストール（カンマ区切り）
npx zcf uninstall --mode custom --items "ccr,backups,cometix"

# 配列形式を使用（コード内）
npx zcf uninstall --mode custom --items '["ccr","backups"]'
```

## アンインストールモード

### 完全アンインストールモード

すべての ZCF 関連の設定とツールを削除します：

**削除される内容**：
- ✅ Claude Code 設定（`~/.claude/`）
- ✅ Codex 設定（`~/.codex/`）
- ✅ CCR 設定（`~/.claude-code-router/`）
- ✅ CCometixLine 設定（`~/.cometix/`）
- ✅ ZCF グローバル設定（`~/.ufomiao/zcf/`）
- ✅ すべてのバックアップファイル

**削除されない内容**：
- ❌ Claude Code CLI 自体（他の方法でアンインストールする必要がある）
- ❌ Codex CLI 自体（他の方法でアンインストールする必要がある）
- ❌ システムレベルのツールと依存関係

### カスタムアンインストールモード

以下のコンポーネントを選択的にアンインストールできます：

| コンポーネント | 説明 | 設定場所 |
|------|------|---------|
| `claude-code` | Claude Code 設定 | `~/.claude/` |
| `codex` | Codex 設定 | `~/.codex/` |
| `ccr` | Claude Code Router 設定 | `~/.claude-code-router/` |
| `cometix` | CCometixLine 設定 | `~/.cometix/` |
| `backups` | すべてのバックアップファイル | `~/.claude/backup/`, `~/.codex/backup/` など |
| `zcf-config` | ZCF グローバル設定 | `~/.ufomiao/zcf/` |

```bash
# CCR のみをアンインストール
npx zcf uninstall --mode custom --items ccr

# 複数のコンポーネントをアンインストール
npx zcf uninstall --mode custom --items "ccr,cometix,backups"

# すべてのバックアップをアンインストール（スペースを解放）
npx zcf uninstall --mode custom --items backups
```

## よく使うパラメータ

| パラメータ | 説明 | オプション値 | デフォルト値 |
|------|------|--------|--------|
| `--mode, -m` | アンインストールモード | `complete`, `custom`, `interactive` | `interactive` |
| `--items, -i` | アンインストールするコンポーネント（カスタムモード） | カンマ区切りのコンポーネント名または JSON 配列 | - |
| `--lang, -l` | インターフェース言語 | `zh-CN`, `en` | `en` |

## 使用シナリオ

### シナリオ 1：開発環境をリセット

```bash
# 完全アンインストールして再初期化
npx zcf uninstall --mode complete
npx zcf init
```

### シナリオ 2：バックアップファイルをクリーンアップ

```bash
# スペースを解放するためにバックアップのみをクリーンアップ
npx zcf uninstall --mode custom --items backups
```

### シナリオ 3：新しいデバイスに移行

```bash
# 新しいデバイスで再設定し、古いデバイスをクリーンアップ
# 1. 新しいデバイスで設定をバックアップ
cp -r ~/.claude ~/claude-backup
cp -r ~/.codex ~/codex-backup

# 2. 新しいデバイスで初期化
npx zcf init

# 3. 古いデバイスでクリーンアップ
npx zcf uninstall --mode complete
```

### シナリオ 4：特定のツールのみを削除

```bash
# CCR のみをアンインストール（他の設定を保持）
npx zcf uninstall --mode custom --items ccr

# CCometixLine のみをアンインストール
npx zcf uninstall --mode custom --items cometix
```

## バックアップメカニズム

### アンインストール前のバックアップ

アンインストールを実行する前に、ZCF は：

1. **アンインストールバックアップを作成**：設定を一時ディレクトリにバックアップ
2. **バックアップ場所を記録**：復元のためにバックアップ場所を表示
3. **復元オプションを提供**：バックアップを保持するかどうかを尋ねる

### バックアップの復元

復元が必要な場合：

```bash
# バックアップ場所を検索
ls -la ~/.claude/backup/
ls -la ~/.codex/backup/

# 手動復元（例）
cp -r ~/.claude/backup/backup_2025-01-15_10-30-45/* ~/.claude/
```

## 安全メカニズム

### 対話式確認

すべてのアンインストール操作には確認が必要です：

```
⚠️  警告：この操作は以下の内容を削除します：
   - Claude Code 設定
   - すべてのバックアップファイル

   続行しますか？ (y/N)
```

### 競合検出

ファイル競合が検出された場合：

1. **競合リストを表示**：すべての競合ファイルをリスト表示
2. **処理方法を尋ねる**：スキップ、上書き、またはマージを選択
3. **競合バックアップを作成**：復元のために競合ファイルをバックアップ

### ゴミ箱サポート

システムゴミ箱を使用した安全な削除をサポートします：

- ✅ **macOS**：システムゴミ箱を使用
- ✅ **Windows**：ゴミ箱を使用
- ✅ **Linux**：trash-cli を使用（インストールされている場合）

システムゴミ箱が利用できない場合、ファイルを直接削除します。

## ベストプラクティス

### 1. アンインストール前のバックアップ

アンインストール前に重要な設定を手動でバックアップすることをお勧めします：

```bash
# Claude Code 設定をバックアップ
tar -czf claude-backup.tar.gz ~/.claude/

# Codex 設定をバックアップ
tar -czf codex-backup.tar.gz ~/.codex/

# ZCF 設定をバックアップ
tar -czf zcf-backup.tar.gz ~/.ufomiao/zcf/
```

### 2. 選択的アンインストール

一部の設定のみをクリーンアップする必要がある場合：

```bash
# バックアップファイルをクリーンアップ（スペースを解放）
npx zcf uninstall --mode custom --items backups

# 特定のツールの設定をクリーンアップ
npx zcf uninstall --mode custom --items ccr
```

### 3. チーム環境

チーム環境では：

- **統一アンインストール戦略**：チーム内で統一されたアンインストールプロセス
- **重要な設定を保持**：チーム共有の設定テンプレートを保持
- **ドキュメント記録**：アンインストールした設定と理由を記録

### 4. テスト環境

テストまたは開発環境では：

```bash
# テスト環境をすばやくリセット
npx zcf uninstall --mode complete
npx zcf init -s -p 302ai -k "test-key" -g zh-CN
```

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

### アンインストールの失敗

アンインストールが失敗した場合：

1. **権限を確認**：設定ディレクトリに削除権限があることを確認
2. **ファイルの占有を確認**：ファイルが他のプロセスによって占有されていないことを確認
3. **エラー情報を確認**：ターミナル出力の詳細エラーを確認

```bash
# 権限を確認
ls -la ~/.claude/ ~/.codex/

# プロセス占有を確認
lsof ~/.claude/  # macOS/Linux
```

### 一部のファイルが削除されない

一部のファイルが削除されない場合：

1. **手動削除**：システムコマンドを使用して手動削除
2. **隠しファイルを確認**：すべての隠しファイルが削除されていることを確認
3. **空のディレクトリをクリーンアップ**：空のディレクトリを削除

```bash
# 手動クリーンアップ（注意して使用）
rm -rf ~/.claude/
rm -rf ~/.codex/
rm -rf ~/.ufomiao/zcf/
```

### バックアップの復元が失敗する

バックアップの復元が失敗した場合：

1. **バックアップの完全性を確認**：バックアップファイルが完全であることを確認
2. **権限を確認**：復元権限があることを確認
3. **段階的に復元**：一括復元ではなく、ファイルごとに復元

## 他の操作との違い

| 操作 | `zcf uninstall` | `zcf init --config-action new` |
|------|----------------|-------------------------------|
| **目的** | 設定を完全に削除 | 設定を再作成 |
| **削除内容** | すべての設定とツールを削除 | 設定のみをリセットし、ツールを保持 |
| **バックアップ** | オプションでバックアップを保持 | 自動的にバックアップを作成 |
| **復元** | バックアップを手動復元 | 古い設定を自動保持 |

> 💡 **推奨事項**：
> - 環境を完全にクリーンアップする必要がある場合、`zcf uninstall` を使用
> - 設定をリセットするがツールを保持する必要がある場合、`zcf init --config-action new` を使用

## 関連リソース

- [zcf init](init.md) - 環境を再初期化
- [設定管理](../features/multi-config.md) - バックアップと復元メカニズム
- [トラブルシューティング](../advanced/troubleshooting.md) - 一般的な問題の解決

> ⚠️ **警告**：アンインストール操作は不可逆です。実行前に重要な設定をバックアップしたことを確認してください。一部の設定のみをリセットする必要がある場合は、完全アンインストールではなく、`zcf init` の `--config-action` オプションを使用することをお勧めします。
