R: apt-get install r-cran-foo и install.packages(foo)

При установке пакетов R (скажем, mcmcpack в этом примере) под Ubuntu у меня есть выбор между следующими двумя способами установки:

# Let the distribution's packaging system take care of installation/upgrades
apt-get install r-cran-mcmcpack

# Let R take care of installation/upgrades
install.packages("mcmcpack")

Вопросы:

  • Считается ли какой-либо из двух способов установки пакетов R «наилучшей практикой»?
  • Предположим, что я сначала install.packages("mcmcpack"), а потом apt-get install r-cran-mcmcpack - ждать ли мне неприятностей?
  • Предположим, что я сначала apt-get install r-cran-mcmcpack, а потом install.packages("mcmcpack") - ждать ли мне неприятностей?

person knorv    schedule 31.01.2010    source источник


Ответы (2)


Это не так просто, как кажется.

  • apt-get update хорошо, если и когда

    • пакеты существуют - но есть только около 150 или около того r-cran-* пакетов из пула из 2100+ пакетов в CRAN, так что охват довольно скудный

    • пакеты поддерживаются, не содержат ошибок и актуальны

    • вы достаточно довольны двухгодичными выпусками Ubuntu

  • install.packages() и более поздние update.packages() хороши, если и когда

    • вы знаете, что нужно для установки встроенных зависимостей (помимо r-base-dev)

    • вы не возражаете запускать update.packages() вручную, а также обновления apt-get.

На моей машине с Ubuntu на работе я выбираю второе решение. Но поскольку первый лучше, если у вас достаточно покрытия, мы создали < strong>cran2deb, который предоставляет более 2050 бинарных пакетов deb для amd64 и i386 --- но только для тестирования Debian. Это то, чем я пользуюсь дома.

Что касается последнего вопроса о том, «следует ли вам ожидать неприятностей»: нет, потому что R_LIBS_SITE установлено в /etc/R/Renvironment как

# edd Apr 2003  Allow local install in /usr/local, also add a directory for
#               Debian packaged CRAN packages, and finally the default dir 
# edd Jul 2007  Now use R_LIBS_SITE, not R_LIBS
R_LIBS_SITE=${R_LIBS_SITE-'/usr/local/lib/R/site-library:\
/usr/lib/R/site-library:/usr/lib/R/library'}

это означает, что ваши пакеты помещаются в /usr/local/lib/R/site-library, тогда как те, которыми управляет apt, переходят в /usr/lib/R/site-library и (в случае базовых пакетов) /usr/lib/R/library.

Надеюсь, это прояснит ситуацию. Список рассылки r-sig-debian является более информативным местом для подобных вопросов.

person Dirk Eddelbuettel    schedule 31.01.2010
comment
Дирк, мне не хочется делать это отдельным вопросом... Почему некоторые пакеты (например, RODBC) можно установить только с помощью метода установки apt-get? - person JD Long; 01.02.2010
comment
Где? Как? Когда? Какая платформа? Не стесняйтесь писать по электронной почте r-sig-debian, это то, для чего он у нас есть (несмотря на ТАКОЙ фанбойизм). - person Dirk Eddelbuettel; 01.02.2010
comment
Вы «просто» пропустили пакет разработки odbc и т. Д.? Что ж, именно поэтому почему мы начали их предоставлять. На самом деле RODBC был одним из первых, которые я упаковал... - person Dirk Eddelbuettel; 01.02.2010
comment
См. также cran.rstudio.com/bin/linux/ubuntu/README.html для репозиториев для установки последних пакетов R и R. - person gerlos; 18.05.2016

  • Я бы рассмотрел возможность использования apt-get передовой практики, поскольку вы будете получать автоматические обновления с помощью стандартных системных инструментов.

  • Наличие двух установленных версий может привести к запутанным ситуациям: в зависимости от вашей настройки R вы можете загрузить другую версию пакета, чем вы ожидаете - ваша личная (возможно, устаревшая) должна быть загружена первой.

  • См. выше.

person Benjamin Bannier    schedule 31.01.2010
comment
или см. ответ Дирка на всю историю - person Benjamin Bannier; 31.01.2010