「pacman」を使用してシステムを更新できない

「pacman」を使用してシステムを更新できない

システムを更新しようとすると、次のエラーが発生します。トランザクションを準備できません(依存関係を満たすことができません)。

これが私が得るものです:

~> sudo pacman -Syu
:: Synchronising package databases...
 gremlins is up to date
 system is up to date
 world is up to date
 galaxy-gremlins is up to date
 galaxy is up to date
 lib32 is up to date
 extra is up to date
 community is up to date
 multilib is up to date
:: Starting full system upgrade...
:: Replace libcanberra-pulse with gremlins/libcanberra? [Y/n] n
resolving dependencies...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: installing expat (2.4.1-1) breaks dependency 'expat=2.3.0' required by lib32-expat
:: installing libcap (2.50-1) breaks dependency 'libcap=2.49' required by lib32-libcap
:: installing libelf (0.185-1) breaks dependency 'libelf=0.184' required by lib32-libelf
:: installing libcanberra (0.30+2+gc0620e4-4) breaks dependency 'libcanberra=0.30+2+gc0620e4-3' required by libcanberra-pulse

その後、パッケージを削除しようとしましたが、expat「注意:削除リストに禁止されているパッケージがあります!」というメッセージが表示されました。

私はこれを見たWebページexpatしかし、ここでは問題のあるパッケージを削除できますが、私はそれがコアの一部であるため削除できません。

この時点でどうすればよいですか?

答え1

リポジトリのパッケージは、lib32同じバージョンの64ビットバージョンに依存するさまざまなライブラリなどの32ビットバージョンです。

などの不安定なテストリポジトリがあり、などのgremlins最新galaxy-gremlinsバージョンのパッケージを提供しますが、リポジトリがexpatないため、lib32-gremlinsそのパッケージの32ビットバージョンに対して同じアップデートを取得できません。つまり、以前のパッケージを確実に維持できます。パッケージ。そして、信頼性の高い32ビットパッケージは信頼性の高いリポジトリのlib32-expat64ビットパッケージに依存するため、システムを以前のバージョンに保つか(以前の32ビットパッケージの依存関係を満たすために)最新の64ビットパッケージをインストールできるため、競合が発生します。 (これを行うと、32ビットパッケージの依存関係が壊れます。つまり、そのパッケージを削除する必要があります。)

または、lib32-gremlins64ビットテストストアで32ビットバージョンのパッケージを提供するストレージを有効にするか、すべてのテストストアを無効にすることもできます。これらの操作のいずれかを実行すると、64ビットと32ビットのストレージが同期と依存関係を維持します。利用可能な最新のパッケージで解決できます。

関連情報