# Установка

> Консоль buff одной командой на Linux, macOS и Windows; приложение — пакетом со страницы «Скачать». Проверка подписи, обновления и массовая раскатка.

Buff Code существует в двух видах, с одним и тем же входом и одними и теми же возможностями:

- **консоль `buff`** — программа в терминале; ставится одной командой;
- **приложение** — окно для Linux, macOS и Windows; ставится пакетом.

Можно поставить оба: приложение работает с тем же входом и тем же рабочим контекстом.

## Консоль

Linux и macOS (и Windows в Git Bash):

```bash
curl -fsSL https://buff.systems/install | bash
```

Скрипт определяет систему и процессор (в том числе старые процессоры без AVX2 и системы на
musl, например Alpine), скачивает нужную сборку, **сверяет контрольную сумму** и кладёт `buff`
в `~/.buff/bin`, дописав путь в профиль оболочки. Ключи и переменные:

| Ключ или переменная | Что делает |
| --- | --- |
| `--version 2.0.11-buff.16` (или `-v`) | поставить конкретную версию |
| `--no-modify-path` | не трогать профиль оболочки |
| `BUFF_INSTALL_DIR` | поставить в другой каталог |
| `BUFF_VERSION` | то же, что `--version`, но переменной окружения |

Проверка:

```bash
buff --version
```

Откройте новый терминал, если команда не найдена: путь дописан в профиль, но текущая оболочка
его ещё не прочитала.

## Приложение

Пакеты для Linux (AppImage, deb, rpm), macOS (Apple Silicon и Intel) и Windows — на странице
[«Скачать»](/downloads#buff-code). Приложение ставится рядом с консолью и использует тот же вход.

### Первый запуск на macOS и Windows

Приложение подписано нашим ключом (проверка — ниже), но пока **не заверено Apple и Microsoft**.
Поэтому при первом запуске скачанного пакета система предупредит:

- **macOS** — «Не удаётся проверить разработчика». Откройте **Системные настройки →
  Конфиденциальность и безопасность** и нажмите **«Всё равно открыть»** напротив Buff Code.
  Или снимите отметку о загрузке из интернета: `xattr -dr com.apple.quarantine "/Applications/Buff Code.app"`.
- **Windows** — окно SmartScreen «Система Windows защитила ваш компьютер». Нажмите
  **«Подробнее» → «Выполнить в любом случае»**.

Это спрашивается один раз; обновления ставятся без вопросов. Консоль, установленная командой
выше, предупреждений не вызывает.

## Проверка подписи

Рядом с каждым выпуском лежат `SHA256SUMS` и его подпись. Ключ проверки тот же, что у
[коннектора](/docs/connector/install):

```bash
V=2.0.11-buff.16
curl -fsSLO https://buff.systems/downloads/$V/SHA256SUMS
curl -fsSLO https://buff.systems/downloads/$V/SHA256SUMS.sig
curl -fsSLO https://buff.systems/downloads/cosign.pub
cosign verify-blob --key cosign.pub --signature SHA256SUMS.sig SHA256SUMS
sha256sum -c SHA256SUMS --ignore-missing
```

## Обновления

Консоль и приложение сами узнают о новом выпуске и обновляются из того же места, откуда
ставились. Вручную:

```bash
buff upgrade            # до последнего выпуска
buff upgrade 2.0.11-buff.16   # до конкретного
```

Удалить консоль вместе с её файлами — `buff uninstall`.

## Массовая раскатка

Чтобы разработчикам не вводить адрес коннектора, задайте его заранее переменной окружения:
форма входа тогда не спросит адрес.

```bash
export BUFF_CONNECTOR_URL=https://connector.company.local:8767
```

Переменную удобно задать в профиле оболочки, в образе рабочей станции или в скрипте
установки. Остальное — код входа, организация и проект — разработчик выбирает сам при первом
запуске (см. [Вход и рабочий контекст](/docs/buff-code/sign-in)).

## Что ставится на машину

- Консоль: каталог `~/.buff/bin` с одним исполняемым файлом и строка в профиле оболочки.
- Приложение: обычный пакет системы.
- Данные Buff Code — вход, ключ устройства, рабочий контекст и локальная история сессий —
  в каталоге данных пользователя. В системное хранилище сертификатов ничего не добавляется,
  прав администратора не требуется.
