У меня есть некоторый написанный код, который открывает сеанс R в R Portable и использует локальные библиотеки для запуска набора сценариев, полностью отделенных от любой существующей версии R, установленной на компьютере пользователя.
pkgs <- list.files(paste0(wd,"/Library-Win/zip-files/"))
#all packages listed in right dependency order
pkgs_all <- c("backports", "bitops", "sp", "units", "e1071", "classInt", "sf", "proto", "gsubfn", "bit", "bit64",
"blob", "digest", "memoise", "RSQLite", "chron", "maptools", "Rcpp", "DBI", "magrittr", "vctrs",
"rlang", "zeallot", "R6", "assertthat", "glue", "pkgconfig", "crayon", "pillar", "tibble", "purrr",
"tidyselect", "gtable", "colorspace", "munsell", "scales", "lazyeval", "withr", "ggplot2", "httr", "plyr",
"stringi", "stringr", "lifecycle", "tidyr", "curl", "labeling",
"geosphere", "dplyr", "sqldf", "data.table", "ggmap", "ggsn") #Primary required packages are here
#Locally install and load needed packages
install.packages(file.path(wd,"Library-Win/zip-files/",pkgs), repos = NULL,
type = "win.binary", lib = file.path(wd,"Library-Win/unpacked-folders/"))
#Load all dependencies then main packages
for (pkg in pkgs_all){library(pkg, lib.loc = file.path(wd,"Library-Win/unpacked-folders/"),character.only = T)}
По какой-то причине один из пользователей получает следующую ошибку:
Error in value[[3L]](cond) :
Package 'sp' version 1.3.2 cannot be unloaded:
Error in unloadNamespace(package) : namespace 'sp' is imported by 'maptools' so cannot be unloaded
Calls: library ... tryCatch -> tryCatchList -> tryCatchOne -> <Anonymous>
Execution halted
Версия sp в библиотеке 1.3-1, а не 1.3.2 (это та, которую он загрузил в R независимо этой среды.
Может кто-нибудь сказать мне, почему R Portable не загружает локальную / указанную версию sp и вместо этого пытается загрузить версию пользователя? R Portable даже не должен знать, где найти этого пользователя библиотека, так что я немного растерялся.