Skip to content

condaアップデート後のlibarchive.so.19エラー解決法

問題の概要

Condaを23.11.0に更新後、condaコマンドを実行すると次のエラーが発生する問題が報告されています:

Error while loading conda entry point: conda-libmamba-solver (libarchive.so.19: cannot open shared object file: No such file or directory)

このエラーは、以下の特徴があります:

  • conda config --set solver classicを設定しても解決しない
  • 主にLinux/macOS環境で発生
  • libarchivelibmamba パッケージのチャンネル不一致が根本原因
  • Condaの再インストールなしで解決可能

効果的な解決手法

✅ 方法1: libarchiveの強制再インストール (推奨)

最も成功率の高い標準解決法

bash
conda install -n base libarchive -c main --force-reinstall --solver classic

実行例(成功時の出力):

## Package Plan ##
  environment location: ~/miniconda3
  added / updated specs:
    - libarchive

The following packages will be UPDATED:
  libarchive  conda-forge::libarchive-3.6.2... → main::libarchive-3.6.2...

Proceed ([y]/n)? y

注意

実行中にError while loading conda entry point...が表示されても処理は継続されます

✅ 方法2: 全パッケージのアップデート

方法1で解決しない場合の代替手段:

bash
conda update --all --solver=classic

✅ 方法3: チャンネル設定の統一

異なるチャンネル混在が原因の場合:

bash
conda config --remove-key channels
conda config --add channels conda-forge
conda update --all

⚠ 緊急回避策 (一時的な対処)

上記方法が即時実行できない場合の応急処置:

bash
# libarchive.so.19の所在を検索
find / -name libarchive.so.19 2>/dev/null

# 発見後にシンボリックリンク作成 (例)
sudo ln -s /path/to/libarchive.so.19 /usr/lib/libarchive.so.19

# 環境変数でパス指定 (例)
export LD_LIBRARY_PATH=/miniconda3/lib:$LD_LIBRARY_PATH

注意事項

緊急回避策は根本解決にならず、パッケージ管理の混乱を招く可能性があります。可能な限り正式な方法1~3を優先してください。


根本原因と技術的背景

このエラーの本質は以下の組み合わせ問題にあります:

  1. チャンネルの不一致
    conda-forgedefaults/main チャンネルから混合インストール

    conda-forge の libarchive (v13) と defaults の libmamba の互換性問題
  2. バージョン命名規則の違い
    conda-forge の libarchive v13 ⇨ システム上では libarchive.so.19 として機能

  3. solverの優先順位問題
    デフォルト設定でconda-libmamba-solverが誤ってトリガーされる


予防策とベストプラクティス

  1. チャンネル管理の統一化

    bash
    # ベースチャンネルをconda-forgeに統一
    conda config --add channels conda-forge
    conda config --set channel_priority strict
  2. 定期的な環境メンテナンス

    bash
    # 月次のアップデート実行
    conda update --all -n base
  3. トラブル時のsolver明示指定

    bash
    # 問題発生時は常に--solverオプションを付与
    conda install ... --solver classic

参考リソース

  1. conda-libmamba-solver公式Issue #283
  2. Condaチャンネル設定ガイド
  3. libarchiveバージョン互換性問題の技術的背景

最終確認ポイント

解決後は必ず次のコマンドでlibarchiveのバージョンとチャンネルを確認:

bash
conda list | grep libarchive
# 正しい例: libarchive 3.7.4 hfab0078_0 main

以上の手法で、Condaの再インストールなしでエラーの永続的解決が可能です。環境に応じて最適な方法をお試しください。