Установка Yarn на Debian 13, 12, 11: полное руководство

Yarn — это современный менеджер пакетов для JavaScript/Node.js, разработанный компанией Facebook (Meta). Он решает те же задачи, что и npm, но быстрее, надёжнее и с более предсказуемыми результатами благодаря параллельной загрузке, офлайн-кешированию и детерминированным lock-файлам.

В этом руководстве я покажу два способа установки Yarn на Debian:

  • Corepack (рекомендуемый) — официальный метод от команды Yarn. Позволяет указывать версию Yarn в каждом проекте отдельно через поле packageManager в package.json.
  • Из репозиториев Debian — только для Debian 13, так как Debian 11 и 12 содержат устаревший Yarn Classic 1.x.
МетодКаналВерсияОбновленияДля кого
Corepack
рекомендуемый
Официальный
Yarn
Последняя
стабильная
(4.14.1+)
Вручную через
corepack install -g yarn@stable
Все пользователи
Debian репозиторииDebian 134.1.0Автоматически
через
apt upgrade
Только Debian 13

Оглавление

Предварительные требования

Перед установкой Yarn убедитесь, что:

  • У вас есть доступ к интернету
  • Вы имеете права sudo (администратора)

⚠️ ВАЖНО: Проверьте права sudo перед установкой

Если вы не уверены, есть ли у вашего пользователя права администратора, выполните в терминале:

sudo whoami

Что делает: sudo — выполняет команду от имени суперпользователя; whoami — показывает имя текущего пользователя.

Ожидаемый вывод в терминале:

root

❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo.

О версиях Yarn

⚠️ Важно понимать разницу между ветками Yarn:

ВеткаВерсииСтатусДля кого
Yarn Classic1.xТолько критические
исправления
(с 2020 года)
Устаревшие проекты
Yarn Berry2.x, 3.x, 4.xАктивно развиваетсяНовые проекты

Yarn Classic (1.x) больше не рекомендуется для новых проектов. Debian 11 и Debian 12 в своих репозиториях содержат именно Classic. Поэтому на этих версиях Debian нужно использовать Corepack.

Способ 1: Установка через Corepack (рекомендуемый)

Corepack — это инструмент, встроенный в Node.js начиная с версии 16.10, который управляет менеджерами пакетов (Yarn, pnpm). Он скачивает точную версию менеджера, указанную в проекте, что гарантирует одинаковое поведение на всех машинах.

Debian 13 (Trixie) — Node.js из официальных репозиториев

Debian 13 содержит Node.js 20.x с Corepack в стандартных репозиториях.

Шаг 1: Обновите список пакетов

sudo apt update

Шаг 2: Установите Node.js

sudo apt install -y nodejs

Что делает: Устанавливает Node.js 20.x из репозиториев Debian.

Шаг 3: Проверьте, что Node.js и Corepack установлены

node --version
corepack --version

Ожидаемый вывод:

v20.19.2
0.24.0

Debian 12 или Debian 11 — Node.js из NodeSource

Debian 11 и 12 имеют слишком старые версии Node.js (12.x и 18.x соответственно), которые не содержат Corepack. Поэтому установим Node.js из официального репозитория NodeSource.

Шаг 1: Установите необходимые утилиты

sudo apt update
sudo apt install -y curl gpg
sudo install -m 0755 -d /etc/apt/keyrings

Что делает:

  • curl и gpg — для скачивания и проверки ключа репозитория
  • install -m 0755 -d — создаёт директорию /etc/apt/keyrings с правами 0755

Шаг 2: Скачайте и импортируйте GPG-ключ NodeSource

curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg

Что делает:

  • curl -fsSL — скачивает ключ
  • | sudo gpg --dearmor — преобразует в бинарный формат (требуется APT)
  • -o /etc/apt/keyrings/nodesource.gpg — сохраняет ключ

Шаг 3: Добавьте репозиторий NodeSource

cat <<EOF | sudo tee /etc/apt/sources.list.d/nodesource.sources
Types: deb
URIs: https://deb.nodesource.com/node_24.x
Suites: nodistro
Components: main
Signed-By: /etc/apt/keyrings/nodesource.gpg
EOF

Что делает: Создаёт файл репозитория для Node.js 24.x.

💡 Совет: Если вам нужна другая версия (например, 22.x LTS), замените node_24.x на node_22.x (оставьте nodistro как есть — это единый репозиторий для всех дистрибутивов).

Шаг 4: Обновите список пакетов и установите Node.js

sudo apt update
sudo apt install -y nodejs

Шаг 5: Проверьте установку

node --version
corepack --version

Ожидаемый вывод:

v24.x.x
0.x.x

Активация Corepack и установка Yarn

После того как Node.js установлен (на любой версии Debian), выполните следующие шаги:

Шаг 1: Включите Corepack

sudo corepack enable

Что делает: Активирует Corepack, создавая специальные «обёртки» (shims) для Yarn и pnpm в системной директории Node.js.

Шаг 2: Проверьте, что Corepack работает

corepack --version
command -v corepack

Ожидаемый вывод:

0.x.x
/usr/bin/corepack

Шаг 3: Установите последнюю стабильную версию Yarn глобально

corepack install -g yarn@stable

Что делает: Скачивает последнюю стабильную версию Yarn и делает её активной по умолчанию.

Шаг 4: Проверьте установку Yarn

yarn --version
command -v yarn

Ожидаемый вывод:

4.14.1
/usr/bin/yarn

Способ 2: Установка из репозиториев Debian (только Debian 13)

⚠️ Этот способ работает только на Debian 13 (Trixie). Debian 11 и 12 содержат Yarn Classic 1.x, который не рекомендуется для новых проектов.

Шаг 1: Обновите список пакетов

sudo apt update

Шаг 2: Установите Yarn

sudo apt install -y yarnpkg

Что делает: Устанавливает Yarn из официальных репозиториев Debian.

Примечание: Пакет называется yarnpkg, а не yarn, чтобы избежать конфликта с другим пакетом.

Пояснение: APT-версия Yarn будет использовать Node.js 20.x из Debian. В Debian 13 не нужно устанавливать Node.js отдельно — yarnpkg потянет nodejs как зависимость. Однако есть нюанс: версия Node.js в Debian 13 — 20.x (не 24.x). Если вы захотите более свежий Node.js (24.x), вам придётся ставить через NodeSource перед установкой Yarn.

Шаг 3: Проверьте версию

yarnpkg --version

Ожидаемый вывод:

4.1.0

Шаг 4 (опционально): Создайте символическую ссылку для удобства

sudo ln -s /usr/bin/yarnpkg /usr/local/bin/yarn

Что делает: Создаёт символическую ссылку, чтобы можно было использовать команду yarn вместо yarnpkg.

После этого проверьте:

yarn --version

Ожидаемый вывод: 4.1.0

Основные команды Yarn Berry

Yarn Berry (версии 4.x) по синтаксису отличается от Yarn Classic. Ниже — самые нужные команды для повседневной работы.

Примечание: Если вы установили Yarn через APT и не создали симлинк, используйте yarnpkg вместо yarn во всех командах.

Инициализация нового проекта

yarn init -2

Что делает: Создаёт новый проект с Yarn Berry. Флаг -2 явно указывает, что нужна версия 2+. В результате создаётся package.json с полем packageManager, которое фиксирует версию Yarn для проекта.

Альтернатива (интерактивный режим):

yarn init

Установка версии Yarn для проекта

yarn set version stable

Что делает: Устанавливает последнюю стабильную версию Yarn в текущий проект. Версия скачивается в .yarn/releases/, а поле packageManager в package.json обновляется.

Указание конкретной версии:

yarn set version 4.14.1

Управление зависимостями

Добавить зависимость (production):

yarn add lodash

Добавить зависимость для разработки (development):

yarn add -D eslint

Удалить зависимость:

yarn remove lodash

Установить все зависимости из package.json:

yarn install

или короткая форма:

yarn

Обновление зависимостей

Обновить конкретный пакет:

yarn up lodash

Обновить пакет в интерактивном режиме (с выбором версии):

yarn up --interactive

Обновить все пакеты:

yarn up '*'

Запуск скриптов

yarn build
yarn test
yarn start

Что делает: Запускает скрипты, определённые в package.json в секции scripts.

Запуск бинарных файлов без установки (аналог npx)

yarn dlx create-react-app my-app

Что делает: Скачивает и запускает пакет create-react-app без его глобальной установки.

Команды для монорепозиториев (workspaces)

Выполнить команду в конкретном workspace:

yarn workspace my-package build

Выполнить команду во всех workspaces:

yarn workspaces foreach run build

Настройка Plug’n’Play (PnP)

По умолчанию Yarn Berry использует Plug’n’Play — режим, при котором папка node_modules не создаётся. Вместо этого используется файл .pnp.cjs, который связывает импорты напрямую с ZIP-архивами в .yarn/cache/. Это ускоряет установку и экономит место.

Если какой-то пакет не работает с PnP (обычно это старые пакеты или нативные модули), можно переключиться на традиционный режим с node_modules:

yarn config set nodeLinker node-modules
yarn install

Проверьте текущий режим:

yarn config get nodeLinker

Вернуться обратно к PnP:

yarn config set nodeLinker pnp
yarn install

Обновление Yarn

Обновление глобальной версии Yarn (Corepack)

corepack install -g yarn@stable

Обновление Yarn в конкретном проекте

cd /путь/к/проекту
yarn set version stable
yarn install

Решение типичных проблем

8.1 Ошибка: corepack: command not found

Симптом: При попытке выполнить corepack enable выводится:

bash: corepack: command not found

Причина: Ваша версия Node.js слишком старая (Corepack требует Node.js 16.10+).

Пошаговое решение:

Шаг 1: Проверьте версию Node.js:

node --version

Шаг 2: Если версия ниже 16.10 — установите современную версию Node.js через NodeSource (см. раздел установки для Debian 11/12).

Шаг 3: После установки Node.js проверьте, что Corepack появился:

corepack --version

8.2 Ошибка: PnP compatibility issue

Симптом: При установке или запуске проекта появляются ошибки:

Error: Cannot find module 'some-package'

Причина: Пакет несовместим с режимом Plug’n’Play (обычно старые пакеты или нативные модули, которые сканируют node_modules).

Пошаговое решение:

Шаг 1: Переключитесь на традиционный режим node_modules:

yarn config set nodeLinker node-modules
yarn install

Шаг 2: Запустите проект снова. Если ошибка исчезла — проблема была в PnP.

Шаг 3: Если вы хотите оставить режим node_modules насовсем, сохраните настройку в .yarnrc.yml.

8.3 Ошибка: Permission denied при corepack enable

Симптом: При выполнении corepack enable появляется:

EACCES: permission denied

Причина: Corepack пытается записать файлы в системную директорию, у обычного пользователя нет прав.

Решение: Выполните команду с sudo:

sudo corepack enable

8.4 Ошибка: yarn: command not found (при установке из apt)

Симптом: Вы установили yarnpkg через apt, но команда yarn не работает.

Причина: Пакет в Debian называется yarnpkg, а не yarn.

Пошаговое решение:

Вариант A: Используйте yarnpkg вместо yarn:

yarnpkg --version

Вариант B: Создайте символическую ссылку:

sudo ln -s /usr/bin/yarnpkg /usr/local/bin/yarn
yarn --version

8.5 Ошибка: Yarn использует старую версию (Classic), а не Berry

Симптом: yarn --version показывает версию 1.x, хотя вы ожидали 4.x.

Причина: Установлена глобальная версия Yarn Classic (из apt), а команда yarn перехватывается до Corepack.

Пошаговое решение:

Шаг 1: Проверьте, откуда берётся команда yarn:

command -v yarn

Шаг 2: Если путь показывает /usr/bin/yarn или /usr/local/bin/yarn (и это симлинк на yarnpkg), удалите эту ссылку:

sudo rm /usr/local/bin/yarn   # или /usr/bin/yarn, если вы её создавали

Шаг 3: Убедитесь, что Corepack активирован:

sudo corepack enable
corepack install -g yarn@stable

Шаг 4: Проверьте версию:

yarn --version
command -v yarn

Чек-лист: что проверить после установки

  • [ ] Node.js установлен: node --version показывает версию 20.x (Debian 13) или 24.x/22.x (NodeSource)
  • [ ] Corepack доступен: corepack --version показывает версию (не command not found)
  • [ ] Yarn активирован: yarn --version показывает 4.x
  • [ ] Путь к Yarn правильный: command -v yarn показывает /usr/bin/yarn
  • [ ] Можно создать проект: yarn init -2 создаёт package.json с packageManager
  • [ ] Можно добавить пакет: yarn add lodash выполняется без ошибок
  • [ ] Для установки из apt (Debian 13 только): yarnpkg --version → 4.x

Удаление Yarn

Удаление Corepack (Yarn)

Шаг 1: Отключите Yarn в Corepack

sudo corepack disable yarn

Что делает: Отключает Yarn в Corepack (удаляет shim).

Шаг 2: Проверьте, что Yarn больше не доступен

yarn --version

Ожидаемый вывод: bash: yarn: command not found

Шаг 3 (опционально): Удалите Node.js и репозиторий NodeSource (если устанавливали)

sudo apt remove nodejs
sudo rm -f /etc/apt/sources.list.d/nodesource.sources
sudo rm -f /etc/apt/keyrings/nodesource.gpg
sudo apt update

Удаление Yarn, установленного из apt

sudo apt remove --purge yarnpkg
sudo apt autoremove

Если создавали симлинк:

sudo rm /usr/local/bin/yarn

Удаление пользовательских конфигураций Yarn

⚠️ Внимание: Эти команды удаляют все настройки Yarn и кэшированные пакеты.

rm -rf ~/.yarn ~/.yarnrc.yml ~/.cache/node/corepack

Часто задаваемые вопросы (FAQ)

Вопрос: В чём разница между Yarn Classic (1.x) и Yarn Berry (4.x)?

Ответ: Classic использует глобальную установку и папку node_modules. Berry (современная версия) хранит свою версию в каждом проекте, использует Plug’n’Play (PnP) и имеет поле packageManager в package.json.

Вопрос: Почему Debian 11 и 12 не подходят для установки через apt?

Ответ: В репозиториях этих версий находится Yarn Classic 1.x, который больше не развивается и не рекомендуется для новых проектов.

Вопрос: Могут ли Yarn и npm сосуществовать на одной системе?

Ответ: Да, это независимые менеджеры пакетов. Node.js поставляется с npm (всегда), а Corepack управляет Yarn отдельно. Вы можете использовать npm в одном проекте и Yarn в другом.

Вопрос: Что такое Corepack и зачем он нужен?

Ответ: Corepack — это инструмент от Node.js, который автоматически скачивает и активирует нужную версию менеджера пакетов (Yarn или pnpm) на основе поля packageManager в package.json. Это гарантирует, что все разработчики используют одну и ту же версию.

Вопрос: Какой метод установки выбрать для нового проекта?

Ответ: Corepack — официально рекомендуемый метод. Он работает на всех версиях Debian, даёт контроль над версией Yarn и является современным стандартом.

Вопрос: Нужно ли устанавливать Node.js перед Yarn?

Ответ: Да, Yarn работает поверх Node.js. При использовании Corepack Node.js нужен обязательно. Если вы устанавливаете Yarn из apt, Node.js тоже потребуется — он будет установлен как зависимость.

Заключение

Теперь Yarn установлен на вашем Debian. Вы можете:

  • Использовать Corepack для управления несколькими проектами с разными версиями Yarn
  • Фиксировать версию Yarn в каждом проекте через поле packageManager
  • Пользоваться современными возможностями Yarn Berry: PnP, workspaces, yarn dlx

Что дальше?

Связанные статьи: