install.packages
位於 utils
包(package)。 說明
從 CRAN-like 存儲庫或本地文件下載並安裝軟件包。
用法
install.packages(pkgs, lib, repos = getOption("repos"),
contriburl = contrib.url(repos, type),
method, available = NULL, destdir = NULL,
dependencies = NA, type = getOption("pkgType"),
configure.args = getOption("configure.args"),
configure.vars = getOption("configure.vars"),
clean = FALSE, Ncpus = getOption("Ncpus", 1L),
verbose = getOption("verbose"),
libs_only = FALSE, INSTALL_opts, quiet = FALSE,
keep_outputs = FALSE, ...)
參數
pkgs |
應從存儲庫下載其當前版本的包名稱的字符向量。 如果
如果缺少此選項,則會在可能的情況下以交互式方式顯示可用包的列表框R會議。 |
lib |
給出安裝包的庫目錄的字符向量。根據需要回收。如果缺少,則默認為 |
repos |
字符向量,要使用的存儲庫的基本 URL,例如 CRAN 鏡像的 URL,例如 可以是 |
contriburl |
存儲庫貢獻部分的 URL。如果您的存儲庫鏡像不完整,請使用此參數,例如,因為您僅鏡像了“貢獻’部分,或者隻有二進製包。覆蓋參數 |
method |
下載方法參見 |
available |
由 |
destdir |
存儲下載的包的目錄。如果是 |
dependencies |
邏輯指示是否還安裝這些軟件包所依賴/鏈接/導入/建議的已卸載軟件包(等等遞歸地)。如果 僅當 默認值
在所有這些中,二進製包省略了 |
type |
字符,指示要下載和安裝的包的類型。除 Windows 和某些 macOS 版本外,將是 |
configure.args |
(僅用於源安裝。)字符向量或命名列表。如果提供沒有名稱的字符向量,則元素將連接成單個字符串(用空格分隔)並用作--configure-args調用中的標誌 命名列表也可以用於達到相同的效果,並且允許每個包的多元素字符串連接到單個字符串,用作值--configure-args. |
configure.vars |
(僅用於源安裝。)類似於 |
clean |
一個邏輯值,指示是否添加 - 幹淨的標記為調用 |
Ncpus |
用於並行安裝多個源包的並行進程數。如果滿足以下條件,則支持大於一的值 |
verbose |
一個邏輯指示是否應該給出一些“progress report”。 |
libs_only |
邏輯值:應該--libs-only選項可用於僅安裝額外的 sub-architectures 進行源安裝? (也可以看看 |
INSTALL_opts |
要傳遞給 也可以是用作附加選項的字符向量的命名列表,名稱為相應的包名稱。 |
quiet |
邏輯:如果為真,則減少輸出量。如果有意調用,則不會將其傳遞給 |
keep_outputs |
邏輯:如果為 true,則保留在當前工作目錄中安裝源包的輸出,輸出文件的名稱為包名稱帶有“。出去” 附加。或者,給出保存輸出的目錄的字符串。從本地文件安裝時被忽略。 |
... |
要傳遞給 |
細節
這是安裝軟件包的主要函數。它采用名稱向量和目標庫,從存儲庫下載軟件包並安裝它們。 (如果省略庫,則默認為 .libPaths()
中的第一個目錄,如果有多個目錄,則會顯示一條消息。)如果省略 lib
或長度為 1 並且不是(組)可寫目錄,則在交互式使用提供的代碼創建個人庫樹(Sys.getenv("R_LIBS_USER")
的第一個元素)並安裝在那裏。
在 Windows 上檢測可寫目錄是有問題的:請參閱“注意”部分。
對於從存儲庫安裝,會嘗試按照尊重軟件包依賴關係的順序安裝軟件包。這確實假設所有條目lib
位於安裝的默認庫路徑上(由環境變量設置R_LIBS)。
建議您在 install.packages
之前運行 update.packages
,以確保任何已安裝的依賴項均具有最新版本。
值
看不見的NULL
。
二進製包
本節僅適用於提供二進製包的平台:Windows 和適用於 macOS 的 CRAN 版本。
R軟件包主要分發為資源包,但是二進製還支持軟件包(已安裝軟件包的打包),並且是 Windows 上最常用的類型以及 CRAN 為 macOS 構建的類型。此函數可以通過從存儲庫或本地文件下載文件來安裝任一類型。
type
的可能值(當前)為 "source"
、 "mac.binary"
和 "win.binary"
:也可以選擇支持的適當二進製類型作為 "binary"
。
對於來自存儲庫的二進製安裝,該函數會檢查同一存儲庫上源包的可用性,並報告源包是否有更高版本,或者可用但沒有二進製版本。可以通過使用來抑製此檢查
options(install.packages.check.source = "no")
如果存在僅包含二進製文件的部分存儲庫,則應該如此。
另一種選擇(也是當前的默認值)是"both"
,這意味著“如果可用且當前使用二進製文件,否則嘗試源代碼”。如果存在首選的源包,但可能包含需要編譯的代碼,則由 getOption("install.packages.compile.from.source")
控製。如果指定了contriburl
或available
,type = "both"
將自動更改為"binary"
。
如果包不包含需要編譯的 C/C++/Fortran 代碼,則將包與 type = "source"
一起使用始終有效。否則,
- 在 Windows 上,
-
您需要安裝 Rtools 集合,如“R for Windows 常見問題解答”中所述和你必須有PATH根據 Rtools 的要求設置環境變量。
對於 32/64 位安裝R在 Windows 上,一小部分帶有編譯代碼的包需要
INSTALL_opts = "--force-biarch"
或者INSTALL_opts = "--merge-multiarch"
用於源安裝。 (從存儲庫或 tarball 安裝時始終設置後者是安全的,盡管速度會慢一些。)在 Windows 上安裝軟件包時,
install.packages
如果檢測到該軟件包已安裝且當前正在使用,將中止安裝。在某些情況下(例如,多個實例R同時運行並共享庫)它不會檢測到問題,但安裝可能會失敗,因為 Windows 鎖定正在使用的文件。 - 在類似 Unix 係統上,
-
當包中包含需要編譯的C/C++/Fortran代碼時,需要安裝合適的編譯器和相關工具。在 macOS 上,您需要安裝“Xcode 命令行工具”(請參閱“R 安裝和管理”手冊),如果軟件包需要,還需要安裝 Fortran 編譯器,並將它們放在您的路徑中。
鎖定
有多種鎖定選項:這些選項在源安裝和二進製安裝之間有所不同。
默認情況下,對於源安裝,庫目錄是‘locked’,通過創建目錄‘00鎖’在其中。這有兩個目的:它防止任何其他進程同時安裝到該庫中,並用於存儲包的任何先前版本以在錯誤時恢複。選項提供了更細粒度的鎖定--pkglock它為每個包創建一個單獨的鎖:這為並行安裝提供了足夠的自由度。 Per-package 鎖定是安裝單個軟件包時的默認設置,以及安裝多個軟件包時的默認設置Ncpus > 1L
。最後可以通過以下方式抑製鎖定(以及錯誤恢複)--no-lock.
對於 macOS 二進製安裝,默認情況下不進行鎖定。將參數 lock
設置為 TRUE
(默認為 getOption("install.lock", FALSE)
的值)將使用 per-directory 鎖定,如源安裝所述。對於 Windows 二進製安裝,默認使用 per-directory 鎖定( lock
默認為 getOption("install.lock", TRUE)
的值)。如果值為"pkglock"
per-package 將使用鎖定。
如果在 Windows 上使用libs_only = TRUE
使用包鎖定並且安裝失敗,則包將恢複到之前的狀態。
請注意,軟件包安裝可能會嚴重失敗,以致於鎖定目錄未被刪除:這會禁止任何進一步安裝到庫目錄(或--pkglock,包的),直到手動刪除鎖定目錄。
並行安裝
在以下情況下嘗試並行安裝:pkgs
長度大於一並且Ncpus > 1
。它利用並行make
, 所以make
指定(默認make
) 什麽時候R建成後必須能夠支撐使 -j \var{n}:GNU 製造,dmake
和pmake
可以,但是Solarismake
和更舊的FreeBSDmake
不要:如果需要環境變量MAKE可以為當前會話設置選擇合適的make
.
install.packages
需要能夠計算所有的依賴關係pkgs
從available
,包括如果其中一個元素pkgs
間接依賴於另一個。這意味著如果您正在安裝CRAN依賴於 Bioconductor 包的包,而 Bioconductor 包又依賴於CRAN包,available
需要涵蓋兩者CRAN和生物導體包。
超時
每次調用的經過時間限製R CMD INSTALL
(所以對於源安裝)可以設置通過環境變量_R_INSTALL_PACKAGES_ELAPSED_TIMEOUT_:以秒為單位(或以分鍾或小時為單位,帶有可選後綴‘m' 或者 'h', 後綴 's' 允許默認秒數)0
意思是沒有限製。
對於非並行安裝,這是實現的通過 timeout
的論點system2
:用於並行安裝通過操作係統的timeout
命令。 (測試的是來自GNUcoreutils
,通常在 Linux 上可用,但在其他 Unix 類似係統上不可用。如果沒有此類命令可用,則忽略超時請求並發出警告。在 Windows 上,需要指定一個合適的timeout
通過環境變量執行命令R_TIMEOUT, 因為 'c:/Windows/system32/timeout.exe’不是。)對於並行安裝,‘錯誤124’ 消息來自make
表明發生超時。
安裝期間超時可能會留下鎖定目錄並且無法恢複以前的版本。
源安裝的版本要求
如果您沒有運行 up-to-date 版本R您可能會看到類似這樣的消息
package 'RODBC' is not available (for R version 3.5.3)
一種可能性是該軟件包在任何選定的存儲庫中都不可用;另一個是可用,但僅適用於當前或最新版本R。為了CRAN包查看包的 CRAN 頁麵(例如,https://cran.r-project.org/package=RODBC)。如果在‘取決於' 字段依賴於更高版本的R你需要查看‘舊來源’部分,然後選擇與您的年齡相當的版本的 URLR。然後您可以提供該 URL 作為第一個參數install.packages()
:您可能需要首先手動安裝其依賴項。
對於其他存儲庫,使用available.packages(filters =
"OS_type")[pkgname, ]
將顯示該軟件包是否可用於任何R版本(針對您的操作係統)。
注意
- 在 Unix 類係統上:
-
一些二進製發行版R有
INSTALL
在一個單獨的捆綁包中,例如一個R-devel
轉速。install.packages
如果調用的話會給出錯誤type = "source"
在這樣一個係統上。一些二進製 Linux 發行版R可以安裝在沒有安裝軟件包所需工具的機器上:可能的補救措施是完整安裝R它應該將所有這些工具作為依賴項引入。
- 在 Windows 上:
-
install.packages
嘗試檢測您是否對指定的庫目錄具有寫權限,但 Windows 報告不可靠。如果隻有一個庫目錄(默認),R嘗試通過創建測試目錄來找出答案,但即使這也不一定是全部:您可能有權在庫目錄中寫入,但缺乏寫入二進製文件的權限(例如“.dll’文件)那裏。請參閱“R for Windows 常見問題解答”了解解決方法。
例子
## Not run:
## A Linux example for Fedora's layout of udunits2 headers.
install.packages(c("ncdf4", "RNetCDF"),
configure.args = c(RNetCDF = "--with-netcdf-include=/usr/include/udunits2"))
## End(Not run)
也可以看看
update.packages
、available.packages
、download.packages
、installed.packages
、contrib.url
。
請參閱download.file
了解如何處理代理和其他選項來監視文件傳輸。
untar
用於手動解壓源包 tarball。
INSTALL
, REMOVE
, remove.packages
, library
, .packages
, read.dcf
有關如何設置存儲庫的“R 安裝和管理”手冊。
相關用法
- R installed.packages 查找已安裝的軟件包
- R isS3method “method”是 S3 方法的名稱嗎?
- R isS3stdGeneric 檢查函數是否充當 S3 通用函數
- R select.list 從列表中選擇項目
- R COMPILE 編譯用於 R 的文件
- R readRegistry 讀取 Windows 注冊表配置單元
- R browseVignettes 在 HTML 瀏覽器中列出暈影
- R hasName 檢查姓名
- R nsl 按主機名查找 IP 地址
- R edit 調用文本編輯器
- R create.post 準備電子郵件和帖子的輔助函數
- R hsearch-utils 幫助搜索實用程序
- R download.packages 從類似 CRAN 的存儲庫下載軟件包
- R DLL.version MS Windows 上的 DLL 版本信息
- R ls.str 列表對象及其結構
- R Rscript R 前端腳本
- R bug.report 發送錯誤報告
- R PkgUtils 用於構建和檢查附加包的實用程序
- R cite 引用參考書目條目
- R SweaveSyntConv 轉換 Sweave 語法
- R RSiteSearch 搜索文檔中的關鍵詞或短語
- R glob2rx 將通配符或通配符模式更改為正則表達式
- R getFromNamespace 用於開發命名空間的實用函數
- R demo R 函數演示
- R mirrorAdmin 管理存儲庫鏡像
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Install Packages from Repositories or Local Files。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。