
Укрепите конфигурации вашего менеджера пакетов против атак на цепочку поставок.
```text
_ _
| | ___ _ __ ___ __ _ _ _ __ _ _ __ | |
/
|/ _ \ '_ \/ __|/ _ | | | |/ | '__/ _ |
| (| | __/ |) _ \ (| | || | (| | | | (| |
_,_|_| ./|/_, |_,|_,|| _,|
|| |___/
Защитите свои зависимости от атак на цепочку поставок. **Один статический бинарник, нулевые зависимости от Rust крейтов.**
От **[[arnica](https://arnica.io?utm_source=depsguard&utm_medium=referral&utm_campaign=community)]**
## Содержание
- [Обзор](#overview)
- [Установка](#install)
- [Использование](#usage)
- [Что проверяется](#what-gets-checked)
- [Расположение конфигурационных файлов](#config-file-locations)
- [Срочное исправление безопасности](#urgent-security-fix)
- [Резервное копирование и восстановление](#backups-and-restore)
- [Как это работает](#how-it-works)
- [Устранение неполадок](#troubleshooting)
- [Помощь и обратная связь](#help--feedback)
- [Руководства](#guides)
- [См. также](#see-also)
- [Лицензия](#license)
## Обзор
DepsGuard ищет **npm**, **pnpm**, **yarn**, **bun**, **uv**, **pip**, **poetry** и **aube** на вашей машине, читает их конфигурационные файлы, сравнивает их с рекомендуемыми настройками цепочки поставок и может **интерактивно применять исправления**. Он также сканирует конфигурации **Renovate** и **Dependabot** в ваших репозиториях. Он никогда не запускает установку пакетов; он только редактирует утверждённые вами конфигурационные файлы и создаёт **резервные копии** перед любыми изменениями.
### Ключевые возможности
- Интерактивный TUI: сканирование, просмотр, включение/отключение исправлений, применение
- Подкоманда `scan` для отчёта только для чтения
- Подкоманда `restore` для выбора резервной копии и отката файла
- Кроссплатформенность: Linux, macOS, Windows
- Нет встроенных сторонних Rust крейтов (только stdlib + небольшое количество платформенного FFI для терминала)
### Технический стек
| Область | Подробности |
|---------|-------------|
| Язык | Rust (MSRV **1.74**, см. `Cargo.toml`) |
| CLI / TUI | `src/main.rs`, `src/ui.rs`, `src/term.rs` |
| Логика конфигурации | `src/manager.rs`, `src/fix.rs` |
| Веб-сайт | Статический сайт в `docs/` (отдельно от бинарника) |
## Установка
### Предварительно собранные бинарники
Каждый [релиз на GitHub](https://github.com/arnica/depsguard/releases) включает архивы для:
- Linux: `x86_64` (glibc), `x86_64` (musl), `aarch64` (glibc)
- macOS: Intel и Apple Silicon
- Windows: `x86_64` ZIP, содержащий `depsguard.exe`
Скачайте архив для вашей платформы, распакуйте его и поместите бинарник в ваш `PATH`.
Проверьте целостность с помощью соответствующего файла `.sha256`, расположенного рядом с каждым артефактом на странице релиза.
### Установка по платформе
#### Linux (Debian/Ubuntu через APT)```bash
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://depsguard.com/apt/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/depsguard.gpg
echo "deb [arch=amd64,arm64 signed-by=/etc/apt/keyrings/depsguard.gpg] https://depsguard.com/apt stable main" | sudo tee /etc/apt/sources.list.d/depsguard.list >/dev/null
sudo apt update
sudo apt install depsguard
brew install depsguard
DepsGuard находится в [homebrew-core](https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/d/depsguard.rb), поэтому не требуется дополнительный tap.
> **Переход со старого `arnica/depsguard` tap?** Переключитесь на основную формулу:
>
> ```bash
> brew uninstall depsguard
> brew untap arnica/depsguard
> brew update
> brew install depsguard
> ```
#### Windows```powershell
# WinGet
winget install Arnica.DepsGuard
# Scoop
scoop bucket add depsguard https://github.com/arnica/depsguard
scoop install depsguard
Или загрузите вручную через PowerShell:```powershell $zip = "$env:TEMP\depsguard.zip" Invoke-WebRequest -Uri "https://github.com/arnica/depsguard/releases/latest/download/depsguard-x86_64-pc-windows-msvc.zip" -OutFile $zip Expand-Archive -LiteralPath $zip -DestinationPath "$env:TEMP\depsguard" -Force Copy-Item "$env:TEMP\depsguard\depsguard.exe" "$HOME\AppData\Local\Microsoft\WindowsApps\depsguard.exe" -Force depsguard.exe --help
### crates.io```bash
cargo install depsguard
Требуется цепочка инструментов Rust с cargo.
Если ваша организация распространяет DepsGuard через Homebrew, Scoop или WinGet, используйте их инструкции. Настройка или автоматизация этих каналов (PR для Homebrew core, buckets, PR для WinGet, секреты CI) относится к документации мейнтейнера; см. AGENTS.md в разделе Релиз и распространение.
| Канал | Linux | macOS | Windows | Команда установки |
|---|---|---|---|---|
| APT (пользовательский репозиторий) | да | нет | нет | sudo apt install depsguard (после настройки репозитория выше) |
| crates.io | да | да | да | cargo install depsguard |
| Homebrew (homebrew-core) | да | да | нет | brew install depsguard |
| Scoop (пользовательский bucket) | нет | нет | да | scoop bucket add depsguard https://github.com/arnica/depsguard ; scoop install depsguard |
| WinGet | нет | нет | да | winget install Arnica.DepsGuard |
Используйте тот канал, с помощью которого вы устанавливали:
| Канал | Команда обновления |
|---|---|
| Homebrew | brew update && brew upgrade depsguard |
| APT (пользовательский репозиторий) | sudo apt update && sudo apt install --only-upgrade depsguard |
| crates.io | cargo install --force depsguard (переустанавливает последний релиз) |
| Scoop | scoop update && scoop update depsguard |
| WinGet | winget upgrade Arnica.DepsGuard |
Проверить установленную версию можно в любое время с помощью depsguard --version, а последнюю версию можно найти на странице релизов.
git clone https://github.com/arnica/depsguard.git cd depsguard cargo build --release
Бинарный файл — `target/release/depsguard` (`.exe` на Windows). Rust **1.74+** требуется.
## Использование```bash
depsguard # interactive: scan, choose fixes, apply
depsguard scan # report only; no writes (exits 1 if action is needed)
depsguard --no-search # skip recursive file search, check local configs only
depsguard restore # restore from a previous backup
depsguard --help # CLI help