Codex bwrap サンドボックスエラーの解決手順覚え書き

Codex bwrap サンドボックスエラーの解決手順覚え書き

この記事はおおむねAIに書いてもらい、表現のみ手直ししました。スロップかな。。。

症状

Codex がコマンドを実行しようとすると、対象コマンドが起動する前に失敗することがよくあります。

bwrap: loopback: Failed RTM_NEWADDR: Operation not permitted

だいたい、実行しても差し支えないようなコマンドでもこれは発生します。

date
rg --files
uname -a

原因

Linux/WSL2 環境では、Codex はサンドボックス内でコマンドを実行するために bubblewrapbwrap)を使用します。このエラーは、bwrap がサンドボックスのネットワーク名前空間内でループバックアドレスを設定できなかったことを意味し、通常はユーザー名前空間または AppArmor のサポートが存在しないか制限されていることが原因でした。

適用した修正

bubblewrap をインストールする:

sudo apt update
sudo apt install -y bubblewrap

Ubuntu 24.04 系の AppArmor 制限環境では、bwrap-userns-restrict プロファイルをインストールして読み込む:

sudo apt install -y apparmor-profiles apparmor-utils
sudo install -m 0644 \
  /usr/share/apparmor/extra-profiles/bwrap-userns-restrict \
  /etc/apparmor.d/bwrap-userns-restrict
sudo apparmor_parser -r /etc/apparmor.d/bwrap-userns-restrict

プロファイルを適用した後、Codex を再起動する。

確認

Codex のサンドボックス実行で簡単なコマンドを実行する:

date
rg --files
uname -a

これらのコマンドが正常な出力を返し、bwrap: loopback: Failed RTM_NEWADDR: Operation not permitted エラーが表示されなくなれば修正完了です。