我在桌面上遇到了Manjaro的软件更新问题。我想执行系统更新,我去更新应用程序,或更新应用通知我的许多优秀的软件更新,我开始更新过程。但是,在下载了更新之后,我通常会收到一条消息,其中说我的一些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.幸运的是,我仍然可以安装单独的软件包。但是操作系统更新已经被冻结,这可能是我本地桌面上的一个安全问题。如何在标准包更新过程中处理上述依赖周期和失败事务?
发布于 2019-04-15 18:40:00
只要浏览pacman的输出,我就会看到许多"/bla/bla存在于文件系统“的消息。这可能就是你的问题所在。要知道这是如何发生的,但pacman不喜欢覆盖文件,除非它确信您安装的包“拥有”所述的文件。
我相信您可以使用--force选项覆盖此检查,尽管您应该这样做--请注意,因为文件可能会被不兼容的版本覆盖。而且,每次遇到这样的冲突,你都得这样做。这意味着您必须执行这个EVERY时间,您可以更新python-dateutil或python-pyasn1。
更永久的解决方案可能是在更新包之前删除这些文件。但是,THIS甚至比上一个解决方案更危险,因为它*可能*破坏您的系统(取决于您被迫删除的文件)。如果您沿着这条路线前进,请确保您对所有最重要的文件都有很好的备份,并确保保持一个活动的CD/DVD/闪存驱动器/任何方便的东西,以防您需要修复和/或重新安装您的系统。
以下是获取冲突文件列表的简便方法:
while [ : ]; do echo y; done | sudo pacman -Syu | grep 'exists in filesystem<#>UPDATE:我刚刚记得,Arch不是随sudo一起来的,所以您可能不得不以root方式运行pacman,例如将sudo命令替换为:su -c 'pacman -Syu'。(如果Manjaro有sudo的话,那就去看看吧,但因为它是基于Arch的,所以我怀疑它没有。)您可以使用上面的输出创建冲突文件的备份副本(可能将它们放到tarball中)。所述列表也可用于自动删除这些文件。下面是一个很好的脚本,可以一次备份和删除文件:FILES="$(while [ : ]; do echo y; done | pacman -Syu | grep 'exists in filesystem我应该警告你:我以前有过Arch,直到最近我转到Fedora (主要是出于好奇)。尽管如此,由于我已经没有了Arch,所以我无法测试这个脚本,所以使用它将承担您自己的风险。此外,要使该脚本工作,您(当然)需要运行AS根。如果您希望将压缩应用于将要进行的tarball,只需在文件名的末尾添加一个适当的扩展(如.xz、.gz或.bz2 ),那么tar将自动使用适当的压缩(多亏了-a参数)。希望有人知道解决这个问题的更安全的方法(也许让pacman认为这些文件*已经被Kzqai试图安装/更新的包所拥有)。也许你应该在继续之前等待更好的答案。PS:您可能会收到xargs的警告:“-s选项的值x应该是<= y",其中"x”和"y“是数字。别担心,你可以安全地忽略这个警告。 | cut -f 2- -d ' ' | sed 's/ exists in filesystem$//g'UPDATE:我刚刚记得,Arch不是随sudo一起来的,所以您可能不得不以root方式运行pacman,例如将sudo命令替换为:D4。(如果Manjaro有sudo的话,那就去看看吧,但因为它是基于Arch的,所以我怀疑它没有。)您可以使用上面的输出创建冲突文件的备份副本(可能将它们放到tarball中)。所述列表也可用于自动删除这些文件。下面是一个很好的脚本,可以一次备份和删除文件:A5我应该警告你:我以前有过Arch,直到最近我转到Fedora (主要是出于好奇)。尽管如此,由于我已经没有了Arch,所以我无法测试这个脚本,所以使用它将承担您自己的风险。此外,要使该脚本工作,您(当然)需要运行AS根。如果您希望将压缩应用于将要进行的tarball,只需在文件名的末尾添加一个适当的扩展(如.xz、.gz或.bz2 ),那么tar将自动使用适当的压缩(多亏了D6参数)。希望有人知道解决这个问题的更安全的方法(也许让pacman认为这些文件*已经被Kzqai试图安装/更新的包所拥有)。也许你应该在继续之前等待更好的答案。PS:您可能会收到xargs的警告:“-s选项的值x应该是<= y",其中"x”和"y“是数字。别担心,你可以安全地忽略这个警告。 | 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."我应该警告你:我以前有过Arch,直到最近我转到Fedora (主要是出于好奇)。尽管如此,由于我已经没有了Arch,所以我无法测试这个脚本,所以使用它将承担您自己的风险。此外,要使该脚本工作,您(当然)需要运行AS根。
如果您希望将压缩应用于将要进行的tarball,只需在文件名的末尾添加一个适当的扩展(如.xz、.gz或.bz2 ),那么tar将自动使用适当的压缩(多亏了D6参数)。
希望有人知道解决这个问题的更安全的方法(也许让pacman认为这些文件*已经被Kzqai试图安装/更新的包所拥有)。也许你应该在继续之前等待更好的答案。
PS:您可能会收到xargs的警告:“-s选项的值x应该是<= y",其中"x”和"y“是数字。别担心,你可以安全地忽略这个警告。
| cut -f 2- -d ' ' | sed 's/ exists in filesystem$//g'
UPDATE:我刚刚记得,Arch不是随sudo一起来的,所以您可能不得不以root方式运行pacman,例如将sudo命令替换为:D4。(如果Manjaro有sudo的话,那就去看看吧,但因为它是基于Arch的,所以我怀疑它没有。)
您可以使用上面的输出创建冲突文件的备份副本(可能将它们放到tarball中)。所述列表也可用于自动删除这些文件。下面是一个很好的脚本,可以一次备份和删除文件:
A5
我应该警告你:我以前有过Arch,直到最近我转到Fedora (主要是出于好奇)。尽管如此,由于我已经没有了Arch,所以我无法测试这个脚本,所以使用它将承担您自己的风险。此外,要使该脚本工作,您(当然)需要运行AS根。
如果您希望将压缩应用于将要进行的tarball,只需在文件名的末尾添加一个适当的扩展(如.xz、.gz或.bz2 ),那么tar将自动使用适当的压缩(多亏了D6参数)。
希望有人知道解决这个问题的更安全的方法(也许让pacman认为这些文件*已经被Kzqai试图安装/更新的包所拥有)。也许你应该在继续之前等待更好的答案。
PS:您可能会收到xargs的警告:“-s选项的值x应该是<= y",其中"x”和"y“是数字。别担心,你可以安全地忽略这个警告。
https://unix.stackexchange.com/questions/512635
复制相似问题