Claude Code на Linux и Ubuntu: установка, автозапуск и грабли
На Linux Claude Code ставится в одну команду, а потом выясняется, что вопросов было четыре: какая версия Node, под каким пользователем, как переживать перезагрузку и почему на маленьком сервере всё падает.
Разберём по порядку. Команды даны для Ubuntu и Debian, на других системах отличается только менеджер пакетов.
Версия Node
Главная ловушка новичка на Ubuntu: пакет из системного репозитория часто оказывается сильно устаревшим. На 22.04 оттуда приезжает ветка, которой агенту уже недостаточно, и вы получаете невнятную ошибку при запуске вместо честного «версия старая».
Проверьте, что установлено:
node -v
Если версия ниже восемнадцатой, ставьте Node отдельно. Самый спокойный путь это менеджер версий, он же избавляет от следующей проблемы с правами:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
source ~/.bashrc
nvm install --lts
Права на глобальную установку
Если Node стоит системный, установка глобального пакета упрётся в отказ доступа к каталогу. Соблазн велик, но sudo npm i -g это плохой ответ: часть файлов окажется во владении root, и следующее обновление сломается уже интереснее.
Правильных ответов два: менеджер версий из предыдущего пункта, где всё лежит в домашней папке, либо свой префикс для глобальных пакетов:
npm config set prefix ~/.npm-global
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
После этого установка проходит без прав администратора:
npm i -g @anthropic-ai/claude-code
Под каким пользователем работать
Не под root. Причина не в академической чистоте: агент запускает команды, и ошибка в команде под root означает совсем другой масштаб последствий.
Заведите обычного пользователя, положите проект в его домашнюю папку, работайте от него.
Чтобы всё переживало перезагрузку
На сервере агент запускают внутри tmux, чтобы сессия жила отдельно от вашего подключения. Обрыв связи тогда перестаёт быть событием: вернулись, подключились, увидели тот же экран.
Проблема в том, что после перезагрузки сервера tmux придётся поднимать руками. Лечится обычным юнитом systemd:
[Unit]
Description=tmux для агента
After=network-online.target
[Service]
Type=forking
User=agent
ExecStart=/usr/bin/tmux new-session -d -s main
ExecStop=/usr/bin/tmux kill-session -t main
Restart=on-failure
[Install]
WantedBy=multi-user.target
Дальше systemctl enable --now по имени файла. Проверьте не словами, а делом: перезагрузите сервер и посмотрите, вернулась ли сессия. Мы этот шаг пропускали, и это ровно тот случай, когда всё работает до первого обновления ядра.
Почему падает на маленьком сервере
На VPS с гигабайтом памяти агент запустится, а первая же установка зависимостей или сборка приведёт к тому, что система выключит самый прожорливый процесс. Ошибка при этом выглядит загадочно, а в системном журнале лежит честная запись про нехватку памяти:
dmesg | grep -i "killed process"
Лечится либо переездом на два гигабайта, либо файлом подкачки:
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile && sudo swapon /swapfile
Подкачка спасает от падения, но не даёт скорости. Если сборки идут регулярно, добавьте память.
Ещё две вещи, о которые бьются
Сервис доступен не во всех странах, и агент смотрит на то, откуда пришёл запрос с сервера, а не с вашего компьютера. Поэтому сервер берут там, где сервис работает. Пытаться решить это маскировкой на своей машине не советуем: заканчивается это отключённым аккаунтом.
И вторая: агент постоянно задаёт вопросы. Подтвердить план, разрешить запись файла. Если подойти к серверу можно только с рабочего места, всё встаёт до вашего возвращения.
Мы делали свой инструмент под второй случай. Терминал сервера открывается на телефоне, процесс живёт на машине, соединение инициирует сам сервер, поэтому белый IP и проброс портов не нужны. Установку на чистый сервер можно поручить приложению: подключаете сервер, консоль открывается в том же окне, дальше агент ставит себя сам.
Попробовать
Открывается в браузере, приложение ставить необязательно. Первые 7 дней бесплатно и без карты, дальше 900 ₽ в месяц.
Открыть веб-версиюСколько стоит
Подходящий сервер обходится примерно в 500 до 1500 рублей в месяц у провайдера. Наше приложение: локальное управление бесплатно навсегда, подключение через интернет 900 рублей в месяц, первые семь дней бесплатно и без карты.
Если возиться не хочется, настроим под ключ за 8 000 рублей разово, дальше поддержка по желанию. Смотрите услуги.
Смежные статьи: как установить Claude Code, аренда сервера для ИИ.