🔧 はじめに
WSL上のUbuntuで**Podmanを使いたい!**と思って apt install podman
したら、地獄の依存関係トラブルにハマりました…。
この投稿では、その経緯と最終的にどうリカバリーしたかを記録しておきます。
🌀 起こったこと
Ubuntu(WSL)で以下のコマンドを実行:
sudo apt install podman
すると依存関係のエラーが続出:
podman : Depends: conmon but it is not going to be installed
...
systemd-sysv : Depends: systemd (= 255.4-1ubuntu8.4) but 255.4-1ubuntu8.10 is to be installed
どうやら systemd
関連パッケージのバージョンが中途半端に更新されており、しかも dpkg
が壊れて修復できない状態に…。
🔍 原因を整理すると:
-
systemd
のアップグレードが途中で失敗(WSLではありがち) -
/etc/passwd
ロック失敗 →dpkg --configure -a
も通らない -
そのせいで
podman
の依存関係が解決できない
💣 対処してみたこと:
-
apt-mark hold
でsystemd
を止めてみる → 効果なし(バージョン差異で詰む) -
dpkg
スクリプトを手動で無効化 → 一時的に通るが不安定 -
systemd
をダウングレードしようとするも、依存パッケージが既に新しくなっていて詰み状態
🧹 最終的な解決策:
💥WSLのUbuntuを一度削除して再インストールしました。
wsl --unregister Ubuntu
その後、Microsoft Store から Ubuntu を再インストールし、クリーンな状態から再構築。これが一番早くて安全でした。
✅ 教訓・まとめ
-
WSL では
systemd
関連パッケージのアップグレードは慎重に! -
Podman は rootless モードで使えるので、本来
systemd
は必須ではない -
環境が壊れたら、WSL では「作り直す」が最善手になることもある
💡 次やるときのベストプラクティス
-
WSL の Ubuntu をインストールしたら、まず
apt upgrade
は控える -
Podman を使うなら、最初に rootless モードでテスト
-
必要に応じて公式リポジトリを追加して最新版を導入まとめておくと以下の通りです:
🧵 Ubuntu 環境破損とその復旧
🔧 背景
Docker を使った開発を行っていた Ubuntu 環境(WSL 上 or ネイティブ)で
systemd
周辺のパッケージ更新により依存関係の破綻が発生。apt install
やdpkg --configure -a
、--fix-broken install
も機能しなくなった。
🚨 発生したエラーの例
dpkg: error processing package systemd (--configure): installed systemd package post-installation script subprocess returned error exit status 1
また、
podman
インストール時にも以下のような依存性の壊れが起こる:The following packages have unmet dependencies: podman : Depends: conmon but it is not going to be installed systemd-sysv : Depends: systemd (= 255.4-1ubuntu8.4) but 255.4-1ubuntu8.10 is to be installed
🔄 試行した対処法
-
sudo apt-mark hold
で systemd 関連パッケージを固定 → 効果なし -
apt --fix-broken install
,dpkg --configure -a
を繰り返す → 改善せず -
結果:依存地獄から脱出できず断念
🧹 結論:クリーンな Ubuntu を入れ直し
-
複雑に壊れたシステムは復旧より再インストールが早いと判断
-
WSL 上で新たに Ubuntu を再導入し、環境をクリーンにリセット
🐳 その後:Podman 導入はスムーズに成功
WSL 上の新しい Ubuntu で以下のように進めた:
# Podman の公式リポジトリを追加(Ubuntu 22.04 例) source /etc/os-release echo "deb [signed-by=/etc/apt/keyrings/libcontainers.gpg] https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/ /" | sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/Release.key | gpg --dearmor | sudo tee /etc/apt/keyrings/libcontainers.gpg > /dev/null sudo apt update sudo apt install -y podman
これで依存関係エラーもなく正常に導入できた。
✅ 教訓
-
Ubuntu で
systemd
関連の壊れは非常に復旧が難しい -
壊れたら躊躇せず再インストールが最善の選択になることもある
-
Podman のような開発ツール導入時は公式リポジトリを活用するのが安全
-