【问题标题】:R 3.6 on debian stretch [duplicate]Debian Stretch 上的 R 3.6 [重复]
【发布时间】:2019-12-10 07:14:04
【问题描述】:

我需要在 debian stretch 上运行 3.6 - 我按照此处的说明进行操作:

https://cran.r-project.org/bin/linux/debian/

并使用了这个 repo:

http://lib.stat.cmu.edu/R/CRAN/bin/linux/debianstretch-cran35/

我能够安装它。但是我需要 2 个包,r-cran-caret 和 r-cran-ggplot2 不会安装:

# apt-get install r-cran-ggplot2
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 r-cran-ggplot2 : Depends: r-api-3
                  Depends: r-cran-digest but it is not going to be installed
                  Depends: r-cran-gtable (>= 0.1.1) but it is not
going to be installed
                  Depends: r-cran-plyr (>= 1.7.1) but it is not going
to be installed
                  Depends: r-cran-reshape2 but it is not going to be installed
                  Depends: r-cran-scales (>= 0.4.1) but it is not
going to be installed
                  Depends: r-cran-tibble but it is not going to be installed
                  Depends: r-cran-lazyeval but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

有没有办法为我的环境获取这两个包?

【问题讨论】:

  • 请提供您在 R 中输入 install.packages("ggplot2") 时收到的错误消息
  • 我没有使用 R 会话。我正在使用 rpy 从 python 调用 R,所以我需要在 OS 级别可用的包。
  • 虽然我没有使用 rpy 的经验,但我怀疑您在这里遇到了一个常见问题,即包依赖于您正在使用的 R 版本。如果是这种情况,将通过 R 错误消息进行澄清。
  • 请参阅stackoverflow.com/questions/51256462。您需要从 CRAN 安装这些软件包。
  • 在 R 会话中安装包没有错误。

标签: r debian-stretch


【解决方案1】:

您缺少依赖项,而 apt-get 告诉您这些依赖项已损坏。 您需要从 R 库中删除损坏的依赖项,该库应位于 /usr/lib/R/site-library 中。

为什么不直接在 R 中安装它?

install.packages(c("caret", "ggplot2"), dependencies = TRUE)

正如您所提到的,您想使用 docker:参见 Dirk Eddelbuettel 的 littler 包:https://github.com/eddelbuettel/littler 特别是 install2.r 函数和它的选项 -d

有关其他人如何使用它的示例,请参阅rocker docker 图像。

另一个编辑:如果你决定使用 littler,我想你会需要这个语法

install2.r -d TRUE caret ggplot2

【讨论】:

  • 我没有使用 R 会话。我在 docker 容器中使用 rpy 从 python 调用 R,所以我需要在操作系统级别可用的包。我试图从 R 中安装它并且它有效。但是当我制作 docker 映像时,我需要它们与 apt 一起安装。
  • 你为什么不发布你的 dockerfile 让我们看看有什么问题?你应该检查一下 Dirk Eddelbuettel 和 Carl Boettiger 在摇滚图片中的表现:github.com/rocker-org/rocker
  • 使用rscript安装
  • 因为安装大约需要 3 分钟。在 CI 环境中,真的不值得。
【解决方案2】:

我不确定这是否能解决您的问题。

sudo dpkg --configure -a

在这些情况下,我发现使用 aptitude 更容易

sudo apt install aptitude    
sudo aptitude install r-cran-ggplot2

当然,如果 ggplot2 有效,您可以尝试使用 caret 进行相同操作。

然而,一个问题是,如果您在终端中加载 R 并尝试在 R 中安装这些软件包,您会收到什么样的错误消息?

在终端中键入 R 并在它加载类型之后

install.packages("ggplot2",dependencies=TRUE)

执行此操作时会收到哪些错误消息?

另一个常见问题是您尝试安装的软件包版本确实安装在您正在使用的 R 版本中。在这种情况下,您必须从 cran 下载软件包,解压缩并从本地文件安装。

打开终端并在会话类型中输入 R

packageurl <- "https://cran.r-project.org/src/contrib/ggplot2_3.2.0.tar.gz"
install.packages(packageurl, repos=NULL, type="source", dependencies=TRUE)

如果您有版本控制的常见问题,希望此命令不会打扰检查 ggplot 的版本和 R 的版本。

或者,如果您不想在终端中显式启动 R 会话类型

wget https://cran.r-project.org/src/contrib/ggplot2_3.2.0.tar.gz
R CMD INSTALL ggplot2_3.2.0.tar.gz repos=NULL type="source" dependencies=TRUE

【讨论】:

  • 尝试使用 aptitude 进行操作,但由于错误略有不同而失败 - 许多类似 r-cran-colorspace : Depends: r-api-3 which is a virtual package, provided by: - r-base-core (3.3.3-1), but 3.6.1-2~stretchcran.0 is installed 的消息
  • 你可以通过在终端中输入“R”来打开 R 会话吗?
  • 请检查我最后的建议,刚刚编辑它,让我知道它是否有效
  • 使用 ERROR: dependencies 'digest', 'gtable', 'lazyeval', 'reshape2', 'rlang', 'scales', 'tibble', 'viridisLite', 'withr' are not available for package 'ggplot2' 失败
  • 尝试在末尾添加 dependencies=TRUE
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-03
  • 1970-01-01
  • 2018-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-26
相关资源
最近更新 更多