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

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

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

  1. Corepack (рекомендуемый) — официальный метод от команды Yarn. Позволяет указывать версию Yarn в каждом проекте отдельно через поле packageManager в package.json.
  2. Из репозиториев Debian — только для Debian 13, так как Debian 11 и 12 содержат устаревший Yarn Classic 1.x.
МетодКаналВерсияОбновленияДля кого
Corepack
рекомендуемый
Официальный YarnПоследняя
стабильная
(4.12.0+)
Вручную через
corepack prepare
Все пользователи
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: Установите последнюю стабильную версию Yarn глобально

corepack prepare yarn@stable --activate

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

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

yarn --version

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

4.12.0

Способ 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). Если вы, установите Yarn через apt, то получите Node.js 20.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.5.0

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

Добавить зависимость (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

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

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 пытается записать файлы в системную директорию, у обычного пользователя нет прав.

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

Шаг 1: Выполните команду с sudo:

sudo corepack enable

Шаг 2: После этого Yarn будет доступен для всех пользователей системы.

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:

which 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 prepare yarn@stable --activate

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

yarn --version

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

  • [ ] 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 init -2 создаёт package.json с packageManager
  • [ ] Можно добавить пакет: yarn add lodash выполняется без ошибок
  • [ ] Для установки из apt (Debian 13 только): yarnpkg --version → 4.x

Удаление Yarn

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

sudo corepack disable yarn

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

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

yarn --version

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

Удаление NodeSource репозитория (если добавляли)

sudo rm /etc/apt/sources.list.d/nodesource.sources
sudo rm /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

Часто задаваемые вопросы (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

Что дальше?