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.12.0+) | Вручную через corepack prepare | Все пользователи |
| Debian репозитории | Debian 13 | 4.1.0 | Автоматически через apt upgrade | Только Debian 13 |
Предварительные требования
Перед установкой Yarn убедитесь, что:
- У вас есть доступ к интернету
- Вы имеете права
sudo(администратора)
⚠️ ВАЖНО: Проверьте права sudo перед установкой
Если вы не уверены, есть ли у вашего пользователя права администратора, выполните в терминале:
sudo whoami
Что делает: sudo — выполняет команду от имени суперпользователя; whoami — показывает имя текущего пользователя.
✅ Ожидаемый вывод в терминале:
root
❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo.
О версиях Yarn
⚠️ Важно понимать разницу между ветками Yarn:
| Ветка | Версии | Статус | Для кого |
|---|---|---|---|
| Yarn Classic | 1.x | Только критические исправления (с 2020 года) | Устаревшие проекты |
| Yarn Berry | 2.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
Что дальше?
- Изучите официальную документацию Yarn Berry
- Установите Git для контроля версий
- Настройте Visual Studio Code для разработки на JavaScript/TypeScript
- Установите Docker для контейнеризации приложений