gmg137 / netease-cloud-music-gtk

Linux 平台下基于 Rust + GTK 开发的网易云音乐播放器
GNU General Public License v3.0
1.5k stars 89 forks source link

ubuntu22.04依赖问题 #263

Closed MisterDnuts closed 6 months ago

MisterDnuts commented 6 months ago

已添加铜豌豆源

1. 安装失败,出现依赖问题

atem@atem-laptop:~$ sudo apt install netease-cloud-music-gtk正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:

下列软件包有未满足的依赖关系:
 netease-cloud-music-gtk : 依赖: libgstreamer-plugins-bad1.0-0 (>= 1.22.0) 但是 1.20.3-0ubuntu1.1 正要被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

2. 无法找到要求的libgstreamer-plugins-bad1.0-0的1.2.2版本

atem@atem-laptop:~/下载$ sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
gstreamer1.0-plugins-ugly 已经是最新版 (1.20.1-1)。
gstreamer1.0-alsa 已经是最新版 (1.20.1-1ubuntu0.1)。
gstreamer1.0-gl 已经是最新版 (1.20.1-1ubuntu0.1)。
gstreamer1.0-gtk3 已经是最新版 (1.20.3-0ubuntu1.1)。
gstreamer1.0-plugins-base 已经是最新版 (1.20.1-1ubuntu0.1)。
gstreamer1.0-plugins-good 已经是最新版 (1.20.3-0ubuntu1.1)。
gstreamer1.0-pulseaudio 已经是最新版 (1.20.3-0ubuntu1.1)。
gstreamer1.0-tools 已经是最新版 (1.20.3-0ubuntu1)。
gstreamer1.0-x 已经是最新版 (1.20.1-1ubuntu0.1)。
libgstreamer-plugins-base1.0-dev 已经是最新版 (1.20.1-1ubuntu0.1)。
libgstreamer1.0-dev 已经是最新版 (1.20.3-0ubuntu1)。
gstreamer1.0-libav 已经是最新版 (1.20.3-0ubuntu1)。
gstreamer1.0-plugins-bad 已经是最新版 (1.20.3-0ubuntu1.1)。
gstreamer1.0-qt5 已经是最新版 (1.20.3-0ubuntu1.1)。
libgstreamer-plugins-bad1.0-dev 已经是最新版 (1.20.3-0ubuntu1.1)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 3 个软件包未被升级。
gmg137 commented 6 months ago

看提示你有要求某些软件保持现状,搜一下看看源里的gstreamer最新版本是多少。如果实在不行就强制安装,运行应该不会出问题。

MisterDnuts commented 6 months ago

问题已解决,以下为本次解决步骤 使用的软件包为铜豌豆源提供的2.2.0版本deb,平台ubuntu22.04/kern6.2.0/kde

1. 问题解析

原deb打包时gstreamer依赖版本为1.2.2以上,ubuntu官方源最新版本只提供到1.2.0. dpkg --ignore-depends强行安装能够正常运行,但是会导致apt无法正常安装其它包(提示需要修复依赖)。

2. 问题解决

解包修改需求文件并重新打包

1. 解包

mkdir package
# 解压打包配置文件
dpkg-deb -e netease-cloud-music-gtk_2.2.0-1_amd64.deb ./package/DEBIAN
# 解压数据文件
dpkg-deb -X netease-cloud-music-gtk_2.2.0-1_amd64.deb ./package/

2. 修改需求文件

# ./package/DEBIAN/control
Depeneds:
libgstreamer-plugins-bad1.0-0 (>= 1.22.0),
# 修改为
libgstreamer-plugins-bad1.0-0 (>= 1.20.0),

3. 重新打包安装

mkdir build dpkg-deb -b ./package/ /build/ dpkg -i ./build/netease-cloud-music-gtk_2.2.0-1_amd64.deb