【问题标题】:Trouble with Pandoc installation on Ubuntu 14.04LTS for using with R Markdown在 Ubuntu 14.04LTS 上安装 Pandoc 以与 R Markdown 一起使用时出现问题
【发布时间】:2014-07-21 10:42:54
【问题描述】:

这个问题是我尝试通过knitrrmarkdown R 包从R Markdown 文档中获得一些经验的必然结果。虽然.Rmd => HTML 转换似乎是在 RStudio(Knit HTML 按钮)内自动进行的,但我尝试在 RStudio 之外进行相同操作(Rscript -e 'library(rmarkdown); render("knitr-example-slides-1.Rmd")')失败了,因为根据消息,我的上缺少pandoc系统。这很可能是错误的,因为 RStudio 以某种方式设法执行了转换。因此,很可能是访问和/或路径问题

在不知道 RStudio 维护 pandoc 的位置以及有关访问权限的详细信息的情况下,我决定自己安装 pandoc。不幸的是,sudo apt-get install pandoc 并不是很有帮助,因为 Ubuntu 的 trusty 存储库 (14.04LTS) 中 pandoc 的当前版本是 1.12.2.1。根据rmarkdown的消息,需要1.12.3或更高版本。 “没什么大不了的”,我想,并按照说明安装pandoc,以防存储库中的版本太旧(http://johnmacfarlane.net/pandoc/installing.html)。这需要安装 Haskell 平台,该平台非常大而且输出相当冗长。一段时间后,我终于收到了以下失败消息

[ 6 of 57] Compiling Text.Pandoc.Readers.TeXMath ( src/Text/Pandoc/Readers/TeXMath.hs, dist/build/Text/Pandoc/Readers/TeXMath.o )

src/Text/Pandoc/Readers/TeXMath.hs:30:38:
    Ambiguous occurrence `readTeXMath'
    It could refer to either `Text.Pandoc.Readers.TeXMath.readTeXMath',
                             defined at src/Text/Pandoc/Readers/TeXMath.hs:56:1
                          or `Text.TeXMath.readTeXMath',
                             imported from `Text.TeXMath' at src/Text/Pandoc/Readers/TeXMath.hs:33:1-19
                             (and originally defined in `Text.TeXMath.Parser')
Failed to install pandoc-1.12.4.2
cabal: Error: some packages failed to install:
pandoc-1.12.4.2 failed during the building phase. The exception was:
ExitFailure 1
pandoc-citeproc-0.3.1 depends on pandoc-1.12.4.2 which failed to install.

首先,我不确定如何修复它。其次,我非常怀疑应该有一种更简单的方法来享受使用rmarkdownpandoc 生成可重现的报告,而不是这样。 您的建议将不胜感激!

更新(见 cmets):

Rscript -e 'library(rmarkdown); render("knitr-example-slides-1.Rmd")'


processing file: knitr-example-slides-1.Rmd
  |.......                                                          |  11%
  ordinary text without R code

  |..............                                                   |  22%
label: setup (with options)
List of 1
 $ include: logi FALSE

Quitting from lines 6-8 (knitr-example-slides-1.Rmd)
Error in eval(expr, envir, enclos) : object 'opts_chunk' not found
Calls: render ... handle -> withCallingHandlers -> withVisible -> eval -> eval

Execution halted

【问题讨论】:

  • RStudio 已经提供了 Pandoc 的二进制编译版本,因此您可以简单地创建一个符号链接,以便您可以轻松地在 RStudio 生态系统之外使用它:github.com/rstudio/rmarkdown/blob/master/…
  • @daroczig:太棒了,感谢您清晰快速的回复!我知道应该有一个更简单的方法...... :-)。将尝试在这里报告。
  • 好吧,我按照 RStudio Server 的说明进行操作。但是,处理示例 .Rmd 文件 (github.com/yihui/knitr-examples/blob/master/009-slides.Rmd) 的尝试失败,如上面的 UPDATE 所示。有任何想法吗? (我知道这与原始问题不同,但可能不值得创建一个单独的问题。)
  • 如果我不想安装 RStudio,有什么解决办法吗?
  • @January:那是很久以前的事了,所以我不确定markdownpandoc 的版本要求是什么。但是,您绝对可以尝试install a binary package for your platform 看看它是否有效。如果没有,那么我会看到两个替代选项:1)安装RStudio; 2) 从源代码构建pandoc。话虽如此,我很确定pandoc 的当前二进制包应该足够了,除非您需要一些最新的更新。祝你好运!

标签: r knitr pandoc r-markdown reproducible-research


【解决方案1】:

基本上,@daroczig 在上面的评论中回答了这个问题,所以我会在这里重复一遍,另外会添加一个关于该问题的相关次要问题的答案,出现在主要问题的问题修复之后。

1) “Pandoc 的二进制编译版本已经与 RStudio 一起提供,因此您可以简单地创建一个符号链接,以便您可以轻松地在 RStudio 生态系统之外使用它:@987654321 @";

2) 我已经修复了在应用上述建议后遇到的错误(请参阅我的评论),通过使用 explicit package reference 调用 opts_chunk()knitr::opts_chunk(),遵循此处的指南:@987654322 @(感谢@Yihui 在另一个问题中将我指向此文档:Transitioning research project to knitr-based setup)。

【讨论】:

  • @易慧:谢谢!我只是在等待 - 所以有 2 天的等待期,直到一个人可以接受她/他自己的答案:-)。如果您能表达您的意见或向我指出有关将knitrR Markdown 用于复杂的多文件/多目录项目的方法(我的问题的主题:stackoverflow.com/questions/24848303/…),我将不胜感激。
猜你喜欢
  • 2015-02-20
  • 2014-06-03
  • 2021-01-03
  • 2023-03-21
  • 2020-08-02
  • 2019-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多