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 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: Проверьте, что 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
Что дальше?
- Изучите официальную документацию Yarn Berry
- Установите Git для контроля версий
- Настройте Visual Studio Code для разработки на JavaScript/TypeScript
- Установите Docker для контейнеризации приложений
Связанные статьи: