huawei-cloud-kunpeng-source-code-migrate について
DevKit CLIでHuawei Kunpeng ARM64へのソースコード移行適性を評価するスキルです。移植性を調べる開発者やチーム向けに、ローカルまたはリモートでのスキャン、SSH転送、レポート作成、任意のKunpeng ECS構築を案内します。
主な機能
- 01記載された8言語のスキャン
- 02ローカルまたはリモートでのDevKit実行
- 03SSH実行とSFTP転送のガイダンス
- 04移行評価レポートの作成
- 05任意のKunpeng ECS構築
活用シーン
- 01Kunpeng ARM64へのプロジェクト移植性確認
- 02ソースコードの移行課題の検出
- 03移行評価レポートの作成
- 04リモート評価サーバーの構築
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ huaweicloud/ huaweicloud-skills --skill huawei-cloud-kunpeng-source-code-migrateインストール後、Claude Code で/huawei-cloud-kunpeng-source-code-migrateを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/acceptance-criteria.mdcli-installation-guide.mddevkit-cli-reference.mddevkit-installation-guide.mdiam-policies.mdmigration-report-guide.mdprerequisites.mdscripts-guide.mdtask-connect-server.mdtask-install-devkit.mdtask-local-devkit.mdtask-prepare-server.mdtask-scan-source-code.mdtroubleshooting.mdverification-method.mdscripts/detect_os.pyinstall_devkit.shprovision_kunpeng_server.shssh_client.py詳細
Kunpeng ソースコード移行可能性評価
Huawei DevKit CLI ツールを使用して、C/C++/ASM/Fortran/Go/Java/Python/Scala のソースコードを Kunpeng(ARM64)プラットフォームへ移行できるか評価します。
概要
Huawei DevKit CLI を使用して、ソースコードを Kunpeng(ARM64)プラットフォームへ移行できるか評価します。SSH 経由でソースサーバーに接続するか、ローカルにインストールし、DevKit をインストールしてソースコードをスキャンし、移行評価レポートを生成します。ユーザーがリモートサーバーを持っていない場合は、hcloud CLI を介して Huawei Cloud の Kunpeng ECS インスタンス(貴陽リージョン1)を自動的にプロビジョニングできます。
アーキテクチャ: ローカルでの検出 + リモートでの実行 + SFTP 転送。すべての SSH 操作では、統一された scripts/ssh_client.py(paramiko + パスワード環境変数)を使用し、クロスプラットフォームで一貫した動作を実現します。全体ツリーについては、以下の「アーキテクチャ」セクションを参照してください。
適用シナリオ:
- ソースコードの Kunpeng ARM プラットフォームへの移植性/移行可能性を評価する
- C/C++/ASM/Fortran/Go/Java/Python/Scala コードをスキャンして移行上の問題を検出する
- ソフトウェアプロジェクトの Kunpeng 移行評価レポートを生成する
- ソースコードと ARM64/Kunpeng アーキテクチャとの互換性を確認する
- 移行評価用に Huawei Cloud 上で Kunpeng サーバーをプロビジョニングする
レポートの保存先(ユーザーから明示的な要望がない限り固定): Windows → C:\devkit-report\、Linux/macOS → /home/devkit-report/。
前提条件
CLI のバージョン要件:
| ツール | バージョン | 用途 |
|---|---|---|
| Python | 3.x | ssh_client.py、detect_os.py の実行、paramiko の依存関係 |
| paramiko | 最新の安定版 | SSH 接続(pip install paramiko) |
| hcloud(KooCLI) | >= 3.2.0 | プロビジョニング経路(ステップ3d)でのみ必要 |
| DevKit CLI | install_devkit.sh によって自動インストール | ソースコードの移行スキャン |
認証:
- SSH 認証情報(既存サーバー、ステップ3c): ユーザーは自身のターミナルで環境変数
KUNPENG_SERVER_HOST、KUNPENG_SERVER_PORT(デフォルトは22)、KUNPENG_SERVER_USER(デフォルトはroot)、MIGRATE_SSH_PASSを設定する必要があります。AI はこれらの値を絶対に尋ねたり、復唱したりしてはいけません。 - Huawei Cloud AK/SK(プロビジョニング経路、ステップ3d): ユーザーは自身のターミナルで
hcloud configure set --cli-region=cn-southwest-2 --cli-access-key=<your-ak> --cli-secret-key=<your-sk>を実行する必要があります。AI は AK/SK を絶対に尋ねてはいけません。
IAM 権限(ステップ3dのみ): Huawei Cloud 上で Kunpeng ECS をプロビジョニングするために必要です。最小限の権限セット:ECS の作成/一覧表示/削除、VPC の作成/取得/削除、サブネット、セキュリティグループ、EIP の作成/削除、IMS の一覧表示、IAM プロジェクトの一覧表示。ポリシー JSON 全体と設定手順については、references/iam-policies.md を参照してください。
OS サポート: DevKit のローカルインストールは openEuler/CentOS/Ubuntu/Kylin/UOS/EulerOS/Debian/SUSE/NeoKylin に対応しています。Windows と macOS はローカルインストールに対応していません。リモートの Linux サーバーを使用する必要があります。
コアコマンド
1. ローカル OS の検出:
python <skill_dir>/scripts/detect_os.py
2. SSH 接続とリモート実行(統一された paramiko クライアント):
python <skill_dir>/scripts/ssh_client.py test # Test SSH connection
python <skill_dir>/scripts/ssh_client.py exec "uname -a" 30 # Execute remote command
python <skill_dir>/scripts/ssh_client.py put <local> <remote> # SFTP upload single file
python <skill_dir>/scripts/ssh_client.py put-dir <local_dir> <remote_dir> # SFTP upload directory
python <skill_dir>/scripts/ssh_client.py get-report # Download migration report
3. DevKit のインストール:
bash <skill_dir>/scripts/install_devkit.sh --yes
4. ソースコードの移行スキャン(DevKit CLI):
# C/C++ project (with build command):
devkit porting src-mig -i /home/project -s 'c, c++, asm' -b make -c 'make all' -p gcc9.3.0 -o /tmp/devkit-report -r all
# Java/Python project (no build command):
devkit porting src-mig -i /home/project -s 'java, python' -o /tmp/devkit-report -r all
5. Kunpeng ECS の自動プロビジョニング(ステップ3dのみ):
bash <skill_dir>/scripts/provision_kunpeng_server.sh --confirm
6. hcloud CLI のインストールと設定(ステップ3dのみ):
curl -LO "https://cn-north-4-hdn-koocli.obs.cn-north-4.myhuaweicloud.com/cli/latest/huaweicloud-cli-linux-amd64.tar.gz"
tar -xzf huaweicloud-cli-linux-amd64.tar.gz && chmod +x hcloud && sudo mv hcloud /usr/local/bin/
hcloud configure set --cli-region=cn-southwest-2 --cli-access-key=<your-ak> --cli-secret-key=<your-sk>
hcloud version # Expected: >= 3.2.0
パラメーターの確認
AI は、実行前に以下のパラメーターをユーザーに確認する必要があります。
SSH 接続パラメーター(環境変数。ユーザーが自身のターミナルで設定):
| パラメーター | 環境変数 | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
| サーバーアドレス | KUNPENG_SERVER_HOST | はい | - | リモートサーバーの IP アドレス/ホスト名 |
| SSH ポート | KUNPENG_SERVER_PORT | いいえ | 22 | SSH ポート |
| SSH ユーザー名 | KUNPENG_SERVER_USER | いいえ | root | SSH ログインユーザー |
| SSH パスワード | MIGRATE_SSH_PASS | はい | - | paramiko によって読み取られ、argv には含まれません。接続のたびに os.environ から消去されます |
DevKit スキャンパラメーター(スキャン前にユーザーに確認):
| パラメーター | CLI オプション | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
| ソースパス | -i | はい | - | ソースコードディレクトリ(最初に必ずユーザーに確認) |
| 出力ディレクトリ | -o | はい | /tmp/devkit-report | レポート出力ディレクトリ(存在している必要があります) |
| 言語 | -s | はい | - | c, c++, asm, fortran, go, java, python, scala(小文字、カンマ区切り) |
| ビルドコマンド | -c | いいえ | なし | 例:'make all' |
| ビルドツール | -b | いいえ | なし | make/cmake/automake/go/bazel/blade |
| コンパイラーバージョン | -p | いいえ | なし | 例:gcc9.3.0 |
| レポート形式 | -r | いいえ | all | all/json/html/csv |
| 対象 OS | -t | いいえ | 自動検出 | 例:openEuler22.03 |
| 並行処理数 | -np | いいえ | 1 | 並行プロセス数 |
⚠️ AI はスキャン前に必ずソースコードのパスをユーザーに確認してください。ユーザーの確認なしに、ローカルファイルをスキャンまたはアップロードしてはいけません。
⛔ 禁止されている操作
| 禁止されている操作 | 理由 |
|---|---|
| ❌ 会話中に SSH 認証情報を入力するようユーザーに求める | 認証情報は環境変数からのみ読み取る必要があります |
| ❌ SSH パスワードや認証情報を表示/出力する | 認証情報の漏えいを防ぐため |
| ❌ 認証情報をプレーンテキストファイルに保存する | 認証情報は環境変数内にのみ存在する必要があります |
| ❌ リモートサーバーで破壊的なコマンドを実行する(rm -rf、フォーマットなど) | 元に戻せない損害を防ぐため |
| ❌ ユーザーの確認なしにソースコードを変更する | 移行評価は読み取り専用です |
| ❌ DevKit の対象範囲外のパッケージをインストールする | DevKit とその依存関係のみインストールできます |
| ❌ ソースコードのパスをユーザーに確認せずにスキャンする | ソースコードの場所は必ず確認する必要があります |
| ❌ 明示的なユーザー確認なしにクラウドリソースを削除する | リソースの削除は元に戻せず、リスクが非常に高いため |
❌ hcloud ... Delete* コマンドを自律的に実行する | すべての削除操作には明示的なユーザー確認が必要です |
ユーザーが禁止されている操作を依頼した場合は、拒否し、次のように伝えてください:「セキュリティ上の制約により、このスキルでは[具体的な操作]を実行できません。必要な場合は、この操作を手動で行ってください。」
アーキテクチャ
Kunpeng Source Code Migration Assessment
├── DetectLocalOS (Detect agent OS → determine DevKit install path)
├── PrepareServer (Determine where to install DevKit and run scan)
│ ├── LocalInstall (Install DevKit locally — only if OS is supported)
│ ├── RemoteInstall (Install DevKit on remote server via SSH)
│ │ ├── HasServer (Configure SSH via ssh_client.py: paramiko + password env var)
│ │ └── NoServer (Install hcloud CLI → Provision Kunpeng ECS → Configure SSH)
│ └── NotSupported (Local OS not supported → must use remote server)
├── ConnectServer (SSH connect via paramiko + MIGRATE_SSH_PASS env var)
├── InstallDevKit (Detect OS and install DevKit CLI tool)
└── ScanSourceCode (Scan source code → generate report → save to fixed local path)
└── ReportSave (Windows: C:\devkit-report\ | Linux/macOS: /home/devkit-report/)
⚠️ タスク 0(DetectLocalOS + PrepareServer)は必ず最初に実行してください — ワークフロー全体の進行経路が決まります。
SSH 接続戦略
すべての SSH 操作では、統一された scripts/ssh_client.py(paramiko + 環境変数から取得するパスワード)を使用します。ssh/scp コマンド、ControlMaster、鍵の注入、Huawei Cloud のリージョンへの依存はありません。Windows、Linux、macOS で同じように動作します。
環境変数(ユーザーが自身のターミナルで設定します。AI が値を参照することはありません):
| 変数 | 説明 | デフォルト |
|---|---|---|
KUNPENG_SERVER_HOST | リモートサーバーの IP アドレス/ホスト名 | (必須) |
KUNPENG_SERVER_PORT | SSH ポート | 22 |
KUNPENG_SERVER_USER | SSH ユーザー名 | root |
MIGRATE_SSH_PASS | SSH パスワード(paramiko が読み取り、argv には含まれず、接続ごとに消去されます) | (必須) |
環境変数の設定(クロスプラットフォーム):
# Linux / macOS (current session):
export KUNPENG_SERVER_HOST='<your-server-ip>'
export KUNPENG_SERVER_PORT='22'
export KUNPENG_SERVER_USER='root'
export MIGRATE_SSH_PASS='<your-password>'
# Windows PowerShell (current session):
$env:KUNPENG_SERVER_HOST='<your-server-ip>'
$env:KUNPENG_SERVER_PORT='22'
$env:KUNPENG_SERVER_USER='root'
$env:MIGRATE_SSH_PASS='<your-password>'
# Windows (persistent, GUI): Settings > Environment Variables > User > New
# (requires IDE/terminal restart)
認証情報の解決優先順位(最初に一致したものを使用します):
- 現在のプロセスの環境変数(
export/$env:) /tmp/kunpeng_server_env.sh(Linux/macOS)または%TEMP%/kunpeng_server_env.sh(Windows)- Windows ユーザーレベルのレジストリ(
winreg)— GUI で設定した変数のフォールバック - デフォルト値
ssh_client.py のサブコマンド:
| サブコマンド | 説明 |
|---|---|
test | SSH 接続を確認します(echo SSH_OK && uname -a) |
exec "<cmd>" [timeout] | リモートサーバーでシェルコマンドを実行します |
put <local> <remote> | SFTP 経由で単一のファイルをアップロードします |
put-dir <local_dir> <remote_dir> | SFTP 経由でディレクトリを再帰的にアップロードします |
get <remote> <local> | 単一のファイルをダウンロードします |
get-dir <remote_dir> <local_dir> | ディレクトリを再帰的にダウンロードします |
get-report [remote_dir] [local_dir] | DevKit レポートをダウンロードします(Code_Porting_*.{html,json,csv,txt} でフィルタリング)。デフォルト:リモート=/tmp/devkit-report、ローカル=C:\devkit-report(Win)または /home/devkit-report(Linux) |
save-env | 接続情報(ホスト/ポート/ユーザー)を一時環境ファイルに保存します(パスワードは保存しません) |
📦 SFTP 優先のファイル転送(Windows + MSYS2 では特に重要)
⚠️ Windows + MSYS2/Git Bash では、Python に渡される前にシェルがコマンド引数内の Unix パスを Windows パスに変換します(例:
/tmp/foo→C:/Users/.../Temp/2/foo)。これは Python のsys.argv内から修正できません。
ルール:ファイル転送には、ssh_client.py の CLI サブコマンドではなく、Python から paramiko の SFTP API を直接使用してください。
import os, paramiko
host = os.environ.get('KUNPENG_SERVER_HOST')
port = int(os.environ.get('KUNPENG_SERVER_PORT', '22'))
user = os.environ.get('KUNPENG_SERVER_USER', 'root')
password = os.environ.get('MIGRATE_SSH_PASS')
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(host, port=port, username=user, password=password, timeout=30)
sftp = client.open_sftp()
sftp.put(r'C:\local\install_devkit.sh', '/tmp/install_devkit.sh')
sftp.chmod('/tmp/install_devkit.sh', 0o755)
sftp.close()
client.close()
AI エージェントのワークフロー:
- ファイル転送 → paramiko の SFTP API を直接使用(上記を参照)
- コマンド実行 →
ssh_client.py exec "<cmd>"(短いコマンドのみ) - スクリプト実行 → SFTP でアップロードし、
exec "bash /tmp/script.sh"を実行
ssh_client.py put/get は Windows パスの変換を検出すると、エラーで終了し、paramiko の SFTP API を直接使用するよう案内します。references/scripts-guide.md#sftp-first-file-transfer および references/troubleshooting.md#7-msys2-path-conversion-error-windows-only を参照してください。
組み込みスクリプト
AI は、手順ごとのコマンドを手動で実行する代わりに、必ずこれらのスクリプトを使用してください。
📄 詳細ガイド → references/scripts-guide.md
| スクリプト | 説明 |
|---|---|
| detect_os.py | ローカル OS の検出(os_type/arch/local_install_supported を出力) |
| ssh_client.py | 統一されたクロスプラットフォーム SSH クライアント(paramiko + 環境変数)。サブコマンド:test、exec、put、put-dir、get、get-dir、get-report、save-env |
| install_devkit.sh | DevKit CLI のインストール(OS/アーキテクチャの自動検出、ダウンロード、インストール、検証) |
| provision_kunpeng_server.sh | Kunpeng ECS のプロビジョニング(Huawei Cloud 貴陽リージョン 1) |
サポート対象言語
| 言語 | ファイル拡張子 | 移行時の注意事項 |
|---|---|---|
| C | .c, .h | インラインアセンブリ、プラットフォーム固有のヘッダー、バイト順、ポインターサイズ |
| C++ | .cpp, .cc, .cxx, .hpp | C と同様に、名前修飾、ABI 互換性 |
| アセンブリ(ASM) | .s, .S, .asm | アーキテクチャ固有の命令、レジスター、呼び出し規約 |
| Fortran | .f, .f90, .f95, .f03 | コンパイラー組み込み関数、MPI ライブラリーの互換性 |
| Go | .go | CGO 呼び出し、アセンブリファイル、アーキテクチャ固有のビルドタグ |
| Java | .java | JNI ネイティブライブラリー、アーキテクチャ固有の依存関係 |
| Python | .py | C 拡張(Cython、CFFI)、ネイティブバインディング |
| Scala | .scala | JNI 呼び出し、ネイティブライブラリーの依存関係 |
コアワークフロー
タスク 0:ローカル OS の検出と環境の準備
これは最初のタスクです。 エージェントのローカル OS を検出し、DevKit のインストール先を決定します。
ステップ 1:ローカル OS を検出します:
python <skill_dir>/scripts/detect_os.py
os_type、os_name、os_version、arch、local_install_supported を key=value 形式で出力します。外部依存関係なしで、すべてのプラットフォームで動作します。
⚠️ AI は、
uname -m、cat /etc/os-release、PowerShell などを手動で実行するのではなく、detect_os.pyを使用する必要があります。
DevKit がサポートするローカル OS の一覧:
| OS | 最小バージョン | 備考 |
|---|---|---|
| openEuler | 20.03 LTS | Kunpeng 向けに推奨 |
| CentOS | 7.6 | 8.0 もサポート |
| Ubuntu | 18.04 | 20.04、22.04 もサポート |
| Kylin | V10 | 国産 OS |
| UOS | 20 | 国産 OS |
| EulerOS | 2.8 | 2.9 もサポート |
| Debian | 10 | 11 もサポート |
| SUSE | 12 | |
| NeoKylin | V7 | 国産 OS |
Windows と macOS は、DevKit のローカルインストールに対応していません。 DevKit はリモート Linux サーバーにインストールする必要があります。
ステップ 2:DevKit のインストール先をユーザーに確認します
- ローカル OS がサポート対象の場合(
LOCAL_INSTALL_SUPPORTED=true):「ローカルにインストール」または「リモートサーバーにインストール」のどちらかを尋ねます- 「ローカルにインストール」→ ステップ 3a
- 「リモートサーバーにインストール」→ ステップ 3b
- ローカル OS がサポート対象外の場合:「既存のリモート Linux サーバー」または「Huawei Cloud 上に Kunpeng サーバーをプロビジョニング」のどちらかを尋ねます
- 「既存のリモート Linux サーバー」→ ステップ 3c
- 「Kunpeng サーバーをプロビジョニング」→ ステップ 3d
ステップ 3a:ローカルインストール
- DevKit をインストールします:
bash <skill_dir>/scripts/install_devkit.sh --yes - ローカルのソースコードのパスをユーザーに確認します
- ローカルで DevKit スキャンを実行します(SSH は不要です)
- タスク 1 をスキップし、ローカルパスを使ってタスク 3 に進みます
📄 詳細 → references/task-local-devkit.md
ステップ 3b:リモートインストール — リモートサーバーについて確認します
「既存のリモート Linux サーバー」または「Kunpeng サーバーをプロビジョニング」のどちらかを尋ねます → ステップ 3c または 3d。
ステップ 3c:ユーザーがリモートサーバーを所有している場合 — SSH を設定します
ユーザーは自身のターミナルで KUNPENG_SERVER_HOST/PORT/USER と MIGRATE_SSH_PASS を設定します(AI が値を参照することはありません)。次のコマンドで確認します:
python <skill_dir>/scripts/ssh_client.py test
⚠️ リージョンへの依存はありません: リモートサーバーは、任意のクラウドまたはオンプレミス上に配置できます。SSH に hcloud CLI は不要です。
確認に成功したら、タスク 1 に進みます。
ステップ 3d:ユーザーがサーバーを所有していない場合 — Huawei Cloud 上に Kunpeng ECS をプロビジョニングします
⛔ 重要:AI は、すべてのクラウドリソースの作成に
provision_kunpeng_server.shを使用する必要があります。hcloud API を個別に手動で呼び出してはいけません。
- hcloud CLI のインストールと認証を確認します
- プロビジョニングの内容と概算費用を提示し、ユーザーに確認します
- 実行します:
bash <skill_dir>/scripts/provision_kunpeng_server.sh --confirm- VPC → サブネット → セキュリティグループ + SSH ルール → EIP → ECS の順に作成します
- ランダムな root パスワードを生成し、
MIGRATE_SSH_PASSとして/tmp/kunpeng_server_env.shに保存します(chmod 600)
- 環境変数を読み込みます:
source /tmp/kunpeng_server_env.sh - SSH を確認します:
python <skill_dir>/scripts/ssh_client.py test - タスク 1 に進みます
- スキャンの完了後(タスク 3)、リソースのクリーンアップに関するリマインダーを提示します
📄 詳細 → references/task-prepare-server.md
タスク 1:SSH 経由でソースコードサーバーに接続する
python <skill_dir>/scripts/ssh_client.py test を実行して、接続を確認します。以降のすべての操作では、ssh_client.py のサブコマンドを使用します(上記の SSH 接続方法を参照)。
📄 詳細 → references/task-connect-server.md
タスク 2:DevKit CLI ツールをインストールする
scripts/install_devkit.sh を使用して、対象マシンに DevKit CLI をインストールします。このスクリプトは、OS とアーキテクチャを自動検出し、依存関係をインストールして、適切なパッケージをダウンロードし、インストールを確認します。
⚠️ AI は、手順ごとにコマンドを手動実行するのではなく、必ず
scripts/install_devkit.shを使用する必要があります。
📄 詳細 → references/task-install-devkit.md
タスク 3:ソースコードをスキャンし、移行レポートを生成する
⚠️ 重要なルール:
- スキャンを開始する前に、必ずユーザーにソースコードのパスを確認してください。 ユーザーの確認なしにスキャンしてはいけません。
- 許可なくローカルのソースコードをスキャンしてはいけません。
- 許可なくローカルファイルをリモートサーバーにアップロードしてはいけません。
- ユーザーが選択できるよう、リモートサーバー上で利用可能なソースコードディレクトリを一覧表示できます。
レポートの保存先(ローカルへのダウンロード):
| エージェントの OS | ローカルのレポート保存先 |
|---|---|
| Windows | C:\devkit-report |
| Linux / macOS | /home/devkit-report |
スキルは、ディレクトリが存在しない場合に作成する必要があります。レポートファイル(HTML、JSON、CSV)は、<save_path>/ の直下に保存する必要があります(project_name のサブディレクトリは作成しません)。ユーザーが別の場所を明示的に要求しない限り、このパスを使用します。
レポートのダウンロード:
# Download with defaults (remote=/tmp/devkit-report, local=C:\devkit-report on Windows):
python <skill_dir>/scripts/ssh_client.py get-report
# Or specify custom paths:
python <skill_dir>/scripts/ssh_client.py get-report /tmp/devkit-report /home/devkit-report
⚠️ AI は、レポートのダウンロードに必ず
get-report(または paramiko SFTP API)を使用する必要があります。 ファイルのダウンロードに、base64/cat を使ったexecを使用してはいけません。
📄 詳細 → references/task-scan-source-code.md
DevKit CLI コマンドリファレンス
主なツールは Kunpeng DevKit CLI(devkit コマンド)です。
ソース移行コマンド:
devkit porting src-mig -i <source_path> -o <output_path> -s '<language_list>' [options]
必須パラメーター:
| パラメーター | 説明 | 例 |
|---|---|---|
-i | ソースコードディレクトリのパス | /home/user/project |
-o | レポートの出力ディレクトリ(存在している必要があります) | /tmp/devkit-report |
-s | ソース言語(複数指定する場合はカンマ区切り) | 'c, c++, asm' |
任意のパラメーター:
| パラメーター | 説明 | デフォルト | 例 |
|---|---|---|---|
-c | ビルド/コンパイルコマンド | なし | 'make all' |
-b | ビルドツール | なし | make、cmake、automake、go、bazel、blade |
-p | コンパイラのバージョン | なし | gcc9.3.0 |
-f | Fortran コンパイラのバージョン | なし | gfortran9 |
-t | 対象 OS | 自動検出 | openEuler22.03 |
-r | レポート形式 | all | all、json、html、csv |
-l | ログレベル | 1(INFO) | 0(DEBUG)、1(INFO)、2(WARN)、3(ERROR) |
-np | 同時実行プロセス数 | 1 | 4 |
--ignore | 無視ルールの設定ファイル | 組み込み | /path/to/ignore_rules.json |
--ignore-path | 無視するソースパス | なし | /path/to/exclude |
--kp-compatibility | Kunpeng 世代間互換性チェック | オフ | (フラグ) |
言語の値(-s): c、c++、asm、fortran、go、java、python、scala(小文字、カンマ区切り)
コンパイラのバージョン(-p): gcc4.8.5、gcc7.3.0、gcc9.3.0、gcc10.3.0、gcc12.3.0、bisheng compiler3.0.0、bisheng compiler4.0.0、gcc for openeuler3.0.3 など。
スキャンの例:
# C/C++ project with make build:
devkit porting src-mig -i /home/project -s 'c, c++, asm' -b make -c 'make all' -p gcc9.3.0 -o /tmp/report -r all
# Java/Python project (interpreted, no build command):
devkit porting src-mig -i /home/project -s 'java, python' -o /tmp/report -r all
⚠️
devkitバイナリは、インストールディレクトリから実行する必要があります(例:cd /usr/local/devkit && ./devkit)。または、ディレクトリを PATH に含めてください。出力ディレクトリ(-o)は、あらかじめ作成しておく必要があります。
📄 CLI リファレンス全文 → references/devkit-cli-reference.md
参考資料
| ドキュメント | 説明 |
|---|---|
| scripts-guide.md | 組み込みスクリプト:SSH クライアント、プロビジョニング、DevKit のインストール |
| prerequisites.md | 前提条件と認証 |
| iam-policies.md | ECS のプロビジョニングに必要な IAM 権限ポリシー(ステップ 3d) |
| cli-installation-guide.md | hcloud(KooCLI)のインストールガイド |
| task-prepare-server.md | タスク 0:OS の検出、環境の準備 |
| task-local-devkit.md | タスク 0a:DevKit のローカルインストール |
| task-connect-server.md | タスク 1:サーバーへの SSH 接続 |
| task-install-devkit.md | タスク 2:DevKit CLI のインストール |
| task-scan-source-code.md | タスク 3:ソースコードのスキャン |
| devkit-cli-reference.md | DevKit CLI コマンドリファレンス |
| devkit-installation-guide.md | DevKit のインストールガイド |
| migration-report-guide.md | 移行レポートの解釈 |
| troubleshooting.md | トラブルシューティングと一般的な問題 |
| acceptance-criteria.md | 受け入れ基準 |
| verification-method.md | 検証方法 |
リソースのクリーンアップに関する注意
⚠️ スキャンが完了してレポートを提示した後、AI はプロビジョニングしたリソースをクリーンアップするよう、必ずユーザーに注意を促してください(ステップ 3d のプロビジョニング経路にのみ適用されます)。テキストのみで提示し、削除コマンドは絶対に実行しないでください。
### 🧹 Resource Cleanup Reminder
The following resources were created during this assessment and incur ongoing charges:
| Resource Type | Resource ID | Details |
|---------------|-------------|---------|
| ECS Instance | <id> | <IP>, <flavor> |
| VPC | <id> | <name> |
| Subnet | <id> | <name> |
| EIP | <id> | <IP> |
| Security Group| <id> | <name> |
To delete these resources, execute the following commands manually:
[delete commands here]
⚠️ WARNING: Deletion is IRREVERSIBLE. Verify resource IDs before executing.
⚠️ AI will NOT execute these commands. Please run them manually.
ステップ 3c(既存のサーバー)およびステップ 3a(ローカルインストール)の場合: ユーザーが自分のサーバーを提供するか、DevKit をローカルにインストールしているため、クリーンアップに関する注意は不要です。