Измените загрузку по умолчанию для «глянцевого» на конкретный «.libPaths ()» на ShinyServer - PullRequest
0 голосов
/ 14 ноября 2018

Проблема

Я развернул блестящее приложение на блестящем сервере, поддерживаемом моим университетом, и есть много .libPaths(), которые содержат разные версии пакетов.

> .libPaths()
[1] "/zeolite/rpauloo/R/x86_64-pc-linux-gnu-library/3.4"
[2] "/nfs/admin/software/xenial/system-gcc/R_libs"      
[3] "/usr/local/lib/R/site-library"                     
[4] "/usr/lib/R/site-library"                           
[5] "/usr/lib/R/library"  

Когда мое блестящее приложение загружается, shiny загружается по умолчанию из .libPaths()[2], который затем импортирует R6 V.2.2.1 , также по этому пути,

Однако мой код зависит от R6 > = V.2.2.2 , который у меня есть в .libPaths()[1].

Было бы достаточно просто иметь мойSysAdmin обновляет R6 в .libPaths()[2], но не может, потому что приложения других людей зависят от библиотек по этому пути, и мы не хотим их нарушать.


Я пробовал:

  1. отсоединение R6 и загрузка его из .libPaths()[1]

    detach("package:R6", unload=TRUE, force = TRUE, character.only = TRUE)
    library(R6, lib.loc = "/zeolite/rpauloo/R/x86_64-pc-linux-gnu-library/3.4")  
    
  2. отсоединение shiny и загрузка из .libPaths()[1]

    detach("package:shiny", unload=TRUE, force = TRUE, character.only = TRUE)
    library(shiny, lib.loc = "/zeolite/rpauloo/R/x86_64-pc-linux-gnu-library/3.4")  
    
  3. установка моего .libPaths() с начала в файле global.R, чтобы он включал только нужный мне путь.

    .libPaths(.libPaths()[1])
    
  4. добавление папки etc в "/zeolite/rpauloo/R", которая содержит следующий файл Rprofile.site ( рекомендации отсюда ):

    .First <- function(){
      .libPaths("/zeolite/rpauloo/R/x86_64-pc-linux-gnu-library/3.4")
    }
    

Ни один из этих подходов не работает.Зачем?

  1. R6 является приложенным пакетом, поэтому его нельзя выгрузить.
  2. не уверен, почему не работает выгрузка / перезагрузка Блестящего сервера
  3. Сервер Shiny загружает shiny из .libPaths()[2] для начала, до получения файла global.R, поэтому установите libPaths() не помогает
  4. файл Rprofile.site, вероятно, находится не в том каталоге, но помещение его в каталог администратора приведет к путанице с другими приложениями

Вопрос

Какя могу настроить мое блестящее приложение для загрузки shiny из определенного .libPath при запуске?

Или я неправильно понял проблему?Есть ли другой способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...