我有一台运行 Debian Stretch 且安装了 Gstreamer 1.0 的计算机。我正在尝试运行一个使用处理视频库的处理草图,而该视频库又依赖于 Gstreamer 0.10。这会产生运行时错误,因为它们删除了符号gst_object_sink
。
尝试使用 Gstreamer 1.0 的不同 Java 绑定重建处理视频库似乎是一个 PITA。
因此问题是:是否可以在同一系统上安装第二个版本(0.10)的 Gstreamer?
问题似乎是这样的libgstreamer0.10-0出现在 Wheezy、Jessie、SID 中,但没有出现在 Stretch/Testing 中......为什么会这样,以及如何修复它?
答案1
在 Debian 中安装一个库的多个版本是完全可能的。固定是要走的路。在这种情况下,我决定从 Debian Unstable 获取libgstreamer0.10
(自己运行 Debian 测试)。
创建包含以下内容的文件/etc/apt/sources.list.d/unstable.list
:
deb http://ftp.nl.debian.org/debian/ unstable main
deb-src http://ftp.nl.debian.org/debian/ unstable main
然后,/etc/apt/preferences.d/unstable
使用内容创建:
Package: *
Pin: release a=unstable
Pin-Priority: 200
现在运行apt-get update
。要检查一切是否正常,请输入apt-cache policy libgstreamer0.10-0
。它应该报告如下内容:
libgstreamer0.10-0:
Installed: (none)
Candidate: 0.10.36-1.5
Version table:
0.10.36-1.5 50
200 http://ftp.nl.debian.org/debian unstable/main amd64 Packages
100 /var/lib/dpkg/status
请注意,这会添加来自 stable 的所有具有较低优先级的软件包。也可以挑选出一个或几个包。请参阅有关固定的文档更多细节。
PS 对我来说,这样做的原因是解决 RStudio 对以下内容的依赖libgstreamer-0.10
:“rstudio:加载共享库时出错:libgstreamer-0.10.so.0:无法打开共享对象文件:没有这样的文件或目录”(添加了这些详细信息,以便其他人搜索后可能会找到这个)。
PPS @jofel 给出的链接(部分)回答了您问题的原因部分。
答案2
我设法让处理视频 2.2.1 工作,安装通过下载的相应 Debian Jessie .deb 文件https://pkgs.org:
- gstreamer-0.10-gconf
- gstreamer-0.10-plugins-base
- libgstreamer0.10-0
- libgstreamer-plugins-base0.10-0
安装每个通过dpkg -i
.其他诸如“plugins-good”的依赖关系未得到满足,但在我的情况下不需要。