安装ffmpeg出错,后继更新安装其它软件都出错

[zeo@zone ~]$ sudo pacman -Syu
[sudo] zeo 的密码:
:: 正在同步软件包数据库...
core 已经是最新版本据
extra 已经是最新版本
:: 正在进行全面系统更新...
:: 替换 kdsoap-qt6 为 extra/kdsoap 吗 ? [Y/n] y
:: 替换 libakonadi 为 extra/akonadi 吗 ? [Y/n] y
正在解析依赖关系...
正在查找软件包冲突...
错误:无法准备事务处理 (无法满足依赖关系)
:: 安装 ffmpeg (2:9.0.1-1) 破坏依赖 'libavcodec.so=61-64' (freerdp2 需要)r
:: 安装 ffmpeg (2:9.0.1-1) 破坏依赖 'libavutil.so=59-64' (freerdp2 需要))
:: 安装 ffmpeg (2:9.0.1-1) 破坏依赖 'libswresample.so=5-64' (freerdp2 需要)n
:: 安装 ffmpeg (2:9.0.1-1) 破坏依赖 'libswscale.so=8-64' (freerdp2 需要)要
:: 安装 icu (78.3-1) 破坏依赖 'libicuuc.so=76-64' (freerdp2 需要)2
:: 安装 icu (78.3-1) 破坏依赖 'libicuuc.so=76-64' (qt5-webkit 需要)需
:: 安装 icu (78.3-1) 破坏依赖 'libicui18n.so=76-64' (qt5-webkit 需要)要

卸载freerdp2和qt5-webkit——你大概率不需要它们了。

感谢,我试着卸载freerdp2,而krdp依赖freerdp2,其它软件又依赖krdp依赖

[zeo@zone ~]$ sudo pacman -Rs freerdp2
正在检查依赖关系...
错误:无法准备事务处理 (无法满足依赖关系)
:: 删除 freerdp2 破坏依赖 'freerdp2' (krdp 需要)4
有没有办法回退安装 ffmpeg (2:9.0.1-1)影响,
系统原本有 ffmpeg (2:7.1.1-1)这个版本正常

你这是多久没滚了……
先把krdp卸载了,滚完了再装回来吧。

记不清了

[zeo@zone ~]$ cat /etc/os-release
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
...
[zeo@zone ~]$ uname -a
Linux zone 6.14.4-arch1-2 #1 SMP PREEMPT_DYNAMIC Tue, 29 Apr 2025 09:23:13 +0000 x86_64 GNU/Linux

我现在的问题不是要安装ffmpeg,而是想pacman -Syu不报错。这个不知道是我安装ffmpeg留下的错误,还是说更新会自动升级ffmpeg版本而引发的错误?

[zeo@zone ~]$ sudo pacman -Syu
:: 正在同步软件包数据库...
core 已经是最新版本据
extra 已经是最新版本
:: 正在进行全面系统更新...
正在解析依赖关系...
正在查找软件包冲突...
错误:无法准备事务处理 (无法满足依赖关系)
:: 安装 ffmpeg (2:9.0.1-1) 破坏依赖 'libavcodec.so=61-64' (freerdp2 需要)
:: 安装 ffmpeg (2:9.0.1-1) 破坏依赖 'libavutil.so=59-64' (freerdp2 需要))
.....

你能正常把ffmpeg更新了,那么更新命令就不会报错了呀。

你这是太久没更新导致的问题。krdp现在依赖的是freerdp。freerdp2已经从官方仓库里删掉了所以它没有更新,所以它会依赖旧版本的ffmpeg。

试试这样:

sudo pacman -R freerdp2 --assume-installed freerdp2=2.11.7
sudo pacman -Syu

我是不想教这种临时break掉软件包依赖的做法的,因为我怕使用者并没有充分理解这是在干什么,只是觉得好用所以就记下了。然后某天icu或者别的什么核心包遇到了问题依样这么干……

这确实,但除了用 archive 源分批次滚之外,如果遇到需要为了卸一个不再使用的旧依赖而卸掉一大堆有用的包的情况,大概也只能这样了。

不过的确得提醒楼主,这是个临时的 hack,只有百分百确定不会再有包依赖它、或者临时卸掉以后马上再装回来一个 provide 它的包时,且不能是 pacman 的直接或间接依赖项,才能使用这种 hack,千万不要在不理解自己在做什么时使用它。

这个freerdp2我觉得还好,只有krdp依赖它,而依赖krdp的应该只有plasma-meta——这个meta包也暂时卸载掉呗,不把它依赖的包卸载了就好。

我确实把icu也删除了,然后pacman命令执行少了共享库,执行不了,找记录找到icu-76版本重新下载从https://archive.archlinux.org/packages/i/icu/。然后pacman -Syyuu把更新一遍,现在更新完成了。谢谢大家。

我用pacman -Rdd freerdp2不检依赖删除freerdp2,我确实把icu也删除了,然后pacman命令执行少了共享库,执行不了,然后查记录找到icu-76版本重新下载然后解包放到对应目录。然后pacman-Syyuu把更新一遍,现在更新完成了问题解决了。感谢,谢谢大家!