Разница между установкой пакета из источника и скомпилированным двоичным кодом

В Debian есть некоторые скомпилированные пакеты R в официальных репозиториях. Но можно также установить пакет R из источника. Мне интересно узнать, почему пользователь предпочитает один метод установки другому.

Ответ 1

Я уже дал несколько подробный ответ в ответ на этот вопрос.

Как обновление, в эти дни у вас даже есть много готовых пакетов благодаря обновленным инициативам cran2deb:

  • На Ubuntu теперь у вас есть почти все пакеты CRAN, предварительно созданные с помощью "cran2deb для Майкла Раттера " для ubuntu ppa на Launchpad.

  • Для Debian Дон Армстронг теперь предоставляет аналогичную услугу (также охватывая BioConductor и OmegaHat) на debian-r.debian.net.

Ответ 2

Иногда предпочтительнее "компилировать" источники на вашем сервере, а не просто использовать существующий исполняемый файл.

Это связано с тем, что компилятор делает exe файл специально для вашей машины, поэтому может работать быстрее и работать намного лучше, например, компилятор знает, что процессор, который у вас есть, может оптимизировать для этого.

Ответ 3

Идея предварительно скомпилированных пакетов R для Debian/Ubuntu заключается в заимствовании из Windows и MacOS. Эти ОС имеют предварительно скомпилированные пакеты, поскольку обычно они не имеют стандартных инструментов в стандартных местах для создания пакетов из исходных (c и fortran компиляторы, латекс, perl и т.д.).

Если в CRAN появилась новая версия пакета, автоматически обновляется ли предварительно скомпилированный пакет в репозиториях Debian? Я считаю, что вам лучше синхронизироваться с CRAN. Ознакомьтесь с пакетом ctv чтобы помочь вам управлять большими коллекциями пакетов R ("CRAN views"), как для установки, так и для обновления.

Вам нужны права root для установки предварительно скомпилированного пакета из резервных копий ОС, в то время как любой обычный пользователь может установить любые пакеты с помощью install.packages() в R (но я рекомендую запустить sudo R, если вы являетесь sysadmin, для установки CRAN чтобы сделать их доступными в масштабе всей системы, вместо того, чтобы раздувать ваши файлы ~/).

Одним из неудобных исходных пакетов является то, что если вы извлечете много, для компиляции потребуется дополнительное время для установки (в зависимости от вашего устройства). Вы можете получить производительность от компиляции, но это не обязательно будет заметно.