Вопрос или проблема
Я устанавливаю R в Ubuntu, но немного запутался с множеством вариантов установки пакетов.
Традиционный способ — это установить их внутри R с помощью install.package()
.
Однако Ubuntu предлагает возможность установки с помощью apt-get
. Это интересно, ведь операционная система будет поддерживать пакеты в актуальном состоянии. Однако из-за того, что в системе доступно лишь несколько пакетов, это рано или поздно создаст проблемы. Мне в конечном итоге придется устанавливать пакеты традиционным способом, устанавливая их разными способами, и, возможно, это приведет к проблемам с версиями.
Какой способ установки и поддержания R пакетов в Ubuntu является предпочтительным?
Я думаю, что единственные пакеты R, доступные через репозитории Ubuntu, – это пакеты, поддерживаемые основной командой разработчиков R. Как и с большинством пакетов, те, которые доступны через apt
или synaptic, не всегда являются самыми новыми версиями. К счастью, у вас есть возможность добавить источник программного обеспечения, поддерживаемый CRAN, создав новый файл в /etc/apt/sources.list.d/CRAN.list
, содержащий одну строку текста:
deb http://cran.r-project.org/bin/linux/ubuntu trusty/
(замените trusty/
на кодовое имя вашей дистрибуции; если вы не знаете его, введите lsb_release -c
в терминале). После этого (и команды apt update
) ваш менеджер пакетов всегда будет устанавливать (или обновлять до) версии, поддерживаемые CRAN, r-base
, r-base-core
и т.д., потому что у них будут более высокие номера версий, чем у версий из исходников debian. См. здесь, если apt
жалуется на то, что репозиторий не подписан.
Для всех других пакетов (так называемые “внесенные пакеты”) я предпочитаю устанавливать их внутри R через install.packages(c("name_of_package", "name_of_other_package"))
, по возможности, если не знаю наверняка, что версия в CRAN старая и что в новой версии есть необходимая функциональность. В таких случаях вы можете установить с GitHub с помощью devtools::install_github('AccountName/RepositoryName')
или скачать архив и установить его из окна терминала с помощью R CMD INSTALL name_of_package.tar.gz
, или внутри R с помощью install.packages("/path/to/downloaded/package.tar.gz", repos=NULL, type="source")
.
Для полноты картины вот официальное руководство от CRAN.
Я обычно устанавливаю с помощью apt-get r-cran
при любой возможности, поскольку это упрощает работу с зависимостями и обновлениями. Только если это недоступно, я использую установку из R.
Обратите внимание, что существует два репозитория для Debian пакетов R:
- Официальный R: предоставляет несколько пакетов. Чтобы включить его, вам нужно добавить ссылку на репозиторий обновив свой файл source.list. Это задокументировано на странице CRAN-ubuntu, затем выполните
apt-get update
, затем upgrade. -
PPA: Майкл Руттер предоставляет ppa, cran2deb4ubuntu, который содержит гораздо больше пакетов. Для некоторой документации см. конец этого блога. Вам просто нужно выполнить (затем после обновления/повышения):
sudo add-apt-repository ppa:marutter/c2d4u
Обратите внимание, что для R 3.5.0 имя репозитория изменилось, и библиотеки Task Views, предварительно скомпилированные Майклом Руттером, теперь доступны из cran2deb4ubuntu_3.5
ОБНОВЛЕНИЕ: cran2deb4ubuntu теперь поддерживается командой. Используйте sudo add-apt-repository ppa:c2d4u.team/c2d4u4.0+
для установки дополнительных пакетов за пределами CRAN
Вы можете использовать функцию pkg_install
в пакете pak
. Дополнительную информацию смотрите по этой ссылке.
Проект cran2deb4ubuntu (c2d4u) больше не обновляется.
И c2d4u, и проект R рекомендуют использовать вместо этого проект r2u.
Если вы используете LTS версию Ubuntu (например, 20.04, 22.04 или 24.04), бинарные файлы всех библиотек R в CRAN (включая их зависимости) поддерживаются в репозитории r2u, поддерживаемом Дирком Эддельбюттелем. Эти бинарные файлы позволяют устанавливать R пакеты в Ubuntu двумя различными способами: (1) функция install.packages(“libname”) может быть использована при запуске R, или (2) sudo apt install r-cran-libname может быть использована в терминальном режиме, где libname — это имя пакета R.
Полное описание репозитория r2u и команды linux, необходимые для того, чтобы сделать этот репозиторий доступным, доступны на следующей веб-странице:
.
Ответ или решение
Установка пакетов R в Ubuntu может вызывать путаницу из-за множества доступных методов. Важно выбирать тот способ, который обеспечивает наибольшую стабильность и актуальность версий пакетов. Рассмотрим различные методы и их преимущества.
Традиционный метод установки через R
Один из наиболее распространённых методов — это установка пакетов непосредственно в R, используя функцию install.packages()
. Этот способ предоставляет доступ к последним версиям пакетов из CRAN, что особенно важно, если вам требуется функциональность, представленная только в новых выпусках.
install.packages("название_пакета")
Установка с помощью APT
Ubuntu позволяет устанавливать некоторые пакеты R с помощью apt-get
, что может быть удобно для управления зависимостями и обновлениями на уровне ОС. Однако количество доступных пакетов в репозитории Ubuntu ограничено, и они могут не содержать последние версии. Это вызывает необходимость в дополнительной настройке и установке из других источников.
Репозиторий CRAN и PPA
Чтобы обеспечить доступ к более актуальным версиям R и его компонентов, вы можете добавить репозиторий CRAN в систему:
-
Добавьте CRAN в файл
/etc/apt/sources.list.d/CRAN.list
:deb http://cran.r-project.org/bin/linux/ubuntu your_dist_codename/
не забыв заменить
your_dist_codename
на кодовое имя вашей версии Ubuntu, найденное через командуlsb_release -c
. -
Обновите списки пакетов:
sudo apt update
Для доступа к более широкой базе пакетов стоит рассмотреть установку PPA от Michael Rutter:
sudo add-apt-repository ppa:marutter/c2d4u
sudo apt update
Важно: Проект c2d4u более не поддерживается, и рекомендуется использование нового репозитория r2u, поддерживаемого Dirk Eddelbuettel. Этот репозиторий поддерживает бинарные пакеты для LTS версий Ubuntu и облегчает управление пакетами через apt
.
Установка через r2u
Проект r2u значительно упрощает установку и обслуживание пакетов R в Ubuntu:
-
Добавьте репозиторий r2u:
sudo add-apt-repository -y ppa:edd/r2u sudo apt update
-
Установка пакетов может выполняться двумя способами:
- Через R, используя
install.packages("название_пакета")
. - Через терминал:
sudo apt install r-cran-имя_пакета
.
- Через R, используя
Подробнее об использовании r2u можно узнать на официальной странице проекта.
Заключение
Для стабильной и актуальной работы с пакетами R в Ubuntu рекомендуется комбинировать использование традиционной функции install.packages()
с инструментами системы управления пакетами Ubuntu и репозиториями, такими как r2u. Это позволит вам использовать преимущество последних обновлений и пользоваться удобством системной интеграции и управления зависимостями.