Логика места установки пакетов R под Linux

Какая логика в разных местах установки различных пакетов R? Кажется, на моем компьютере с Linux установлены пакеты в нескольких разных местах. Является ли это типичным поведением и если да, что является рациональным для установки пакета в /usr/lib/R/library vs /usr/lib/R/site-library? Меня не волнует, где установлен пакет, но глупо, когда установки распространяются по разным местам по всей моей системе.

Renviron есть комментарий ниже, который, по-видимому, предполагает, что /usr/lib/R/site-library предназначен для упакованных пакетов Debian, но на самом деле не объясняет назначение двух других каталогов. Кроме того, установив /usr/lib/R/library последним в списке, разве это не делает его каталогом по умолчанию для install.packages()?

# edd Apr 2003  Allow local install in /usr/local, also add a directory for
#               Debian packaged CRAN packages, and finally the default dir 


> .libPaths()
[1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library"      
[3] "/usr/lib/R/library"     

Ответ 1

Матовый,

Вы обобщаете неправильный путь от конкретного (Debian/Ubuntu) к родовому (все дистрибутивы Linux).

Эта настройка была предложена мне двумя членами R Core Debian (и это было до рассвета Ubuntu). Это не рекомендация R-wide, поэтому вы не найдете ее в руководствах, а скорее конкретную рекомендацию R-пользователей, которая будет внедрена в системах Debian и Debian.

Основная идея

  • чтобы оставаться полностью верными разделению /usr/, /var/,.... обрабатываемых системой управления пакетами (например, apt-get, dpkg,...) на с одной стороны, и /usr/local/... и т.д. с другой стороны: эти два никогда не будут смешивать

  • так что /usr/local/lib/R/site-library получает первое место в списке, испускаемом .libPaths() и, таким образом, становится стандартным, гарантируя, что установленный пользователем пакет окажется ниже /usr/local/ в соответствии с предыдущей точкой

  • так что ниже /usr мы получим разделение между рекомендуемым R (также включенным в базовые R-источники: boot, grid, lattice,...) внутри /usr/lib/R/library, а затем все остальные пакеты управляют пакетами r-cran-* ниже /usr/lib/R/site-library. Так, например, r-cran-xml заканчивается там, или r-cran-zoo, или...

Я все еще думаю, что раскол потрясающий, и именно поэтому я поддерживаю эту настройку в пакетах Debian R.

Наличие локальных пакетов по всему сайту для всех пользователей - хорошая идея для многопользовательской операционной системы.