2017-06-15 34 views
3

在大多數腳本語言中(例如Ruby,Python等),包管理器(例如gem,pip等)可以將腳本安裝爲可執行文件並將它們鏈接到PATH變量中引用的目錄(例如/ usr/local/bin)。這將這些可執行腳本轉換爲shell命令,用戶可以以獨立方式在編程界面之外運行。使用R包安裝可執行腳本

我想知道在R中是否也有這種可能性。鑑於R使用標準Makefiles,我想必須有一種方法可以這樣做,儘管它是非標準的。我已經知道我們可以在R腳本中讀取命令行參數using the docopt package。但有沒有辦法在安裝軟件包時將腳本安裝爲可執行文件?

在這個話題上有領先者會很棒,但是一個來自CRAN的單個工作例子也足夠了。

回答

2

短(而且很傷心)答案:你不能。但請繼續閱讀。

推理:R只會將封裝內容寫入其自己的.libPaths()目錄(或第一個以防萬一),或者由用戶給出的目錄。

因此,說,/usr/local/bin/是根本無法觸及。這是一個可行的戰略。

這也是相當悲傷 - 我寫littler(也CRAN page)正是爲此目的:可執行R腳本。我們有幾十個在工作的人從cron工作調用。那麼我們該怎麼辦? A 一次性從包含腳本的軟件包的scripts/子目錄到/usr/local/bin的軟鏈接。在軟件包升級時,鏈接將作爲軟鏈接繼續存在。

這就是我爲例如所有的examples shipping with littler和更多來自其他包。他們中的許多人也使用docopt

+0

但是,在R的'.libPaths()'下面有一個標準的bin路徑,我們可以爲所有路徑添加路徑,然後將所有可執行文件鏈接到那裏?這就是'pip'和'gem'功能。 – retrography

+0

只需展開'.libPaths()':它是所有包目錄中的一個級別。 –