R: apt-get install r-cran-foo против install.packages ("foo") - PullRequest
31 голосов
/ 31 января 2010

При установке пакетов 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") - мне следует ожидать неприятностей?

Ответы [ 2 ]

33 голосов
/ 31 января 2010

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

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

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

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

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

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

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

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

На моей машине с Ubuntu я работаю со вторым решением. Но поскольку первый лучше , если у вас достаточно покрытия , мы создали 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 является более информированным местом для таких вопросов.

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

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

  • См. Выше.

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