pandoc r-markdown shiny-server

se requiere la versión 1.12.3 o posterior de pandoc y no se encontró(R brillante)



pandoc markdown (6)

Hola, acabo de superar este error. Lo resolví eliminando los 2 archivos de pandoc, "pandoc" y "pandoc-citeproc" de la carpeta del servidor brillante. Luego creé un enlace para cada uno de estos archivos desde la carpeta rstudio-server. Funcionó a las mil maravillas. Este fue un problema para mí cuando intenté insertar un folleto en los documentos de rmarkdown para que no se ejecutara un servidor brillante en una máquina Linux. Me pareció extraño que cuando lo ejecuté en rstudio en la misma máquina Linux funcionó bien, pero no cuando lo ejecuté usando el servidor brillante. Entonces, la instalación brillante del servidor de Pandoc es antigua / desactualizada. Aclamaciones

Tengo un problema al generar un informe en PDF de mi aplicación brillante que está alojado en un servidor.

la aplicación funciona bien, pero cuando presiono el botón para descargar el informe, aparece este error:

pandoc version 1.12.3 or higher is required and was not found.

El problema es que si pandoc -v obtengo:

pandoc 1.12.3.3 Compiled with texmath 0.6.6, highlighting-kate 0.5.6.1. Syntax highlighting is supported for the following languages: actionscript, ada, apache, asn1, asp, awk, bash, bibtex, boo, c, changelog, clojure, cmake, coffee, coldfusion, commonlisp, cpp, cs, css, curry, d, diff, djangotemplate, doxygen, doxygenlua, dtd, eiffel, email, erlang, fortran, fsharp, gnuassembler, go, haskell, haxe, html, ini, java, javadoc, javascript, json, jsp, julia, latex, lex, literatecurry, literatehaskell, lua, makefile, mandoc, markdown, matlab, maxima, metafont, mips, modelines, modula2, modula3, monobasic, nasm, noweb, objectivec, objectivecpp, ocaml, octave, pascal, perl, php, pike, postscript, prolog, python, r, relaxngcompact, restructuredtext, rhtml, roff, ruby, rust, scala, scheme, sci, sed, sgml, sql, sqlmysql, sqlpostgresql, tcl, texinfo, verilog, vhdl, xml, xorg, xslt, xul, yacc, yaml Default user data directory: /home/daniele/.pandoc Copyright (C) 2006-2013 John MacFarlane Web: http://johnmacfarlane.net/pandoc This is free software; see the source for copying conditions. There is no warranty, not even for merchantability or fitness for a particular purpose.

Entonces, supongo que tengo la versión correcta para eso. TexLive también está instalado y la ruta está en $PATH .

Server.R

library(shiny) library(drsmooth) library(shinyBS) library(knitr) library(xtable) library(rmarkdown) shinyServer(function(input, output,session) { output$downloadReport <- downloadHandler( filename = function() { paste(''report'', sep = ''.'',''pdf'') }, content = function(file) { src <- normalizePath(''report.Rmd'') # temporarily switch to the temp dir, in case you do not have write # permission to the current working directory owd <- setwd(tempdir()) on.exit(setwd(owd)) file.copy(src, ''report.Rmd'') library(rmarkdown) out <- render(''report.Rmd'') file.rename(out, file) }) output$tb <- renderUI({ p(h4("Report")), "Dowload a the report of your analysis in a pdf format", tags$br(),downloadButton(''downloadReport'',label="Download report"), tags$em("This option will be available soon") }) })

* report.Rmd * no contiene ningún tipo de cálculo, solo es texto. La generación de PDF funciona bien en mi versión local (MacOS) pero no en el servidor.

Gracias de antemano, y estoy aquí para dar otra información si es necesario.

Daniele


La manera más fácil de resolver este problema es pasar el comando Sys.setenv (..) dentro del comando crontab antes de llamar al renderizado RMarkdown ::. Debe separar los dos comandos con un punto y coma:

R -e "Sys.setenv(RSTUDIO_PANDOC=''/usr/lib/rstudio-server/bin/pandoc''); rmarkdown::render(''File.Rmd'', output_file=''output.html'')"

(Recuerde que la ruta del servidor rstudio difiere de la versión que no es servidor)


Otra opción para que esto funcione para todos tus scripts R es definir esta variable globalmente.

En Debian / Ubuntu, agregue la siguiente línea a su archivo .bashrc:

export RSTUDIO_PANDOC=/usr/lib/rstudio/bin/pandoc

En macOS, agregue lo siguiente a su archivo .bash_profile:

export RSTUDIO_PANDOC=/Applications/RStudio.app/Contents/MacOS/pandoc

En Windows (usando Git Bash ), agregue lo siguiente a su archivo .bashrc:

export RSTUDIO_PANDOC="/c/Program Files/RStudio/bin/pandoc/"


Para aquellos que no usan RStudio, puede que necesite instalar Pandoc en su sistema. Para mí fue

sudo pacman -S pandoc

y funcionó (Arch Linux).


Si está intentando ejecutar un script desde la línea de comando en Windows, solo necesita tener la ruta del directorio en la variable PATH *. También puede crear una variable de usuario separada llamada RSTUDIO_PANDOC y darle a esta variable el directorio *. A continuación, cierre y vuelva a abrir los terminales para actualizar las rutas del sistema. **

* Experimente con un seguimiento / si tiene problemas. ** No pude señalar una ruta UNC. // al comienzo de la ruta rehizo el paquete rmarkdown funciones de pandoc. Si está utilizando una ruta UNC, debe asignarla a una unidad y hacer referencia a la letra de la unidad. Hay formas de hacer esto de forma dinámica. Utilizo una secuencia de comandos DOS / por lotes que encontré a través de Google.


Vaya a RStudio y encuentre la variable de entorno del sistema para RSTUDIO_PANDOC

Sys.getenv("RSTUDIO_PANDOC")

Luego colóquelo en su script R antes de llamar al comando de renderizado.

Sys.setenv(RSTUDIO_PANDOC="--- insert directory here ---")

Esto funcionó para mí después de haber estado luchando por encontrar cómo Remarkdown encuentra a Pandoc. Tenía que verificar github para ver la fuente.