Czy istnieje prosty sposób na skompilowanie mojego R
skryptu do samodzielnego .exe
pliku, tak jak robi to Matlab?
Czy istnieje prosty sposób na skompilowanie mojego R
skryptu do samodzielnego .exe
pliku, tak jak robi to Matlab?
Odpowiedzi:
Właściwie istnieje sposób na osiągnięcie rozwiązania, które spełni Twoje wymagania. Zapoznaj się z artykułem na temat wdrażania aplikacji klasycznych z R na R-Bloggerach. Jak opisano w artykule, w końcu użyjesz kilku rzeczy więcej niż jednego pliku exe.
Chciałbym również zwrócić twoją uwagę na RGtk2, przy użyciu RGtk2 możesz spróbować stworzyć własny interfejs w R. Jeśli przyjdzie Ci do głowy, ufam, że możesz spakować swój kod R razem z przenośną wersją R i zależności w jednym instalatorze i stworzeniu z niego aplikacji, co stworzyłoby iluzję jednego pliku exe.
W swoim pytaniu zapytałeś, czy łatwo jest opracować samodzielny plik wykonywalny interpretujący kod R. Nie powiedziałbym, że to łatwe. Jeśli masz silne pragnienie uruchomienia kodu R z aplikacji, możesz to zrobić w prostszy sposób, używając RCaller for Java lub R.NET .
W odpowiedzi na Twój komentarz:
Właściwie chciałbym go rozpowszechniać, ale zachowując skrypty i algorytm w tajemnicy, czy istnieje sposób na zaszyfrowanie tego lub innego sposobu, aby osiągnąć ten cel?
Możesz (w pewnym sensie) to zrobić, zapisując funkcje za pomocą save()
. Na przykład, oto funkcja, f()
którą chcesz zachować w tajemnicy:
f <- function(x, y) {
return(x + y)
}
Zapisz to gdziekolwiek:
save(f, file = 'C:\\Users\\Joyce\\Documents\\R\\Secret.rda')
A kiedy chcesz skorzystać z funkcji:
load("C:\\Users\\Joyce\\Documents\\R\\Secret.rda")
Zapisałbym wszystkie moje funkcje w osobnych plikach, umieściłbym je w folderze i miałbym jeden zwykły stary skrypt .R ładujący je wszystkie i wykonujący cokolwiek. Spakuj całość i rozdaj komukolwiek. Może nawet skompiluj go w pakiet. W rzeczywistości całość byłaby tylko do odczytu.
To rozwiązanie nie jest jednak świetne. Nadal możesz zobaczyć funkcję w R, wpisując nazwę funkcji, aby nie była ukryta w tym sensie. Ale jeśli otworzysz pliki .rda, ich zawartość jest zniekształcona. Wszystko zależy tak naprawdę od tego, jak doświadczeni są odbiorcy twojego kodu z R.
f
.
Jedną z form posiadania zaszyfrowanego kodu zaimplementowano w petals
funkcji pakietu TeachingDemos.
Zwróć uwagę, że znalezienie ukrytego kodu wymagałoby jedynie umiejętności programowania na poziomie średnio zaawansowanym, jednak wymaga to celowego wysiłku i użytkownik nie byłby w stanie twierdzić, że widział kod przez przypadek. Będziesz wtedy potrzebować jakiegoś rodzaju umowy licencyjnej, aby wyegzekwować wszelkie umowy o braku podglądu.
petals
funkcja nie ukrywa kodu, jest to jeden z przykładów ukrywania kluczowego fragmentu kodu (czy potrafisz odczytać klucz?). Do szyfrowania (wybielania) potrzebne są inne narzędzia. Prostsze podejście omówiono pod adresem: stat.ethz.ch/pipermail/r-devel/2011-October/062236.html . Kompilacja bajtów również może pomóc, ale naprawdę potrzebujesz jakiejś umowy licencyjnej.
Cóż, będziesz potrzebować R zainstalowanego na maszynie wdrożeniowej. Jeśli chodzi o tworzenie pliku wykonywalnego, nie jestem pewien, czy jest to możliwe. Ale możesz stworzyć inny program, który wywoła twój skrypt R. R jest językiem interpretowanym. To niemożliwe.