我一直在尝试安装 libsdl1.2-dev,但遇到了它的一个依赖项问题。当我尝试在 Synaptic 中标记 libsdl1.2-dev 进行安装时,失败并显示错误:“依赖:libpulse-dev,但不会安装。”
通过尝试手动安装 libpulse-dev,我确定问题在于提供的 libpulse 版本是较新的版本比 libpulse-dev 提供的版本要差;显然有人将较新版本的 pulseaudio 二进制文件推送到存储库,而没有同时推送新版本的头文件。因此,Synaptic 检测到两个软件包之间的版本不匹配,并拒绝安装 libpulse-dev。
我做了一些研究并考虑了以下选择:
1:降级我的 libpulse 版本以匹配 libpulse-dev 的版本。
2:使用 apt-get 下载 libpulse-dev忽略其依赖关系。
但是,在我看来,这两种选择都不是好的解决方案。Synaptic 处理降级远不如处理升级那么优雅;当我将 libpulse 标记为降级时,它会卸载数十个程序。我还担心降级 libpulse 可能会让我陷入依赖地狱,其他程序也需要降级才能与旧版本的 libpulse 兼容,尽管我太害怕去发现这是否真的如此。第二种选择似乎也很危险,因为新版本的 pulseaudio 中可能已经更改了一些结构和函数原型。除非我确信没有接口更改,否则我宁愿不使用过时的头文件,因为这些更改可能会导致日后出现细微的、令人头痛的错误。
那么,有人知道解决这个问题的更安全的方法吗?出于各种原因,我仍然在运行 12.04LTS,看看这是否会对情况产生影响。
附加信息:
apt-cache policy libsdl1.2-dev
libsdl1.2-dev:
Installed: (none)
Candidate: 1.2.14-6.4ubuntu3.1
Version table:
1.2.14-6.4ubuntu3.1 0
500 http://archive.ubuntu.com/ubuntu/ precise-security/main amd64 Packages
1.2.14-6.4ubuntu3 0
500 http://archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
apt-cache policy libpulse-dev
libpulse-dev:
Installed: (none)
Candidate: 1:1.1-0ubuntu15
Version table:
1:1.1-0ubuntu15 0
500 http://archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
apt-cache policy libpulse0
libpulse0:
Installed: 1:1.1-0ubuntu15.4
Candidate: 1:1.1-0ubuntu15.4
Version table:
*** 1:1.1-0ubuntu15.4 0
100 /var/lib/dpkg/status
1:1.1-0ubuntu15 0
500 http://archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
答案1
所需的版本1:1.1-0ubuntu15.4
位于libpulse-dev
精确更新。激活此存储库的最简单方法是: