首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我已经安装了Manjaro,这是Arch的一个派生,并遇到了软件更新循环依赖问题,建议了解决办法?

我已经安装了Manjaro,这是Arch的一个派生,并遇到了软件更新循环依赖问题,建议了解决办法?
EN

Unix & Linux用户
提问于 2019-04-15 18:03:02
回答 1查看 1.3K关注 0票数 1

我在桌面上遇到了Manjaro的软件更新问题。我想执行系统更新,我去更新应用程序,或更新应用通知我的许多优秀的软件更新,我开始更新过程。但是,在下载了更新之后,我通常会收到一条消息,其中说我的一些python包依赖于其他python包,并且将有一个“依赖周期”。我“提交”事务的协议,我知道这个问题,但它总是发生,“事务失败”。

作为一种解决办法,我尝试过只对某些包进行部分升级,但由于事务失败,它仍然失败。

下面是pacman -Syu的运行:

代码语言:javascript
复制
 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.

幸运的是,我仍然可以安装单独的软件包。但是操作系统更新已经被冻结,这可能是我本地桌面上的一个安全问题。如何在标准包更新过程中处理上述依赖周期和失败事务?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2019-04-15 18:40:00

只要浏览pacman的输出,我就会看到许多"/bla/bla存在于文件系统“的消息。这可能就是你的问题所在。要知道这是如何发生的,但pacman不喜欢覆盖文件,除非它确信您安装的包“拥有”所述的文件。

我相信您可以使用--force选项覆盖此检查,尽管您应该这样做--请注意,因为文件可能会被不兼容的版本覆盖。而且,每次遇到这样的冲突,你都得这样做。这意味着您必须执行这个EVERY时间,您可以更新python-dateutilpython-pyasn1

更永久的解决方案可能是在更新包之前删除这些文件。但是,THIS甚至比上一个解决方案更危险,因为它*可能*破坏您的系统(取决于您被迫删除的文件)。如果您沿着这条路线前进,请确保您对所有最重要的文件都有很好的备份,并确保保持一个活动的CD/DVD/闪存驱动器/任何方便的东西,以防您需要修复和/或重新安装您的系统。

以下是获取冲突文件列表的简便方法:

代码语言:javascript
复制
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“是数字。别担心,你可以安全地忽略这个警告。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/512635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档