デスクトップ上のManjaro Linuxソフトウェアを更新する際に問題があります。システムアップデートを実行したい、アップデートアプリに移動するか、アップデートアプリで処理されていないソフトウェアアップデートがたくさんあることを知らせ、アップデートプロセスを開始します。しかし、アップデートをダウンロードした後、通常私のPythonパッケージのいくつかは他のPythonパッケージに依存し、「依存関係サイクル」があるというメッセージを受け取ります。問題を認識していることを示すために取引を「送信」しましたが、「取引失敗」の状況が常に発生します。
回避策として、一部のパッケージの部分的なアップグレードのみを試みましたが、まだトランザクションエラーのため失敗します。
以下はpacman -Syuを実行することです:
sudo pacman -Syu
:: Synchronizing package databases...
core is up to date
extra is up to date
community is up to date
multilib is up to date
:: Starting full system upgrade...
:: Replace geoclue2 with extra/geoclue? [Y/n] y
:: Replace libmariadbclient with extra/mariadb-libs? [Y/n] y
:: Replace libsystemd with core/systemd-libs? [Y/n] y
:: Replace pamac with extra/pamac-gtk? [Y/n] y
:: Replace xorg-mkfontdir with extra/xorg-mkfontscale? [Y/n] y
resolving dependencies...
looking for conflicting packages...
warning: dependency cycle detected:
warning: bashrc-manjaro will be installed before its bash dependency
warning: dependency cycle detected:
warning: harfbuzz will be installed before its freetype2 dependency
warning: dependency cycle detected:
warning: libglvnd will be installed before its mesa dependency
warning: dependency cycle detected:
warning: nvidia-utils will be installed before its libglvnd dependency
warning: dependency cycle detected:
warning: egl-wayland will be installed before its mesa dependency
warning: dependency cycle detected:
warning: xorg-server will be installed before its libglvnd dependency
warning: dependency cycle detected:
warning: nvidia-utils will be installed before its mesa dependency
warning: dependency cycle detected:
warning: x264 will be installed before its ffmpeg dependency
warning: dependency cycle detected:
warning: lib32-harfbuzz will be installed before its lib32-freetype2 dependency
warning: dependency cycle detected:
warning: lib32-libglvnd will be installed before its lib32-mesa dependency
warning: dependency cycle detected:
warning: lib32-nvidia-utils will be installed before its lib32-libglvnd dependency
warning: dependency cycle detected:
warning: python-fixtures will be installed before its python-testtools dependency
warning: dependency cycle detected:
warning: rubygems will be installed before its ruby dependency
Packages (586)
...snip all my packages...
Total Installed Size: 5498.56 MiB
Net Upgrade Size: 106.28 MiB
:: Proceed with installation? [Y/n] y
(581/581) checking keys in keyring [#########################################] 100%
(581/581) checking package integrity [#########################################] 100%
(581/581) loading package files [#########################################] 100%
(581/581) checking for file conflicts [#########################################] 100%
error: failed to commit transaction (conflicting files)
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/__init__.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/__pycache__/__init__.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/__pycache__/debug.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/__pycache__/error.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/codec/__init__.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/codec/__pycache__/__init__.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/codec/ber/__init__.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/codec/ber/__pycache__/__init__.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/codec/ber/__pycache__/decoder.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/codec/ber/__pycache__/encoder.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/codec/ber/__pycache__/eoo.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/codec/ber/decoder.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/codec/ber/encoder.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/codec/ber/eoo.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/codec/cer/__init__.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/codec/cer/__pycache__/__init__.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/codec/cer/__pycache__/decoder.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/codec/cer/__pycache__/encoder.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/codec/cer/decoder.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/codec/cer/encoder.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/codec/der/__init__.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/codec/der/__pycache__/__init__.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/codec/der/__pycache__/decoder.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/codec/der/__pycache__/encoder.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/codec/der/decoder.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/codec/der/encoder.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/codec/native/__init__.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/codec/native/__pycache__/__init__.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/codec/native/__pycache__/decoder.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/codec/native/__pycache__/encoder.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/codec/native/decoder.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/codec/native/encoder.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/compat/__init__.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/compat/__pycache__/__init__.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/compat/__pycache__/binary.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/compat/__pycache__/calling.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/compat/__pycache__/dateandtime.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/compat/__pycache__/integer.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/compat/__pycache__/octets.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/compat/__pycache__/string.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/compat/binary.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/compat/calling.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/compat/dateandtime.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/compat/integer.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/compat/octets.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/compat/string.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/debug.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/error.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/type/__init__.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/type/__pycache__/__init__.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/type/__pycache__/base.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/type/__pycache__/char.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/type/__pycache__/constraint.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/type/__pycache__/error.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/type/__pycache__/namedtype.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/type/__pycache__/namedval.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/type/__pycache__/opentype.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/type/__pycache__/tag.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/type/__pycache__/tagmap.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/type/__pycache__/univ.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/type/__pycache__/useful.cpython-37.pyc exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/type/base.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/type/char.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/type/constraint.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/type/error.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/type/namedtype.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/type/namedval.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/type/opentype.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/type/tag.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/type/tagmap.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/type/univ.py exists in filesystem
python-pyasn1: /usr/lib/python3.7/site-packages/pyasn1/type/useful.py exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/__init__.py exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/__pycache__/__init__.cpython-37.pyc exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/__pycache__/_common.cpython-37.pyc exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/__pycache__/_version.cpython-37.pyc exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/__pycache__/easter.cpython-37.pyc exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/__pycache__/relativedelta.cpython-37.pyc exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/__pycache__/rrule.cpython-37.pyc exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/__pycache__/tzwin.cpython-37.pyc exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/__pycache__/utils.cpython-37.pyc exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/_common.py exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/_version.py exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/easter.py exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/parser/__init__.py exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/parser/__pycache__/__init__.cpython-37.pyc exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/parser/__pycache__/_parser.cpython-37.pyc exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/parser/__pycache__/isoparser.cpython-37.pyc exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/parser/_parser.py exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/parser/isoparser.py exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/relativedelta.py exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/rrule.py exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/tz/__init__.py exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/tz/__pycache__/__init__.cpython-37.pyc exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/tz/__pycache__/_common.cpython-37.pyc exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/tz/__pycache__/_factories.cpython-37.pyc exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/tz/__pycache__/tz.cpython-37.pyc exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/tz/__pycache__/win.cpython-37.pyc exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/tz/_common.py exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/tz/_factories.py exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/tz/tz.py exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/tz/win.py exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/tzwin.py exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/utils.py exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/zoneinfo/__init__.py exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/zoneinfo/__pycache__/__init__.cpython-37.pyc exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/zoneinfo/__pycache__/rebuild.cpython-37.pyc exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/zoneinfo/dateutil-zoneinfo.tar.gz exists in filesystem
python-dateutil: /usr/lib/python3.7/site-packages/dateutil/zoneinfo/rebuild.py exists in filesystem
Errors occurred, no packages were upgraded.
それでも個々のパッケージをインストールできます。ただし、OSのアップデートが中断され、現在ローカルデスクトップにセキュリティ上の問題がある可能性があります。標準パッケージの更新中に、上記の依存サイクルと失敗したトランザクションをどのように処理しますか?
答え1
pacmanの出力を検索すると、「/bla/blaがファイルシステムに存在します」というメッセージがたくさん表示されます。これがあなたの問題かもしれません。どうやってこれが起こるのかわかりませんが、パックマンは、インストールするパッケージがそのファイルを「所有」していることがわからない限り、ファイルを上書きするのは好きではありません。
オプションを使用してこのチェックを無視できると思います--force
。注意して使用してくださいこれは、互換性のないバージョンでファイルを上書きできるためです。さらに、そのような紛争が発生するたびにこれを行う必要があります。これはあなたがしなければならないことを意味します毎回更新するpython-dateutil
かpython-pyasn1
。
より永続的な解決策は、パッケージを更新する前にこれらのファイルを削除することです。しかし、これはもっと危険です。システムを「破壊」することができるので(強制削除したファイルに応じて)、最後のソリューションよりも効果的です。この方法を使用している場合は、最も重要なすべてのファイルが正しくバックアップされていることを確認し、システムの使用を回復および/または再インストールする必要がある場合に備えて、ライブCD / DVD /フラッシュドライブなどの便利なものをすべて保管してください。
競合するファイルのリストを取得する便利な方法は次のとおりです。
while [ : ]; do echo y; done | sudo pacman -Syu | grep 'exists in filesystem$' | cut -f 2- -d ' ' | sed 's/ exists in filesystem$//g'
修正する:Archにはsudoが含まれていないため、sudoコマンドを次のように変更するなど、別の方法でrootでpacmanを実行する必要があるかもしれませんsu -c 'pacman -Syu'
。 (Manjaroがsudoに付属しているかどうかはわかりませんが、Archに基づいているのでそうではありません。)
上記の出力を使用して、競合ファイルのバックアップコピーを作成できます(おそらくtarballに入れることもできます)。このリストを使用して、これらのファイルを自動的に削除することもできます。以下は、一度にファイルをバックアップおよび削除するために使用できる素晴らしいスクリプトです。
FILES="$(while [ : ]; do echo y; done | pacman -Syu | grep 'exists in filesystem$' | cut -f 2- -d ' ' | sed 's/ exists in filesystem$//g')"
echo "$FILES" | xargs -0 -d \\n -s 9999999999 tar -c -a -f /backup-broken-files.tar || exit
echo "$FILES" | xargs -0 -d \\n -s 9999999999 rm
echo "Backed up and removed conflicting application files."
警告する必要があるのは、最近Fedoraに切り替えるまで(主に好奇心が強いため)Archを使用したことです。つまり、私はこれ以上Archを所有していないため、このスクリプトをテストすることはできません。また、このスクリプトが機能するには(もちろん)これを実行する必要があります。rootユーザーとして。
作成しているtarballに圧縮を適用するには、ファイル名の末尾に.xz、.gz、.bz2などの適切な拡張子を追加するだけで、tarは自動的に適切な圧縮を使用します(引数に感謝します-a
)。
誰かがこの問題を解決するより安全な方法を知っていることを願っています。 (おそらくパックマンは、そのファイルがKzqaiがインストール/更新したいパッケージに「すでに」属していると思うようにすることもできます)。続行する前に、より良い回答を待つ必要があるかもしれません。
PS:xargsに「-sオプションのx値は<= yでなければなりません」という警告が表示されることがあります。ここで、「x」と「y」は数字です。心配しないでください。この警告は無視してかまいません。