Debian sid下RStudio安装失败:libgstreamer依赖问题

RStudio installation failure under Debian sid: libgstreamer dependency problems

我使用 Debian sid (amd64),每周滚动更新一次。我最近从他们的官方网站下载了 RStudio 的桌面版本 0.99.902 并发布(当然是根用户):

dpkg -i rstudio-0.99.902-amd64.deb

无济于事:

dpkg:依赖性问题阻止了 rstudio 的配置: rstudio 依赖于 libgstreamer0.10-0;然而: 未安装软件包 libgstreamer0.10-0。 rstudio 依赖于 libgstreamer-plugins-base0.10-0;然而: 未安装软件包 libgstreamer-plugins-base0.10-0。

系统上安装了这 2 个软件包的较新版本 (1.0-0),但官方 Debian 存储库中不再提供旧版本 (0.10-0)。

要安装 RStudio 并在 Debian 系统?当然,我已经从官方 Debian 安装了 R debs 存储库,没有任何问题...

感谢您的帮助!

2017 年 7 月 20 日发布的 RStudio 1.0.153 依赖于 GStreamer 1.0 而不是 GStreamer 0.10。它可以安装在现代 Debian/Ubuntu 上而无需任何额外设置,使这个问题和我的答案过时。

更具体地说,有两个不同的 DEB 包。一个针对 Ubuntu 16.04(或更高版本)和 Debian 9(或更高版本),只有 64 位版本并且依赖更新的 GStreamer 1.0。另一个软件包支持 Ubuntu 从 12.04 到 15.10 和 Debian 8,它有 32 位和 64 位版本。这个仍然依赖于旧的 GStreamer 0.10。

原答案保留在下方。


截至 2016 年年中,RStudio 对 GStreamer 0.10 的依赖性很强,而且没有办法解决它。您必须安装 libgstreamer0.10-0libgstreamer-plugins-base0.10-0 才能使用 RStudio。

这些软件包可以很容易地从 Debian Jessie(稳定)中提取。只需将 Jessie 存储库添加到您的 sources.list 并使用 apt-pinning 降低其优先级:

# /etc/apt/sources.list:
deb http://httpredir.debian.org/debian jessie main
# /etc/apt/preferences.d/01_release:
Package: *
Pin: release o=Debian,a=unstable
Pin-Priority: 600

Package: *
Pin: release o=Debian,n=jessie
Pin-Priority: 10

然后发出apt-get update并跟进apt-get install libgstreamer0.10-0 libgstreamer-plugins-base0.10-0

如果您碰巧将 RStudio .deb 文件放入本地存储库,则使用 apt-get install rstudio 并且 GStreamer0.10 将被依赖项解析器拉入。这具有将这些库标记为自动安装的额外优势——一旦 RStudio 将它们作为依赖项删除,它们将自动删除。

但这会破坏我的系统吗?

没有。

上游开发人员将 GStreamer0.10 和 GStreamer1.0 设计为可共同安装并且能够同时 运行 (source). In fact, both were available in Debian repository since September 2012 up to April 2016.

在此固定设置中,只有当 Jessie 是所请求包的唯一提供者时,才会从 Jessie 存储库中提取包。没有用稳定的旧版本覆盖不稳定的任何软件包的风险。

为什么 RStudio 依赖过时的库?

因为 GStreamer0.10 是 Debian Jessie 和 Ubuntu 12.04 中可用的最新版本,所以他们希望支持这两个发行版。

RStudio 最终将不得不升级他们对 GStreamer1.0 的依赖,因为它将逐渐成为唯一可用的版本。我猜这个变化可能会在 spring 2017 年引入。首先,对 Ubuntu 12.04 的支持将在四月份结束。 Rstudio 可能会将基本系统要求提高到 14.04 - 一个同时具有 GStreamer0.10 和 1.0 的系统。其次,Debian Stretch——只有 GStreamer1.0 可用——预计将在那个时候发布。

  1. 从任何镜像下载 libgstreamer0.10-0 适用于您的计算机。
  2. 在下载文件的目录中打开终端。
  3. 使用命令 sudo dpkg -i file.deb 安装它。示例 sudo dpkg -i libgstreamer0.10-0_0.10.36-1ubuntu1_amd64.deb.
  4. 现在打开rstudio.deb所在目录,用同样的方法安装

我发现 Miroslaw 的回答非常好。但是,由于时间的流逝,您将需要一个包:libssl1.0.0,因此您的设置 apt-get 将如下所示 apt-get install libgstreamer0.10-0 libgstreamer-plugins-base0.10-0 libssl1.0.0

下载库

http://ftp.br.debian.org/debian/pool/main/g/gstreamer0.10/libgstreamer0.10-0_0.10.36-1.5_amd64.deb http://ftp.br.debian.org/debian/pool/main/g/gst-plugins-base0.10/libgstreamer-plugins-base0.10-0_0.10.36-2_amd64.deb

用 gdebi 或 dpkg -i 安装它们就可以了