> For the complete documentation index, see [llms.txt](https://docs.horvitz.ru/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.horvitz.ru/windows/winget.md).

# WinGet

WinGet - современный пакетный менеджер Windows

## Winget

## Что такое WinGet

WinGet (Windows Package Manager) - это официальный пакетный менеджер от Microsoft для Windows 10 и Windows 11. Он предоставляет унифицированный интерфейс командной строки для установки, настройки и удаления приложений в Windows. Разработан как часть инициативы Microsoft по улучшению процесса управления приложениями.

## Установка WinGet

### Способ 1: Через Microsoft Store

1. Откройте Microsoft Store
2. Найдите "App Installer"
3. Нажмите "Установить"

### Способ 2: Через PowerShell

```powershell
# Проверка наличия WinGet
winget --version

# Установка через PowerShell (если отсутствует)
Add-AppxPackage -RegisterByFamilyName -MainPackage Microsoft.DesktopAppInstaller_8wekyb3d8bbwe
```

## Подробное описание основных команд

### Поиск приложений

```powershell
# Базовый поиск
winget search <запрос>

# Поиск с фильтрацией
winget search <запрос> --id

# Поиск с exact match
winget search --exact <запрос>

# Вывод в формате JSON
winget search <запрос> --accept-source-agreements --format json
```

### Установка приложений

```powershell
# Базовая установка
winget install <id>

# Тихая установка
winget install <id> --silent

# Установка конкретной версии
winget install <id> --version <версия>

# Установка с указанием источника
winget install <id> --source winget

# Установка с пользовательскими параметрами
winget install <id> --override "/INSTALLPATH=C:\CustomPath"
```

### Управление обновлениями

```powershell
# Проверка доступных обновлений
winget upgrade

# Обновление конкретного приложения
winget upgrade <id>

# Обновление всех приложений
winget upgrade --all

# Обновление с исключениями
winget upgrade --all --exclude <id1>,<id2>

# Включение автоматических обновлений
winget upgrade --all --include-unknown
```

### Удаление приложений

```powershell
# Базовое удаление
winget uninstall <id>

# Тихое удаление
winget uninstall <id> --silent

# Удаление с сохранением пользовательских данных
winget uninstall <id> --preserve-data
```

## Управление источниками пакетов

```powershell
# Просмотр списка источников
winget source list

# Добавление нового источника
winget source add --name <имя> --arg <url>

# Удаление источника
winget source remove <имя>

# Обновление источников
winget source update

# Сброс источников к настройкам по умолчанию
winget source reset
```

## Экспорт и импорт конфигураций

```powershell
# Экспорт списка установленных приложений
winget export -o .\apps.json

# Импорт и установка приложений из файла
winget import -i .\apps.json

# Проверка файла импорта
winget import -i .\apps.json --ignore-unavailable
```

## Winget.run - веб-интерфейс для WinGet

**Особенности платформы**

* **Поисковая система**
  * Мгновенный поиск по названиям
  * Фильтрация по категориям
  * Поиск по издателю
  * Сортировка результатов
* **Информация о пакетах**
  * Подробное описание
  * Скриншоты (если доступны)
  * История версий
  * Статистика установок
  * Рейтинг пользователей
* **Дополнительные функции**
  * API для интеграции
  * RSS-фиды новых пакетов
  * Возможность предложить пакет
  * Отслеживание обновлений

**Использование Winget.run**

1. **Поиск пакетов**
   * Используйте строку поиска
   * Применяйте фильтры категорий
   * Просматривайте популярные пакеты
2. **Страница пакета**
   * Описание и скриншоты
   * Команды установки
   * Зависимости
   * Системные требования
3. **Установка через Winget.run**
   * Копирование команды установки
   * Выбор версии
   * Дополнительные параметры

## Продвинутые техники использования WinGet

### Автоматизация установки

```powershell
# Создание скрипта установки
$apps = @(
    "Microsoft.VisualStudioCode"
    "Google.Chrome"
    "Mozilla.Firefox"
    "7zip.7zip"
    "Adobe.Acrobat.Reader.64-bit"
)

foreach ($app in $apps) {
    winget install --id $app --silent
}
```

### Мониторинг и логирование

```powershell
# Логирование установки
winget install <id> --log "C:\Logs\winget.log"

# Вывод подробной информации
winget install <id> --verbose-logs
```

### Управление настройками

```powershell
# Просмотр настроек
winget settings

# Изменение настроек через JSON
{
    "visual": {
        "progressBar": "rainbow"
    },
    "installBehavior": {
        "preferences": {
            "scope": "machine",
            "locale": ["en-US", "ru-RU"]
        }
    }
}
```

### Лучшие практики

1. **Безопасность**
   * Проверяйте источники пакетов
   * Используйте хеши для верификации
   * Регулярно обновляйте базу пакетов
2. **Производительность**
   * Используйте тихую установку для автоматизации
   * Группируйте установки пакетов
   * Создавайте резервные копии конфигураций
3. **Обслуживание**
   * Регулярно проверяйте обновления
   * Очищайте кэш неиспользуемых пакетов
   * Ведите документацию установленного ПО

## Решение проблем

### Общие проблемы и решения

1. **Ошибка доступа**
   * Запустите PowerShell от администратора
   * Проверьте права доступа к целевой папке
2. **Проблемы с загрузкой**
   * Проверьте подключение к интернету
   * Очистите кэш winget
   * Обновите источники
3. **Конфликты версий**
   * Используйте флаг --force для переустановки
   * Проверьте зависимости
   * Удалите конфликтующие версии

### Диагностика

```powershell
# Версия WinGet, пути и системная информация
winget --info

# Обновление источников пакетов
winget source update

# Полный сброс источников (при проблемах с индексом)
winget source reset --force

# Открыть папку с логами
winget source list --logs

# Подробный вывод для диагностики конкретной команды
winget list --verbose-logs
```
