R — это язык программирования и среда для статистических вычислений, анализа данных и машинного обучения. Он широко используется data scientists, statisticians и исследователями по всему миру.
Debian уже включает R в своих репозиториях, но версия может сильно отставать от актуальной. Самый правильный способ установки — добавить официальный репозиторий CRAN (Comprehensive R Archive Network), который предоставляет свежие версии R для Debian.
В этом руководстве я покажу:
- Установку R из репозитория CRAN (рекомендуемый способ)
- Установку R из стандартных репозиториев Debian (альтернатива)
- Установку пакетов CRAN
- Настройку RStudio (опционально)
- Решение типичных проблем
Предварительные требования
Перед установкой убедитесь, что:
- У вас 64-битная система (R доступен для amd64 и arm64)
- Подключение к интернету
- Вы имеете права
sudo(администратора)
⚠️ ВАЖНО: Проверьте права sudo перед установкой
Если вы не уверены, есть ли у вашего пользователя права администратора, выполните в терминале:
sudo whoami
Что делает: sudo — выполняет команду от имени суперпользователя; whoami — показывает имя текущего пользователя.
✅ Ожидаемый вывод в терминале:
root
❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo.
Сравнение версий R: Debian vs CRAN
| Релиз Debian | Версия в Debian | Версия в CRAN | Что выбрать |
|---|---|---|---|
| Debian 13 (Trixie) | 4.5.0-3 | 4.5.3 | CRAN для актуальной версии |
| Debian 12 (Bookworm) | 4.2.2 | 4.5.3 | CRAN (разрыв значительный) |
| Debian 11 (Bullseye) | 4.0.4 | 4.5.1 | CRAN (если нужна совместимость) |
⚠️ Важно: Если вам достаточно версии из Debian, вы можете пропустить добавление репозитория CRAN и установить r-base напрямую. Но для работы с современными пакетами CRAN (особенно на Bookworm и Bullseye) я рекомендую использовать CRAN.
Установка R из репозитория CRAN (рекомендуемый способ)
Шаг 1: Обновите систему
sudo apt update && sudo apt upgrade -y
Что делает: Обновляет список пакетов и устанавливает последние обновления.
Шаг 2: Установите необходимые утилиты
sudo apt install -y ca-certificates curl gpg
Что делает:
ca-certificates— сертификаты для HTTPScurl— для скачивания ключаgpg— для работы с GPG-ключами
Шаг 3: Добавьте GPG-ключ репозитория CRAN
CRAN подписывает свои пакеты ключом с отпечатком 95C0FAF38DB3CCAD0C080A7BDC78B2DDEABC47B7.
curl -fsSL 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x95C0FAF38DB3CCAD0C080A7BDC78B2DDEABC47B7' | sudo gpg --dearmor --yes -o /usr/share/keyrings/cran.gpg
Что делает:
curl -fsSL— скачивает ключ с сервера ключей Ubuntu| sudo gpg --dearmor— преобразует ключ в бинарный формат (требуется APT)--yes— перезаписывает ключ, если он уже существует-o /usr/share/keyrings/cran.gpg— сохраняет ключ в системную директорию
Шаг 4: Определите кодовое имя вашего Debian
. /etc/os-release
printf '%s\n' "$VERSION_CODENAME"
✅ Ожидаемый вывод: trixie (Debian 13), bookworm (Debian 12) или bullseye (Debian 11).
Шаг 5: Добавьте репозиторий CRAN
. /etc/os-release
printf '%s\n' \
"Types: deb" \
"URIs: https://cloud.r-project.org/bin/linux/debian" \
"Suites: ${VERSION_CODENAME}-cran40/" \
"Signed-By: /usr/share/keyrings/cran.gpg" | sudo tee /etc/apt/sources.list.d/cran.sources > /dev/null
Что делает:
- Загружает переменные с информацией о системе
- Формирует файл репозитория в современном формате DEB822
- Записывает его в
/etc/apt/sources.list.d/cran.sources
Зачем: Мы используем суффикс -cran40/, который указывает на ветку для R 4.x.
Шаг 6: Обновите список пакетов
sudo apt update
Ожидаемый вывод (должны быть строки с cloud.r-project.org):
Get:4 https://cloud.r-project.org/bin/linux/debian trixie-cran40/ InRelease [4,369 B]
Get:5 https://cloud.r-project.org/bin/linux/debian trixie-cran40/ Packages [26.9 kB]
Шаг 7: Проверьте, что репозиторий CRAN активен
apt-cache policy r-base
✅ Ожидаемый вывод (Debian 13):
r-base:
Installed: (none)
Candidate: 4.5.3-1~trixiecran.0
Version table:
4.5.3-1~trixiecran.0 500
500 https://cloud.r-project.org/bin/linux/debian trixie-cran40/ Packages
4.5.0-3 500
500 http://deb.debian.org/debian trixie/main amd64 Packages
Для Debian 12 будет bookworm-cran40/, для Debian 11 — bullseye-cran40/.
Шаг 8: Установите R и пакеты разработчика
sudo apt install -y r-base r-base-dev
Что делает:
r-base— основная среда R и рекомендованные статистические пакетыr-base-dev— заголовочные файлы и утилиты для сборки пакетов из исходников (нужны для многих пакетов CRAN)
Шаг 9: Проверьте установленную версию
R --version
✅ Ожидаемый вывод (Debian 13/12):
R version 4.5.3 (2026-03-11) -- "Reassured Reassurer"
Copyright (C) 2026 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu
Для Debian 11 будет R version 4.5.1 с другим кодовым именем.
Альтернатива: Установка R из стандартных репозиториев Debian
Если вы не хотите добавлять сторонний репозиторий и вам достаточно версии R из Debian:
sudo apt update
sudo apt install -y r-base r-base-dev
Что делает: Устанавливает версию R из официальных репозиториев Debian (более старую, но поддерживаемую Debian).
Установка пакетов CRAN
Пакеты CRAN лучше всего устанавливать от обычного пользователя, а не от root. R создаст личную библиотеку в вашей домашней директории.
Создайте пользовательскую библиотеку
mkdir -p "$(Rscript -e 'cat(Sys.getenv("R_LIBS_USER"))')"
Что делает: Создаёт директорию для пользовательских пакетов R (обычно ~/R/x86_64-pc-linux-gnu-library/4.5).
Зачем: Без этого R будет предлагать создать её при первой установке пакета, но лучше создать заранее.
Установите тестовый пакет (jsonlite)
Rscript -e 'install.packages("jsonlite", repos="https://cloud.r-project.org")'
Что делает: Устанавливает пакет jsonlite из CRAN. Этот пакет маленький и проверяет, что компиляция работает.
✅ Ожидаемый вывод: Строка * DONE (jsonlite) в конце.
Проверьте, что пакет загружается
Rscript -e 'library(jsonlite); packageVersion("jsonlite")'
Что делает: Загружает пакет jsonlite и выводит его версию.
✅ Ожидаемый вывод: [1] '2.x.x'
Установите системные библиотеки для популярных пакетов
Многие пакеты R (например, tidyverse, curl, openssl, xml2, ragg) требуют системные библиотеки разработчика. Установите их заранее:
sudo apt install -y libssl-dev libxml2-dev libcurl4-openssl-dev libfontconfig1-dev libharfbuzz-dev libfribidi-dev
Что делает: Устанавливает заголовочные файлы для SSL, XML, cURL, шрифтов и других библиотек.
Зачем: Это предотвратит ошибки компиляции при установке пакетов R.
Установите большой пакет (tidyverse)
Rscript -e 'install.packages("tidyverse", repos="https://cloud.r-project.org")'
Что делает: Устанавливает коллекцию пакетов для науки о данных (dplyr, ggplot2, tidyr и др.).
Обновление всех установленных пакетов
Rscript -e 'update.packages(ask = FALSE, checkBuilt = TRUE, repos="https://cloud.r-project.org")'
Что делает: Обновляет все пакеты в вашей библиотеке. checkBuilt = TRUE пересобирает пакеты, собранные под старой версией R.
Удаление пакета
Rscript -e 'remove.packages("jsonlite", lib=Sys.getenv("R_LIBS_USER"))'
Обновление R
Так как R установлен из репозитория CRAN, обновления приходят через APT.
sudo apt update
sudo apt install --only-upgrade r-base r-base-core r-base-dev r-recommended
Что делает: --only-upgrade — обновляет пакеты, только если они уже установлены (не устанавливает заново).
Установка RStudio (опционально)
RStudio — это популярная интегрированная среда разработки (IDE) для R. Она распространяется отдельно от самого R.
Шаг 1: Скачайте RStudio Desktop
Перейдите на официальную страницу загрузки RStudio Desktop и скачайте .deb-пакет для Debian/Ubuntu.
Шаг 2: Установите RStudio
sudo apt install ./rstudio-*.deb
Что делает: Устанавливает скачанный пакет RStudio.
Шаг 3: Запустите RStudio
Найдите RStudio в меню приложений или выполните в терминале:
rstudio
Установка инструментов для R Markdown
R Markdown позволяет создавать динамические отчёты с кодом на R. Для работы нужны Pandoc и LaTeX.
sudo apt install -y pandoc texlive-latex-base texlive-latex-extra texlive-fonts-recommended
Что делает: Устанавливает Pandoc (конвертер документов) и базовые LaTeX-пакеты для PDF.
Установите R-пакет rmarkdown:
Rscript -e 'install.packages("rmarkdown", repos="https://cloud.r-project.org")'
Решение типичных проблем
8.1 Ошибка GPG: NO_PUBKEY при apt update
Симптом: При sudo apt update появляется ошибка:
W: GPG error: https://cloud.r-project.org/bin/linux/debian bookworm-cran40/ InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY DC78B2DDEABC47B7
Причина: Ключ репозитория CRAN устарел или был удалён.
Пошаговое решение:
Шаг 1: Удалите старый ключ:
sudo rm -f /usr/share/keyrings/cran.gpg
Шаг 2: Импортируйте ключ заново:
curl -fsSL 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x95C0FAF38DB3CCAD0C080A7BDC78B2DDEABC47B7' | sudo gpg --dearmor --yes -o /usr/share/keyrings/cran.gpg
Шаг 3: Обновите список пакетов:
sudo apt update
8.2 Ошибка: CRAN репозиторий не имеет Release-файла
Симптом: sudo apt update выдаёт ошибку о том, что репозиторий не имеет Release-файла.
Причина: В файле репозитория указано неверное кодовое имя Debian.
Пошаговое решение:
Шаг 1: Проверьте ваше кодовое имя:
. /etc/os-release && printf '%s\n' "$VERSION_CODENAME"
Шаг 2: Проверьте содержимое файла репозитория:
cat /etc/apt/sources.list.d/cran.sources
Что ищем: Строка Suites: должна содержать:
trixie-cran40/для Debian 13bookworm-cran40/для Debian 12bullseye-cran40/для Debian 11
Шаг 3: Если кодовое имя неверное — удалите файл и добавьте репозиторий заново (вернитесь к Шагам 4-6 установки).
8.3 Ошибка: Нет прав на запись в системную библиотеку
Симптом: При установке пакета R появляется сообщение:
Warning in install.packages("jsonlite") :
'lib = "/usr/local/lib/R/site-library"' is not writable
Would you like to use a personal library instead? (yes/No/cancel)
Причина: R пытается установить пакет в системную директорию, куда у обычного пользователя нет прав.
Пошаговое решение:
Шаг 1: Создайте личную библиотеку вручную:
mkdir -p "$(Rscript -e 'cat(Sys.getenv("R_LIBS_USER"))')"
Шаг 2: Повторите установку пакета. Теперь R автоматически установит его в личную библиотеку.
Шаг 3: Чтобы всегда использовать личную библиотеку без запросов, добавьте в файл ~/.Renviron строку:
echo "R_LIBS_USER='~/R/library'" >> ~/.Renviron
8.4 Ошибка: Пакет R не компилируется (missing library)
Симптом: При установке пакета из CRAN появляются ошибки компиляции вида fatal error: 'curl/curl.h' file not found.
Причина: Отсутствует системная библиотека разработчика, необходимая для пакета R.
Пошаговое решение:
Шаг 1: Установите набор наиболее распространённых библиотек:
sudo apt install -y libssl-dev libxml2-dev libcurl4-openssl-dev libfontconfig1-dev libharfbuzz-dev libfribidi-dev
Шаг 2: Повторите установку пакета R:
Rscript -e 'install.packages("имя_пакета", repos="https://cloud.r-project.org")'
Шаг 3: Если ошибка указывает на конкретную библиотеку (например, libgit2), найдите её в репозиториях Debian:
apt search --names-only 'libgit2'
Затем установите соответствующий -dev-пакет:
sudo apt install -y libgit2-dev
8.5 Ошибка: R не видит установленные пакеты
Симптом: Пакет установлен, но library(пакет) выдаёт ошибку «there is no package called …».
Причина: Пакет установлен в другую библиотеку, или R не видит путь к ней.
Пошаговое решение:
Шаг 1: Проверьте, где установлен пакет:
find ~ -name "имя_пакета" -type d 2>/dev/null
Шаг 2: Посмотрите, какие библиотеки R использует по умолчанию:
Rscript -e '.libPaths()'
Шаг 3: Если путь к вашей личной библиотеке не отображается, добавьте его в ~/.Renviron:
echo "R_LIBS_USER='~/R/x86_64-pc-linux-gnu-library/4.5'" >> ~/.Renviron
(версия 4.5 может отличаться — подставьте вашу)
Путь ~/R/library может отличаться от того, что создаётся автоматически
(обычно ~/R/x86_64-pc-linux-gnu-library/4.5).
Но это не ошибка — R всё равно распознает этот путь как личную библиотеку.
Если хотите сделать точнее, можно заменить на:
echo "R_LIBS_USER='$(Rscript -e 'cat(Sys.getenv("R_LIBS_USER"))')'" >> ~/.Renviron
Шаг 4: Перезапустите R и проверьте:
Rscript -e '.libPaths()'
Чек-лист: что проверить после установки
- [ ] R установлен:
R --versionпоказывает версию (желательно 4.5.x) - [ ] CRAN репозиторий активен:
apt-cache policy r-baseпоказывает CRAN-версию кандидата - [ ] Пакет r-base-dev установлен:
dpkg -l r-base-dev | grep '^ii' - [ ] Пользовательская библиотека создана:
ls ~/R/существует - [ ] Тестовый пакет работает:
Rscript -e 'library(jsonlite); print("OK")'→[1] "OK" - [ ] Системные библиотеки установлены:
dpkg -l | grep -E "libssl-dev|libxml2-dev|libcurl4-openssl-dev"
Удаление R
Шаг 1: Удалите пакеты R
sudo apt remove --purge r-base r-base-core r-base-dev r-recommended
Шаг 2: Удалите репозиторий CRAN (опционально)
sudo rm -f /etc/apt/sources.list.d/cran.sources
sudo rm -f /usr/share/keyrings/cran.gpg
sudo apt update
Шаг 3: Удалите пользовательские данные R
⚠️ Внимание: Эта команда безвозвратно удалит все ваши пакеты R, историю и настройки. Выполняйте только если вы больше не планируете использовать R.
rm -rf ~/.R ~/.Rhistory ~/R
Шаг 4: Проверьте удаление
dpkg -l r-base r-base-core r-base-dev r-recommended | grep '^ii'
✅ Ожидаемый вывод: (ни одной строки)
Часто задаваемые вопросы (FAQ)
Вопрос: Зачем мне репозиторий CRAN, если R уже есть в Debian?
Ответ: Версия R в Debian сильно отстаёт (особенно на Debian 11 и 12). Многие современные пакеты CRAN требуют более новую версию R.
Вопрос: Можно ли установить R без r-base-dev?
Ответ: Можно, но многие пакеты CRAN не соберутся из исходников. r-base-dev содержит компиляторы и заголовки, необходимые для сборки пакетов.
Вопрос: RStudio бесплатен?
Ответ: RStudio Desktop имеет бесплатную версию с открытым исходным кодом. RStudio Server Pro — платный.
Вопрос: Как часто обновляется R в репозитории CRAN?
Ответ: CRAN публикует обновления довольно часто — минорные версии выходят несколько раз в год.
Вопрос: Могу ли я использовать R без графического интерфейса?
Ответ: Да, R прекрасно работает в командной строке. Команда R запускает интерактивную оболочку, Rscript выполняет скрипты.
Заключение
Теперь R установлен на вашем Debian из официального репозитория CRAN. Вы можете:
- Запускать R из терминала (
R) или использовать RStudio - Устанавливать любые пакеты из CRAN
- Создавать отчёты в R Markdown
Что дальше?
- Изучите официальную документацию R
- Установите RStudio Desktop для удобной работы
- Настройте SQLite для работы с локальными базами данных
- Установите Git для контроля версий ваших R-скриптов