installr:install.pandoc()似乎已损坏

时间:2018-12-15 00:06:40

标签: r pandoc

我最近注意到install.pandoc包中的installr函数似乎已损坏。

我收到以下错误消息:

trying URL 'https://github.com/'    
Content type 'text/html; charset=utf-8' length unknown    
downloaded 78 KB

github.com is not compatible with the version of Windows you're running. Check your computer's system information and then contact the software publisher.

函数似乎没有从GitHub找到合适的文件。我已经向GitHub上的installr包提交了一个拉取请求,以纠正此错误。

1 个答案:

答案 0 :(得分:1)

这是应该正确安装Pandoc并作为请求请求提交的函数。如果您在修复此错误之前遇到了该错误。

library(installr)
FixedInstall.Pandoc <- function (URL = "https://github.com/jgm/pandoc/releases", use_regex = TRUE, 
          to_restart, ...) 
{
  URL <- "https://github.com/jgm/pandoc/releases"
  page_with_download_url <- URL
  if (!use_regex) 
    warning("use_regex is no longer supported, you can stop using it from now on...")
  page <- readLines(page_with_download_url, warn = FALSE)
  sysArch <- Sys.getenv("R_ARCH") 
  sysArch <-  gsub("/ |/x", "", sysArch)
  pat <- paste0("jgm/pandoc/releases/download/[0-9.]+/pandoc-[0-9.-]+-windows",".*", sysArch, ".*", ".msi")
  target_line <- grep("windows", page, value = TRUE)
  m <- regexpr(pat, target_line)
  URL <- regmatches(target_line, m)
  URL <- head(URL, 1)
  URL <- paste("https://github.com/", URL, sep = "")
  installed <- install.URL(URL, ...)
  if (!installed) 
    return(invisible(FALSE))
  if (missing(to_restart)) {
    if (is.windows()) {
      you_should_restart <- "You should restart your computer\n in order for pandoc to work properly"
      winDialog(type = "ok", message = you_should_restart)
      choices <- c("Yes", "No")
      question <- "Do you want to restart your computer now?"
      the_answer <- menu(choices, graphics = "TRUE", title = question)
      to_restart <- the_answer == 1L
    }
    else {
      to_restart <- FALSE
    }
  }
  if (to_restart) 
    os.restart()
}