Matlab'ın yaptığı gibi betiğimi Rbağımsız bir .exedosyada derlemenin kolay bir yolu var mı ?
Matlab'ın yaptığı gibi betiğimi Rbağımsız bir .exedosyada derlemenin kolay bir yolu var mı ?
Yanıtlar:
Aslında gereksinimlerinizi karşılayacak bir çözüme ulaşmanın bir yolu var. R-Blogger'larda R ile Masaüstü Uygulamalarını Dağıtma hakkındaki makaleye bir göz atın . Makalede detaylandırıldığı gibi, sonunda tek bir exe dosyasından birkaç şey daha kullanacaksınız.
Ayrıca, RGtk2'yi kullanarak RGtk2'ye dikkatinizi çekmek isterim , R'de kendi arayüzünüzü geliştirmeyi deneyebilirsiniz. Eğer itme dürtmek için gelirse, R kodunuzu taşınabilir bir R ve bağımlılıkları tek bir yükleyiciye ve ondan yapıp uygulama, bu da tek bir exe dosyasının yanılsamasını yaratır.
Sorunuzda, R kodunu yorumlayan bağımsız bir yürütülebilir dosya geliştirmenin kolay olup olmadığını sordunuz . Kolay olduğunu söyleyemem. Bir uygulamadan bir R kodu çalıştırmak için güçlü bir isteğiniz varsa, bunu Java veya R.NET için RCaller kullanarak daha basit bir şekilde yapabilirsiniz .
Yorumunuza yanıt olarak:
Aslında onu dağıtmak istiyorum ama komut dosyalarını ve algoritmayı gizli tutmak, bunu şifrelemenin bir yolu veya bu amaca ulaşmak için başka bir yol var mı?
Bunu kullanarak işlevleri kaydederek (bir sıralama) yapabilirsiniz save(). Örneğin, işte f()gizli tutmak istediğiniz bir işlev :
f <- function(x, y) {
return(x + y)
}
Her yere kaydedin:
save(f, file = 'C:\\Users\\Joyce\\Documents\\R\\Secret.rda')
Ve işlevi kullanmak istediğinizde:
load("C:\\Users\\Joyce\\Documents\\R\\Secret.rda")
Tüm işlevlerimi ayrı dosyalara kaydeder, bir klasöre koyardım ve hepsini yükleyen ve her şeyi çalıştıran bir düz eski .R betiğine sahip olurdum. Her şeyi sıkıştırın ve herkese dağıtın. Hatta onu bir paket halinde derleyin. Etkili bir şekilde her şey salt okunur olacaktı.
Bu çözüm o kadar da harika değil. İşlevin adını yazarak, bu anlamda gizli kalmaması için işlevi yine de R'de görebilirsiniz. Ancak .rda dosyalarını açarsanız, içerikleri bozuktur. Her şey gerçekten kodunuzun alıcılarının R konusunda ne kadar deneyimli olduğuna bağlıdır.
f.
Şifrelenmiş koda sahip olmanın bir biçimi petals, TeachingDemos paketindeki işlevde uygulanmaktadır .
Gizli kodu bulmak için sadece orta seviye programlama becerileri gerektiğini, ancak kasıtlı bir çaba gerektirdiğini ve kullanıcının kodu kazara gördüğünü iddia edemeyeceğini unutmayın. Daha sonra herhangi bir gözetleme anlaşmasının uygulanmaması için bir tür lisans anlaşmasına ihtiyacınız olacaktır.
petalsişlev kodu gizlemez, gizli bir kod parçasına sahip olmanın bir örneğidir (anahtar parçayı okuyabilir misiniz?). Şifreleme (ağartma) için başka araçlara ihtiyaç vardır. Stat.ethz.ch/pipermail/r-devel/2011-October/062236.html adresinde daha basit bir yaklaşım tartışılmaktadır . Bayt derleme de yardımcı olabilir, ancak gerçekten bir tür lisans sözleşmesine ihtiyacınız var.
Peki, dağıtım makinesinde R'nin kurulu olmasına ihtiyacınız olacak. Bir yürütülebilir dosya yapmaya gelince, bunun mümkün olduğundan emin değilim. Ancak R betiğinizi çağıran başka bir program oluşturabilirsiniz. R yorumlanmış bir dildir. Mümkün değil.