開啟 3 天免費試用
註冊即可免費體驗全部高級功能。
*只限新用戶;每位用戶只可獲得一次試用。


R 套件下載失敗與安裝失敗應分開診斷。先確認 R 能讀取套件庫索引、取得正確封裝檔並完成傳輸,再研究編譯或 library 權限。保留套件名稱、R 版本、來源和封裝類型,讓每次重試回答同一問題。
關鍵要點:
- 記錄最早失敗的套件庫請求,不只看最後警告。
- 二進制與原始碼套件的供應情況和要求可能不同。
- 分別驗證檔案傳輸、安裝與載入。
- 每次只更改一項診斷變數,保持 TLS 驗證。
保存原 install.packages() 呼叫及第一個錯誤,記錄是在本機 R 主控台、RStudio、容器或遙距 notebook 執行。RStudio 介面可能在一台電腦,R 工作階段卻在別處。桌面連接測試不能自動代表該工作階段。
檢查工作階段,不要猜測設定:
R.version.string
R.version$platform
getOption("repos")
getOption("pkgType")
getOption("timeout")
.libPaths()
結果顯示 R 建置、所選套件庫、要求類型、逾時設定及 library 搜尋位置。只在私人環境查看,來源字串、本機路徑與自訂設定可能透露機構資料。不要把憑據、token 或私人套件庫地址放進公開求助。
確認正在安裝一個套件,還是一組依賴。指定套件下載成功,不代表全部依賴可用;最後只顯示安裝結束狀態非零時,更要區分套件名與最早失敗的封裝檔。[1]
多個應用同時連接失敗時,先用裝置與應用的通用排查。只有此 R 工作階段失敗,就繼續看套件庫和程序環境。定位操作前,不更新整個 library,也不更換 R 安裝。
R 可安裝原始碼套件,以及受支援平台上的二進制套件。供應情況取決於 R 版本、作業系統、架構及套件庫;另一平台的二進制不能取代所需建置。封裝檔即使下載完成,原始碼安裝仍可能需要編譯器和系統程式庫。[1]
用下表區分階段,避免把每條訊息都視為連接問題:
| 階段 | 預期結果 | 失敗證據 | 下一項檢查或負責方 |
|---|---|---|---|
| 套件庫索引 | 能讀取所選類型的套件記錄 | 無法讀索引或連接錯誤 | 來源 URL、代理、CA 及傳輸 |
| 選擇套件 | 有相容套件和版本 | 套件不可用或缺二進制 | R 版本、平台、名稱及套件庫政策 |
| 下載封裝檔 | 正確檔案完整到達 | 逾時、部分傳輸或 HTTP 錯誤 | 同一封裝檔及網絡路徑 |
| 安裝 | 寫入預期 library | 編譯器、依賴或權限錯誤 | 工具鏈、系統程式庫及目錄擁有者 |
| 載入 | 在目標工作階段可用 | 載入或執行錯誤 | 已安裝依賴、library 路徑及相容性 |
不要把「package is not available」直接當作網絡失敗。它可能出現在無法讀取索引後,也可能表示 R 版本不受支援、名稱錯誤,或來源沒有該套件。前面的診斷訊息決定下一個分支。
原指令有明確 type 時,保留參數;使用工作階段預設時,先記下該值。二進制請求失敗後成功下載原始碼,是不同實驗,後續建置可能有新要求。
讀取緊接套件庫或封裝檔請求的錯誤,區分域名解析、建立連接、TLS 信任、HTTP 回應及已開始但未完成的傳輸。瀏覽器能開 CRAN 首頁,不證明 R 取得其版本專用的索引或檔案。
採用 libcurl 下載方式時,逾時與憑證信任依方法和平台而異。明確設定下載 method 時,把它納入紀錄。不要假設每個 R 安裝都使用瀏覽器的憑證儲存或已登入工作階段。[2]
只在本機檢查相關代理環境設定,不把含憑據的值寫進共享日誌。Windows 應用的代理差異及Mac 代理設定檢查可解釋瀏覽器與 R 的分別。受管理代理及核准 CA 要求須由管理員協助。
私人套件庫要分辨權限與傳輸。身份驗證失敗或存取被拒,應經來源支援的憑據流程處理,不以公開鏡像成功替代私人套件成功。機構端點保持保密,不能停用憑證驗證來掩飾不可信連接。
回應指出檔案不存在時,核對目標套件庫的名稱及版本。反覆請求不存在的封裝檔,不是比較新網絡路徑。證據屬供應情況或存取控制後,停止傳輸重試。
有效的大檔案持續但緩慢傳輸時,較長逾時可能有幫助,卻不能提供缺失套件或修復身份驗證。R 文件說明 timeout 可控制傳輸中的多個環節,常規預設為 60 秒,也可能由設定改變。先看工作階段實際值,不直接假定預設。[2]
受控本機測試要保存舊值,即使下載失敗亦還原:
old_timeout <- getOption("timeout")
tryCatch({
options(timeout = max(300, old_timeout))
# Retry the original authorized download here.
}, finally = {
options(timeout = old_timeout)
})
註解要求在此重試原先獲准的下載,不是虛構成功結果。這只是測試期間的工作階段設定,不要為一次比較而寫入永久啟動檔案。
記錄逾時發生於收到資料前,還是部分檔案已傳輸後。等待時間變化與連接狀態不同;較長逾時讓同一檔案完成,就如實描述結果,不聲稱已找出伺服器或網絡緩慢的根因。
逾時、鏡像及出口比較分開進行。一次更改三項,不能判斷是哪項生效。沒有進展或新證據時,停止相同重試,保留第一個有用錯誤。
獲准存取的 CRAN 檔案傳輸失敗時,用 download.packages()分開取得檔案與寫入已安裝套件。它仍有網絡請求及下載檔案寫入,並非唯讀操作。採用可信暫存位置,以及原套件名稱、來源與類型。[3]
download_type <- getOption("pkgType")
if (identical(download_type, "both")) {
stop("Select the original source or binary type explicitly.")
}
download_dir <- tempfile("r-download-check-")
dir.create(download_dir)
downloaded <- download.packages(
pkgs = "digest",
destdir = download_dir,
repos = getOption("repos"),
type = download_type
)
downloaded
digest 只是例子,不是你失敗套件的替代診斷。若工作階段使用 both,須明確選回原本原始碼或二進制類型;download.packages() 對 both 只處理原始碼。記錄返回路徑,確認對應所需封裝檔;要嚴格比較已識別 URL,使用同一獲准地址、download.file() 及二進制模式,並記下版本,因套件庫內容可隨時間改變。[2]
比較本機 R 程序出口時,Windows 使用官方 AethoVPN 安裝檔,受支援 Debian/Ubuntu x64 使用 .deb;Mac 工作階段按官網配置指引連接,需要 Pro 或 Premium。在真正執行 R 的機器連接,從 App 現有列表選擇本國或合適鄰近位置,啟用全局模式。保持封裝類型及 timeout 不變,重試相同 CRAN 檔案請求,先核實傳輸結果與檔案,再嘗試安裝。
另一 CRAN 傳輸路徑不提供 Rtools、缺失系統程式庫、相容套件版本或 library 寫入權限。如需建立這項比較,可建立帳戶並開始 3 天 Pro 免費試用;電郵驗證碼註冊毋須密碼,每人僅有一次試用。
不要只用瀏覽器或 IP 查詢衡量結果。按核實原應用任務的步驟評估 R 請求。容器或遙距 RStudio 要獨立驗證核准網絡路徑,手提電腦全局模式不證明它們已更換出口。
正確封裝檔下載後,另行研究安裝。Windows 原始碼建置可能需要匹配的 Rtools,其他平台可能依賴編譯器、標頭檔與系統程式庫。二進制可省去部分建置工作,但仍須符合受支援 R 及平台組合。[1]
安裝前檢查 library 目錄及權限,適用時選獲准用戶目錄或隔離測試 library,並在載入套件的工作階段記錄 .libPaths()。不要純粹為避開寫入錯誤而以較高權限執行 R,也不要刪除全部套件庫。
R 屬 conda 工作負載時,另行檢查conda 的中繼資料、求解及封裝下載。鄰近科學運算流程中,Julia 原始碼及平台構件的核實同樣顯示只看中繼資料不足夠;兩者不代替 R 的相容性檢查。
轉交求助時,列出 R 版本、平台、套件類型、首個錯誤,並指出失敗屬索引、下載、安裝或載入。說明暫時設定改動並還原,私人套件庫細節及憑據不公開。
有用下載證據只放在自己控制的位置。不再需要時,確認暫存下載目錄僅有本次測試檔案,才刪除它。清理不應延伸至項目原始碼或已安裝 library。
不一定。索引無法讀取只是其中一種情況,名稱、R 版本、平台和套件庫供應同樣影響結果。決定換網絡前,先看更早的索引或請求錯誤。
先確認二進制為何不可用,以及原始碼建置的要求。更改類型可能引入編譯器或系統程式庫依賴,不是原二進制下載的等價重試。
未必。R 工作階段有自己的執行位置及環境設定,可能與瀏覽器不同。先核實本機、容器或遙距伺服器,再進行測試。
安裝和載入是後續操作,各有不同要求。檢查編譯輸出、依賴供應、平台相容性及 library 寫入權限,不要重複已完成的下載。
這只是讓有效傳輸有更多時間的有限測試,並非通用修復。保存及還原舊值,不要用更長等待掩蓋檔案不存在或存取被拒。
只使用官方或機構核准來源,並記錄變更。鏡像比較可能有幫助,但會同時改變伺服器與路徑,不能視為同一封裝檔的出口實驗。
不應。核實目標路徑,改用獲准可寫位置或向管理員求助。刪除已安裝套件會損失無關工作,亦不能解釋原目錄為何不可寫。
**免責聲明:**例子用於獲授權 R 環境的受控診斷,並非觀察所得基準測試。遵守套件庫條款、當地法律及機構政策。
封面歸屬:R 標誌 ©2016 The R Foundation,採用 CC BY-SA 4.0 許可。標誌未改動,只等比縮小並置於白色封面畫布。
Sources checked 2026 年 10 月 7 日。
註冊即可免費體驗全部高級功能。
*只限新用戶;每位用戶只可獲得一次試用。