R — это язык программирования и среда для статистических вычислений, анализа данных и машинного обучения. Он широко используется data scientists, statisticians и исследователями по всему миру.
Debian уже включает R в своих репозиториях, но версия может сильно отставать от актуальной. Самый правильный способ установки — добавить официальный репозиторий CRAN (Comprehensive R Archive Network), который предоставляет свежие версии R для Debian.
В этом руководстве я покажу:
- Установку R из репозитория CRAN (рекомендуемый способ)
- Установку R из стандартных репозиториев Debian (альтернатива)
- Установку пакетов CRAN
- Настройку RStudio (опционально)
- Решение типичных проблем
1. 🔧 Предварительные требования
Перед установкой убедитесь, что:
- У вас 64-битная система (R доступен для amd64 и arm64)
- Подключение к интернету
- Вы имеете права
sudo(администратора)
⚠️ ВАЖНО: Проверьте права sudo перед установкой
Если вы не уверены, есть ли у вашего пользователя права администратора, выполните в терминале:
sudo whoami
Что делает: sudo — выполняет команду от имени суперпользователя; whoami — показывает имя текущего пользователя.
✅ Если выводит root — всё в порядке, можете продолжать.
❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo.
1.1 Обновление системы
Перед установкой всегда обновляйте список пакетов:
sudo apt update && sudo apt upgrade -y
Что делает: Обновляет список пакетов и устанавливает последние обновления.
2. 📊 Сравнение версий R: Debian vs CRAN
| Релиз Debian | Версия в Debian | Версия в CRAN | Что выбрать |
|---|---|---|---|
| Debian 13 (Trixie) | 4.5.0-3 | 4.6.0 | CRAN для актуальной версии |
| Debian 12 (Bookworm) | 4.2.2 | 4.6.0 | CRAN (разрыв значительный) |
| Debian 11 (Bullseye) | 4.0.4 | 4.5.1 | CRAN (если нужна совместимость) |
⚠️ Важно: Если вам достаточно версии из Debian, вы можете пропустить добавление репозитория CRAN и установить r-base напрямую. Но для работы с современными пакетами CRAN (особенно на Bookworm и Bullseye) я рекомендую использовать CRAN.
3. 📦 Установка R из репозитория CRAN (рекомендуемый)
3.1 Установка вспомогательных пакетов
sudo apt install -y ca-certificates curl gpg
Что делает:
ca-certificates— сертификаты для HTTPScurl— для скачивания ключаgpg— для работы с GPG-ключами
3.2 Добавление 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— сохраняет ключ в системную директорию
3.3 Определение кодового имени и архитектуры
. /etc/os-release
arch="$(dpkg --print-architecture)"
printf 'Release: %s\nArchitecture: %s\n' "$VERSION_CODENAME" "$arch"
✅ Ожидаемый вывод: trixie (Debian 13), bookworm (Debian 12) или bullseye (Debian 11).
3.4 Добавление репозитория CRAN с правильным суффиксом
В зависимости от версии Debian выбирается правильный суффикс репозитория:
- Debian 13 и 12 используют
-cran46/(R 4.6) - Debian 11 использует
-cran40/(R 4.5.1)
. /etc/os-release
case "$VERSION_CODENAME" in
trixie|bookworm) cran_suite="${VERSION_CODENAME}-cran46/" ;;
bullseye) cran_suite="${VERSION_CODENAME}-cran40/" ;;
*) echo "Unsupported release: $VERSION_CODENAME"; exit 1 ;;
esac
printf '%s\n' \
"Types: deb" \
"URIs: https://cloud.r-project.org/bin/linux/debian/" \
"Suites: ${cran_suite}" \
"Components: " \
"Architectures: $(dpkg --print-architecture)" \
"Signed-By: /usr/share/keyrings/cran.gpg" | sudo tee /etc/apt/sources.list.d/cran.sources > /dev/null
Что делает: Создаёт файл репозитория в современном формате DEB822 с учётом версии Debian.
3.5 Обновление списка пакетов
sudo apt update
✅ Ожидаемый вывод (должны быть строки с cloud.r-project.org):
Get:4 https://cloud.r-project.org/bin/linux/debian trixie-cran46/ InRelease [4,369 B]
Get:5 https://cloud.r.project.org/bin/linux/debian trixie-cran46/ Packages [26.9 kB]
3.6 Проверка, что репозиторий CRAN активен
apt-cache policy r-base
✅ Ожидаемый вывод (Debian 13):
r-base:
Installed: (none)
Candidate: 4.6.0-2~trixiecran.0
Version table:
4.6.0-2~trixiecran.0 500
500 https://cloud.r-project.org/bin/linux/debian trixie-cran46/ Packages
4.5.0-3 500
500 http://deb.debian.org/debian trixie/main amd64 Packages
3.7 Установка R и пакетов разработчика
sudo apt install -y r-base r-base-dev
Что делает:
r-base— основная среда R и рекомендованные статистические пакетыr-base-dev— заголовочные файлы и утилиты для сборки пакетов из исходников (нужны для многих пакетов CRAN)
3.8 Проверка установленной версии
R --version
✅ Ожидаемый вывод (Debian 13/12):
R version 4.6.0 (2026-04-24) -- "Because it was There"
Copyright (C) 2026 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu
4. 📦 Альтернатива: Установка R из стандартных репозиториев Debian
Если вы не хотите добавлять сторонний репозиторий и вам достаточно версии R из Debian:
sudo apt update
sudo apt install -y r-base r-base-dev
Что делает: Устанавливает версию R из официальных репозиториев Debian (более старую, но поддерживаемую Debian).
5. 📦 Установка пакетов CRAN
Пакеты CRAN лучше всего устанавливать от обычного пользователя, а не от root. R создаст личную библиотеку в вашей домашней директории.
5.1 Создание пользовательской библиотеки
mkdir -p "$(Rscript -e 'cat(Sys.getenv("R_LIBS_USER"))')"
Что делает: Создаёт директорию для пользовательских пакетов R (обычно ~/R/x86_64-pc-linux-gnu-library/4.6).
Зачем: Без этого R будет предлагать создать её при первой установке пакета, но лучше создать заранее.
5.2 Установка системных библиотек для популярных пакетов
Многие пакеты 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.
5.3 Установка тестового пакета (jsonlite)
Rscript -e 'install.packages("jsonlite", repos="https://cloud.r-project.org")'
Что делает: Устанавливает пакет jsonlite из CRAN. Этот пакет маленький и проверяет, что компиляция работает.
✅ Ожидаемый вывод: Строка * DONE (jsonlite) в конце.
5.4 Проверка, что пакет загружается
Rscript -e 'library(jsonlite); packageVersion("jsonlite")'
✅ Ожидаемый вывод: [1] '2.x.x'
5.5 Установка большого пакета (tidyverse)
Rscript -e 'install.packages("tidyverse", repos="https://cloud.r-project.org")'
Что делает: Устанавливает коллекцию пакетов для науки о данных (dplyr, ggplot2, tidyr и др.).
5.6 Обновление всех установленных пакетов
Rscript -e 'update.packages(ask = FALSE, checkBuilt = TRUE, repos="https://cloud.r-project.org")'
Что делает: Обновляет все пакеты в вашей библиотеке. checkBuilt = TRUE пересобирает пакеты, собранные под старой версией R.
5.7 Удаление пакета
Rscript -e 'remove.packages("jsonlite", lib=Sys.getenv("R_LIBS_USER"))'
6. 🖥️ Установка RStudio (опционально)
RStudio — это популярная интегрированная среда разработки (IDE) для R. Она распространяется отдельно от самого R.
6.1 Скачивание RStudio Desktop
Перейдите на официальную страницу загрузки RStudio Desktop и скачайте .deb-пакет для Debian/Ubuntu.
6.2 Установка RStudio
sudo apt install ./rstudio-*.deb
Что делает: Устанавливает скачанный пакет RStudio.
6.3 Запуск RStudio
Найдите RStudio в меню приложений или выполните в терминале:
rstudio
7. 📝 Установка инструментов для 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. 🔄 Обновление R
Так как R установлен из репозитория CRAN, обновления приходят через APT.
sudo apt update
sudo apt install --only-upgrade r-base r-base-core r-base-dev r-recommended
Что делает: --only-upgrade — обновляет пакеты, только если они уже установлены (не устанавливает заново).
9. ⚠️ Решение типичных проблем
9.1 Ошибка GPG: NO_PUBKEY при apt update
Симптом: При sudo apt update появляется ошибка:
W: GPG error: https://cloud.r-project.org/bin/linux/debian bookworm-cran46/ 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
9.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-cran46/для Debian 13bookworm-cran46/для Debian 12bullseye-cran40/для Debian 11
Шаг 3: Если кодовое имя неверное — удалите файл и добавьте репозиторий заново (вернитесь к разделу 3.4).
9.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='$(Rscript -e 'cat(Sys.getenv("R_LIBS_USER"))')'" >> ~/.Renviron
9.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
9.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='$(Rscript -e 'cat(Sys.getenv("R_LIBS_USER"))')'" >> ~/.Renviron
Шаг 4: Перезапустите R и проверьте:
Rscript -e '.libPaths()'
10. 🗑️ Удаление R
10.1 Удаление пакетов R
sudo apt remove --purge r-base r-base-core r-base-dev r-recommended
Что делает: Удаляет метапакет, ядро, пакет разработчика и рекомендованный набор пакетов.
10.2 Удаление репозитория CRAN (опционально)
sudo rm -f /etc/apt/sources.list.d/cran.sources
sudo rm -f /usr/share/keyrings/cran.gpg
sudo apt update
10.3 Удаление пользовательских данных R
⚠️ Внимание: Эта команда безвозвратно удалит все ваши пакеты R, историю и настройки. Выполняйте только если вы больше не планируете использовать R.
rm -rf ~/.R ~/.Rhistory ~/R
10.4 Проверка удаления
dpkg -l r-base r-base-core r-base-dev r-recommended | grep '^ii' || echo "R packages removed"
✅ Ожидаемый вывод: R packages removed
11. 📝 Чек-лист: всё готово к работе
- [ ] R установлен:
R --versionпоказывает версию (желательно 4.6.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"
12. ❓ Часто задаваемые вопросы (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 выполняет скрипты.
13. 🏁 Заключение
Теперь R установлен на вашем Debian из официального репозитория CRAN. Вы можете:
- Запускать R из терминала (
R) или использовать RStudio - Устанавливать любые пакеты из CRAN
- Создавать отчёты в R Markdown
Что дальше?
- Изучите официальную документацию R
- Установите RStudio Desktop для удобной работы
- Настройте SQLite для работы с локальными базами данных
- Установите Git для контроля версий ваших R-скриптов