¿Existe alguna manera fácil de compilar mi Rscript en un .exearchivo independiente como lo hace matlab?
¿Existe alguna manera fácil de compilar mi Rscript en un .exearchivo independiente como lo hace matlab?
Respuestas:
De hecho, existe una forma de lograr una solución que satisfaga sus necesidades. Eche un vistazo al artículo sobre Implementación de aplicaciones de escritorio con R en R-Bloggers. Como se detalla en el artículo, terminará usando algunas cosas más que un solo archivo exe.
También me gustaría llamar su atención sobre el RGtk2 con el uso del RGtk2 , podría intentar desarrollar su propia interfaz en R. Si las cosas se complican , confío en que pueda empaquetar su código R junto con una versión portátil de R y dependencias en un instalador y marca y aplicación a partir de eso, eso crearía la ilusión de un solo archivo exe.
En su pregunta, preguntó si es fácil desarrollar un archivo ejecutable independiente que interprete el código R. No diría que es fácil. Si tiene un gran deseo de ejecutar un código R desde una aplicación, puede hacerlo de una manera más simple usando RCaller para Java o R.NET .
En respuesta a tu comentario:
En realidad, me gustaría distribuirlo, pero manteniendo los scripts y el algoritmo en secreto, ¿hay alguna manera de cifrar eso o de alguna otra manera para lograr este propósito?
Puede (más o menos) hacer esto guardando funciones usando save(). Por ejemplo, aquí hay una función f()que desea mantener en secreto:
f <- function(x, y) {
return(x + y)
}
Guárdelo donde sea:
save(f, file = 'C:\\Users\\Joyce\\Documents\\R\\Secret.rda')
Y cuando quieras usar la función:
load("C:\\Users\\Joyce\\Documents\\R\\Secret.rda")
Guardaría todas mis funciones en archivos separados, las pondría en una carpeta y tendría un script .R simple y simple cargándolas todas y ejecutando lo que sea. Ciérralo todo y distribúyelo a quien sea. Quizás incluso compílelo en un paquete. Efectivamente, entonces todo sería de solo lectura.
Sin embargo, esta solución no es tan buena. Todavía puede ver la función en R escribiendo el nombre de la función para que no esté oculta en ese sentido. Pero si abre los archivos .rda, su contenido se distorsiona. Todo depende realmente de la experiencia que tengan los destinatarios de su código con R.
f.
Una forma de tener código encriptado se implementa en la petalsfunción en el paquete TeachingDemos.
Tenga en cuenta que solo se necesitarían habilidades de programación de nivel intermedio para encontrar el código oculto, sin embargo, requiere un esfuerzo deliberado y el usuario no podría afirmar haber visto el código por accidente. Luego, necesitaría algún tipo de acuerdo de licencia para hacer cumplir cualquier acuerdo de no mirar.
petalsfunción no oculta el código, es un ejemplo de tener una pieza clave de código oculta (¿puedes leer la pieza clave?). Se necesitan otras herramientas para realizar el cifrado (blanqueo). Un enfoque más simple se discute en: stat.ethz.ch/pipermail/r-devel/2011-October/062236.html . La compilación de bytes también puede ayudar, pero realmente necesita algún tipo de acuerdo de licencia.
Bueno, necesitará R instalado en la máquina de implementación. En cuanto a hacer un ejecutable, no estoy seguro de que sea posible. Pero puede crear otro programa que invoque su script R. R es un idioma interpretado. No es posible.