インストールエラーのログを見つめる開発者。OpenHumanのクロスプラットフォームインストールトラブルシューティングのテーマ

OpenHumanは「ローカルファースト・長期記憶付きパーソナルAIエージェント」として2026年初頭に急速に注目を集めましたが、プロジェクトはまだEarly Beta段階です。Rust + TypeScriptのデュアルスタックビルド、システムレベルの依存関係、各プラットフォームの権限モデルの違いにより、最初のステップでつまずく方が多くいます。本ガイドでは4大プラットフォームでよく発生するエラーシナリオを体系的にまとめ、各エラーに対してコピペで実行できる修正コマンドを提供します。

注意:本ガイドは2026年5月時点のOpenHumanリポジトリに基づいています。プロジェクトは頻繁に更新されるため、コマンドが動作しない場合は公式のGitHub READMEと最新のRelease Notesを優先して確認してください。

目次

  • Mac(Apple Silicon / Intel):Gatekeeperブロック、Rustツールチェーン未インストール、Xcode CLTバージョン競合
  • Windows:パスにスペースや非ASCII文字、WSL2カーネル古すぎ、MSVCとGNUツールチェーン混用
  • Docker:イメージプルタイムアウト、arm64/amd64アーキテクチャ不一致、ボリューム権限エラー
  • Node.js:バージョン不一致、ネイティブモジュールのリビルド失敗、pnpm/npm依存関係の競合

1. Macのトラブルシューティング(Apple Silicon & Intel)

1.1 エラー:“openhuman” cannot be opened because the developer cannot be verified

macOS Gatekeeperが公証(Notarized)されていないバイナリをブロックしています。Apple Silicon Macで特によく発生します。

修正方法A(推奨 — このファイルのみ許可):

# ターミナルで隔離属性を一括削除し、以降はダブルクリックで正常に開けます
xattr -dr com.apple.quarantine /Applications/OpenHuman.app

修正方法B(システム設定から許可):「システム設定 → プライバシーとセキュリティ」を開き、ブロックされたアプリを見つけ「このまま開く」をクリック。

セキュリティ注意:隔離属性を変更する前に、ダウンロード元が公式GitHub Releasesページであることを確認し、SHA-256ハッシュを検証してください。

1.2 エラー:error: linker `cc` not found

RustコンパイラがCリンカを見つけられません。Xcode Command Line Toolsが未インストールまたは古い場合に発生します。

# Xcode CLT をインストール(約 2 GB、初回はネットワーク必要)
xcode-select --install

# インストール済みでもエラーが出る場合はパスをリセット
sudo xcode-select --reset

# バージョン確認
xcode-select -p
# 出力は /Library/Developer/CommandLineTools または /Applications/Xcode.app/... のはず

1.3 エラー:rustup: command not foundまたはRustバージョンが古い

OpenHumanのRustコアは通常stable ≥ 1.78を要求します。

# rustup をインストール(インストール済みの場合はスキップ)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# シェル環境を再読み込み
source "$HOME/.cargo/env"

# 最新の stable に更新
rustup update stable

# リポジトリが要求するバージョンに切り替え(rust-toolchain.toml があれば自動適用)
rustup show

1.4 エラー:Apple Silicon上でarchitecture arm64 is not compatible

一部のnpmネイティブアドオンやシステムライブラリがarm64ビルドを提供していないか、RosettaとネイティブのHomebrewが同時にインストールされている場合に発生します。

# 現在のシェルアーキテクチャを確認
uname -m  # arm64 と表示されるはず(M シリーズチップのネイティブシェル)

# Homebrew のパスを確認(arm64 ネイティブは /opt/homebrew のはず)
which brew

# brew が /usr/local(Rosetta)を指している場合、arm64 シェルに切り替えてから依存関係をインストール
arch -arm64 /bin/zsh
arch -arm64 brew install openssl pkg-config

1.5 エラー:error: failed to run custom build command for `ring`

ringクレートはClang/LLVMを必要とし、Mac上ではOpenSSLのパスを明示する必要があります。

# Homebrew で OpenSSL 3 をインストール
brew install openssl@3

# ビルド環境変数を一時的に設定(~/.zshrc に追記しても可)
export OPENSSL_DIR="$(brew --prefix openssl@3)"
export OPENSSL_NO_VENDOR=1

# 再度ビルド
cargo build --release

2. Windowsのトラブルシューティング

2.1 エラー:パスにスペースや非ASCII文字が含まれているためビルド失敗

CargoとNPMのネイティブモジュールは、パスのスペースや非ASCII文字への耐性が低いです。

:: スペースなしの純 ASCII パスにリポジトリをクローン(例)
git clone https://github.com/tinyhumansai/openhuman C:\dev\openhuman

:: Cargo キャッシュディレクトリも安全なパスへ移動(PowerShell で実行)
[System.Environment]::SetEnvironmentVariable("CARGO_HOME","C:\dev\.cargo","User")
[System.Environment]::SetEnvironmentVariable("RUSTUP_HOME","C:\dev\.rustup","User")

2.2 エラー:LINK : fatal error LNK1181

MSVCツールチェーンが未インストールまたは正しく設定されていません。

:: 1. Visual Studio 2022 Build Tools(または完全版 VS 2022)をインストール
::    必須コンポーネント:「C++ によるデスクトップ開発」→ MSVC v143 + Windows SDK

:: 2. Rust を MSVC ターゲットに切り替え
rustup default stable-x86_64-pc-windows-msvc
rustup target add x86_64-pc-windows-msvc

:: 3. リンカーが見つかることを確認
where link
:: 出力例:C:\Program Files (x86)\Microsoft Visual Studio\...\link.exe

2.3 エラー:WSL2カーネルが古すぎる

WSL2でOpenHumanを実行する場合、カーネルは≥ 5.15が必要です。

:: PowerShell(管理者)で WSL カーネルを更新
wsl --update

:: バージョン確認
wsl --version

:: 対象ディストリビューションを WSL2 モードに設定
wsl --set-version Ubuntu-22.04 2

2.4 エラー:'python' is not recognized

一部のnpmネイティブモジュールのビルドスクリプトがpythonコマンドに依存しています。

:: 方法 A:python-is-python3 をインストール(WSL2 Ubuntu)
sudo apt install python-is-python3

:: 方法 B:Windows ネイティブ — npm グローバル設定で python3 を指定
npm config set python python3

:: 方法 C:windows-build-tools をインストール(廃止済み、VS Build Tools を推奨)
:: 非推奨、参考のみ

2.5 エラー:error MSB8036: The Windows SDK version X was not found

:: Visual Studio Installer を開く → 変更 → 個別のコンポーネント
:: 対応する Windows SDK(10.0.22621 以降推奨)にチェックを入れてインストール
:: インストール後、ターミナルを再起動してからビルド

3. Dockerのトラブルシューティング

3.1 エラー:pull access deniedまたはプルタイムアウト

GitHub Container RegistryやDocker Hubへのアクセスが一部地域で制限されています。

# 方法 A:レジストリミラーを設定(Docker Desktop → Settings → Docker Engine で編集)
# 以下の JSON フィールドを追加:
# "registry-mirrors": ["https://mirror.gcr.io","https://docker.mirrors.ustc.edu.cn"]

# 方法 B:ネットワークにアクセスできるマシンでイメージをエクスポートし、対象マシンに転送
docker save ghcr.io/tinyhumansai/openhuman:latest | gzip > openhuman.tar.gz
# 対象マシンでインポート
gunzip -c openhuman.tar.gz | docker load

3.2 エラー:プラットフォーム不一致(linux/amd64 vs linux/arm64)

Apple Silicon MacでオフィシャルのAMD64イメージを使用すると発生します。

# プラットフォームを明示してプル(Rosetta エミュレーションが発生し、パフォーマンスに影響)
docker pull --platform linux/amd64 ghcr.io/tinyhumansai/openhuman:latest

# 公式 arm64 イメージが公開されている場合は、ネイティブイメージを優先
docker pull --platform linux/arm64 ghcr.io/tinyhumansai/openhuman:latest

# 実行時にプラットフォームを指定
docker run --platform linux/arm64 ghcr.io/tinyhumansai/openhuman:latest

3.3 エラー:permission denied — コンテナがボリュームに書き込めない

コンテナプロセスが非rootユーザーで実行されていますが、マウントされたホストディレクトリがrootに所有されています。

# 方法 A:コンテナ内ユーザー(uid 通常 1000)にホストディレクトリの権限を付与
sudo chown -R 1000:1000 ./openhuman-data

# 方法 B:docker run で root として実行(開発環境のみ、本番は非推奨)
docker run --user root ...

# 方法 C:Docker Compose で user を指定
# services:
#   openhuman:
#     user: "1000:1000"
#     volumes:
#       - ./openhuman-data:/app/data

3.4 エラー:exec: "sh": executable file not found

イメージがdistrolessやscratchベースを使用しているため、シェルが存在しません。

# フルパスで bash を指定してコンテナに入る(存在する場合)
docker exec -it openhuman /bin/bash

# イメージに shell がない場合は、デバッグ用イメージをビルドして元のデータボリュームをマウント
docker build -f Dockerfile.debug -t openhuman-debug .
docker run -it --volumes-from openhuman openhuman-debug /bin/bash

3.5 Docker Compose:dependency failed to start

OpenHumanが依存するDBやベクターインデックスサービスの起動が遅く、ヘルスチェックが失敗します。

# compose.yml の依存サービスに healthcheck を追加
# services:
#   db:
#     healthcheck:
#       test: ["CMD", "pg_isready", "-U", "openhuman"]
#       interval: 5s
#       retries: 10
#   openhuman:
#     depends_on:
#       db:
#         condition: service_healthy

# 各サービスのログを手動で確認して根本原因を特定
docker compose logs --tail=50 db
docker compose logs --tail=50 openhuman

4. Node.jsのトラブルシューティング

4.1 エラー:The engine "node" is incompatible with this module

OpenHumanのフロントエンドとプラグインレイヤーは通常Node.js ≥ 20 LTSを要求します。

# nvm で指定バージョンに切り替え(LTS 20 または 22 を推奨)
nvm install 20
nvm use 20
node --version  # v20.x.x と表示されることを確認

# fnm(より高速なバージョンマネージャー)を使用する場合
fnm install 20
fnm use 20

4.2 エラー:gyp ERR! build error — ネイティブモジュールのビルド失敗

依存関係にはネイティブC++アドオンが含まれており、完全なビルドツールチェーンが必要です。

# macOS:Xcode CLT がインストールされていることを確認
xcode-select --install

# Windows:PowerShell(管理者)で node-gyp をグローバルインストール
npm install -g node-gyp
# Visual Studio Build Tools もインストールされていることを確認(セクション 2.2 参照)

# Linux(Ubuntu/Debian)
sudo apt-get install -y python3 make g++

# すべてのネイティブモジュールを強制再ビルド
npm rebuild
# または pnpm を使用
pnpm rebuild

4.3 エラー:Cannot find module ERR_MODULE_NOT_FOUND

依存関係のインストールが不完全か、node_modulesキャッシュがlockfileと一致していません。

# 完全クリーンアップ後に再インストール
rm -rf node_modules
rm package-lock.json   # または pnpm-lock.yaml / yarn.lock

# プロジェクトのパッケージマネージャーで再インストール(pnpm の例)
corepack enable
pnpm install --frozen-lockfile

4.4 エラー:ENOSPC: System limit for number of file watchers reached

Linuxシステムのデフォルトのinotifyウォッチャー上限が不足しています。

# 一時的に増加(再起動で元に戻る)
sudo sysctl fs.inotify.max_user_watches=524288

# 設定を永続化
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

4.5 エラー:EACCES: permission denied, mkdir '.../.npm'

npmグローバルディレクトリの権限問題。

# npm グローバルディレクトリをユーザーが書き込み可能なパスに変更
mkdir -p ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH=~/.npm-global/bin:$PATH
# 上記の export を ~/.zshrc または ~/.bashrc に追記して永続化

5. 共通トラブルシューティングチェックリスト

どのプラットフォームでも、詰まったときはまずこの順序で確認してください:

順序確認項目クイック確認コマンド
GitHubなどへのネットワークアクセスを確認curl -I https://github.com
Gitバージョン ≥ 2.40git --version
Rust stableツールチェーンがリポジトリ要件に合致しているかrustup show
Node.js ≥ 20 LTSnode --version
ディスク空き容量 ≥ 8 GBdf -h .
rust-toolchain.toml.nvmrcのバージョン要件を確認cat rust-toolchain.toml && cat .nvmrc
完全なエラーログをキャプチャcargo build 2>&1 | tee build.log
高速化のヒント:Rustの初回コンパイルは10分以上かかることがあります。CARGO_BUILD_JOBSをCPUコア数に設定することで並列化できます(例:export CARGO_BUILD_JOBS=8)。

6. それでも解決しない場合の対処法

  • 公式Issueトラッカーを検索:GitHub Issuesでエラーキーワードを検索してください。
  • 詳細なIssueを作成:cargo build 2>&1 | head -100の出力とrustup shownode --version、OSバージョンを貼り付けてください。
  • Dockerにフォールバック:ネイティブインストールが失敗し続ける場合、Dockerコンテナが環境の差異を回避する最速の方法です。
  • 推論バックエンドを外部化:ローカルの計算リソースが不足している場合は、OpenHumanのモデルエンドポイントをリモートのOllamaインスタンスに向けることができます。

OpenHumanをリモートMacノードと連携させる方法については、OpenHuman 20分でパーソナル知識庫を構築の記事もご参照ください。

7. まとめ

OpenHumanのインストール問題の90%は3つの根本原因に集中しています:ビルドツールチェーンの不備ランタイムバージョンの不一致、そしてプラットフォームの権限またはネットワーク制限。このガイドを順番に確認すれば、ほとんどの問題は30分以内に解決できます。

OpenHumanをすぐに試したいだけで環境設定に時間を取られたくない場合は、Dockerが最も手軽な出発点です。パフォーマンス最優先で完全ローカル化を目指すなら、Rustツールチェーンをしっかり設定し、大容量ユニファイドメモリを持つApple Siliconマシンを選んでください。