2010-01-31 4 views
25

При установке пакетов R (например, mcmcpack в этом примере) в Ubuntu у меня есть выбор между двумя следующими способами:R: apt-get install r-cran-foo vs. install.packages ("foo")

# 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") - Должен ли я ожидать неприятностей?

ответ

28

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

  • 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 является более информативным местом для таких вопросов.

+0

Dirk, я ненавижу задавать этот вопрос самостоятельно ... Почему некоторые пакеты (например, RODBC) могут быть установлены только с помощью метода установки apt-get? –

+0

Где? Как? Когда? Какая платформа? Не стесняйтесь писать по электронной почте r-sig-debian, это то, что у нас есть для (несмотря на то, что это был поклонник фанбоя). –

+0

Вы просто «пропустили пакет разработки odbc и т. Д.? Ну, это будет _why_ мы начали их предоставлять. RODBC на самом деле был одним из первых, что я упаковал ... –

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

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

  • См. Выше.

+0

или см. Ответ Дирка на всю историю –