﻿# Автоматическое развёртывание PVS\-Studio


> В данной статье рассматривается работа в среде Windows\\\. Работа в среде Linux описана в статье "\[Как запустить PVS\\\-Studio в Linux\]\(https://pvs\-studio\.ru/ru/docs/manual/0036/\)"\\\.



## Автоматическое развертывание

Для установки PVS\-Studio требуются права администратора\.

Автоматическая установка выполняется указанием дополнительных параметров командной строки:

```cpp
PVS-Studio_setup.exe /verysilent /suppressmsgboxes 
/norestart /nocloseapplications
```

PVS\-Studio может потребоваться перезагрузка компьютера в случае, например, если обновляемые файлы были заблокированы\. Для установки без перезагрузки необходимо использовать флаг 'NORESTART'\. **Обратите внимание**, что без этого флага при запуске установщика PVS\-Studio в silent режиме перезагрузка может произойти без предварительных уведомлений или диалогов\.

По умолчанию будут установлены все доступные компоненты PVS\-Studio\. В случае, если это не желательно, возможно указание компонентов для установки с помощью флага 'COMPONENTS' \(далее перечислены все доступные компоненты\):

```cpp
PVS-Studio_setup.exe /verysilent /suppressmsgboxes 
/nocloseapplications /norestart /components=Core, 
Standalone,MSVS,MSVS\2010,MSVS\2012,MSVS\2013,MSVS\2015,MSVS\2017,
MSVS\2019,MSVS\2022,MSVS\2026,IDEA,JavaCore,Rider,CLion,VSCode,
DOTNET,Golang,JavaScript,WebStorm,PhpStorm,GoLand
```

Вы можете использовать нотацию _/components\="Core,\*MSVS"_ для установки плагинов для всех Visual Studio одновременно\.

Краткое описание компонентов:

* компонент 'Core' является обязательным и содержит набор утилит необходимый для анализа С, С\+\+ и С\# проектов, без него не смогут работать IDE модули расширения\.
* компоненты с префиксом 'MSVS' в названии соответствуют плагинам среды Microsoft Visual Studio;
* компонент Standalone задаёт установку [системы отслеживания вызовов компилятора](https://pvs-studio.ru/ru/docs/manual/0031/), позволяющую проверить любой C, C\+\+ проект, если этот проект использует один из поддерживаемых компиляторов;
* компонент 'IDEA' соответствует плагину PVS\-Studio для среды разработки IntelliJ IDEA;
* компонент 'JavaCore' соответствует ядру анализатора для Java;
* компонент 'Rider' соответствует плагину PVS\-Studio для среды разработки Rider;
* компонент 'CLion' соответствует плагину PVS\-Studio для среды разработки CLion;
* Компонент 'VSCode' соответствует плагину PVS\-Studio для редактора кода Visual Studio Code; 
* Компонент 'DOTNET' устанавливает пакет \.NET SDK последней поддерживаемой версии PVS\-Studio, если он не найден на компьютере\. Он необходим для анализа \.NET проектов и \.NET Framework проектов в SDK стиле\. Этот компонент доступен начиная с PVS\-Studio 7\.34\.

Начиная с PVS\-Studio 8\.0 доступны следующие компоненты:

* компонент 'WebStorm' соответствует плагину PVS\-Studio для среды разработки WebStorm;
* компонент 'PhpStorm' соответствует плагину PVS\-Studio для среды разработки PhpStorm;
* компонент 'GoLand' соответствует плагину PVS\-Studio для среды разработки GoLand;
* Компонент 'JavaScript' соответствует анализатору PVS\-Studio для JavaScript и TypeScript проектов; 
* Компонент 'Golang' соответствует анализатору PVS\-Studio для Go проектов;
* Компонент 'NodeJs' устанавливает Node\.js последней стабильной версии, если он не найден на компьютере\. Он необходим для анализа JavaScript и TypeScript проектов\.

Во время установки PVS\-Studio все экземпляры Visual Studio / IntelliJ IDEA / Rider должны быть выключены, однако для предотвращения потерь несохраненных документов установочный пакет не выгружает Visual Studio / IntelliJ IDEA / Rider самостоятельно\.

Инсталлятор завершит работу с кодом завершения 100 в случае, если не сможет установить модуль расширения \(\*\.vsix\) для какой\-либо из выбранных версий Visual Studio\.

Получить дополнительную информацию о флагах можно с помощью 'HELP':

```cpp
PVS-Studio_setup.exe /help
```

Утилита PVS\-Studio\-Updater\.exe позволяет проверить наличие обновлений анализатора, а в случае их наличия, скачать и установить их на локальной машине\. Для запуска утилиты обновления в "тихом" режиме можно использовать те же параметры, что и для дистрибутива:

```cpp
PVS-Studio-Updater.exe /VERYSILENT /SUPPRESSMSGBOXES
```

В случае отсутствия обновлений на сервере, утилита завершит работу с кодом 0\. Т\.к\. PVS\-Studio\-Updater\.exe производит локальную установку PVS\-Studio, во время его работы в системе также не должен быть запущен процесс devenv\.exe\.

Если в вашей системе используется прокси с авторизацией, утилита PVS\-Studio\-Updater\.exe предложит вам ввести учетные данные для авторизации\. Если учетные данные были введены корректно, PVS\-Studio\-Updater\.exe сохранит их в Windows Credential Manager, и в дальнейшем будет использовать эти учетные данные для авторизации на прокси\. Если вы хотите использовать утилиту с прокси без авторизации, вы можете сделать это с помощью флага proxy \(/proxy\=ip:port\)\.

## Настройка источника обновления

Начиная с версии 7\.24 PVS\-Studio для Windows поддерживает возможность изменения источника обновлений\. Это может быть полезно, если вы не хотите, чтобы разработчики обновляли PVS\-Studio сразу после выхода релиза\.

Например, вы можете создать группу пользователей, которые получат обновления первыми и группу пользователей, которые должны получить обновление после того, как первая группа протестирует продукт\.

Для первой группы никаких изменений в настройках не требуется, они будут получать обновления из релизного канала PVS\-Studio\.

Для второй группы необходимо развернуть альтернативный канал обновления\. Для этого достаточно на своем сервере разместить файл _version\.xml_ и дистрибутив для установки PVS\-Studio\. После этого нужно изменить источник обновления на машинах разработчиков второй группы\.

Информация об источнике обновления хранится в системном реестре: 'HKEY\_LOCAL\_MACHINE\\SOFTWARE\\WOW6432Node\\ProgramVerificationSystems\\PVS\-Studio' в ключе 'UpdateUrl'\. По умолчанию, там прописан стандартный адрес до файла _version\.xml_, который содержит информацию об обновлении\. Вы можете указать адрес до альтернативного файла _version\.xml_, расположенного на вашем сервере\. Например: _https://myserver\.com/version\.xml_

Файл version\.xml имеет следующую структуру:

```cpp
<ApplicationUpdate>
<!--Версия обновления PVS-Studio-->
<Version>7.23</Version> 
<!--Ссылка для скачивания-->
<FileURL>https://myserver.com/PVS-Studio_setup.exe</FileURL>
<CompatibilityVersion>1</CompatibilityVersion>
</ApplicationUpdate>
```

Теперь PVS\-Studio будет проверять обновления через файл _version\.xml_, который лежит на сервере _myserver\.com_ и при наличии обновления, скачает его с этого сервера\.

## Установка с использованием пакетного менеджера Chocolatey

Ещё один возможный вариант установки заключается в использовании менеджера пакетов [Chocolatey](https://chocolatey.org/)\. При использовании этого варианта установке в системе уже должен быть установлен сам пакетный менеджер\.

Команда установки последней доступной версии пакета PVS\-Studio:

```cpp
choco install pvs-studio
```

Команда установки конкретной версии пакета PVS\-Studio:

```cpp
choco install pvs-studio --version=7.05.35617.2075
```

При установке пакета также можно задать список устанавливаемых компонентов по аналогии с перечисленными в разделе "Автоматическое развёртывание" данного документа\. Для указания компонентов используется флаг '\-\-package\-parameters'\. Компоненты эквивалентны описанным выше и отличаются только синтаксисом некоторых параметров:

* Standalone;
* JavaCore;
* IDEA;
* Rider;
* MSVS2010;
* MSVS2012;
* MSVS2013;
* MSVS2015;
* MSVS2017;
* MSVS2019\.

По умолчанию устанавливается только компонент 'Core'\. При перечислении компонентов установки 'Core' указывать не нужно\.

Пример команды, которая установит анализатор с компонентами 'Core' и 'Standalone':

```cpp
choco install pvs-studio --package-parameters="'/Standalone'"
```

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

Способы ввода лицензии при использовании различного окружения описаны в разделе документации "[Как ввести лицензию PVS\-Studio, и что делать дальше](https://pvs-studio.ru/ru/docs/manual/0046/)"\.

При развертывании на большое количество машин можно установить лицензию без ручного ввода ключа\. Для этого необходимо скопировать файл настроек в папку, находящуюся в профиле пользователя\.

Если несколько пользователей используют один и тот же компьютер, лицензия должна быть скопирована для каждого\.

Расположение файла настроек по умолчанию:

```cpp
%USERPROFILE%\AppData\Roaming\PVS-Studio\Settings.xml
```

Этот файл можно редактировать любым текстовым редактором \- это простой xml\-файл\. Следует отметить, что некоторые настройки могут отсутствовать в этом файле\. В этом случае будут применены настройки по умолчанию\.

## Развёртывание анализатора без установки

Работа анализатора PVS\-Studio зависит от окружения, поэтому невозможно его использование в полностью portable режиме, без предварительной настройки\. Однако, если на нескольких машинах настроено одинаковое окружение, необходимое для корректной работы анализатора, то можно скопировать файлы анализатора с одного компьютера на другой\. Это позволит использовать PVS\-Studio на разных компьютерах без непосредственной установки на каждый из них\.

Также, вы можете заложить файлы анализатора в систему контроля версий\.  Это облегчает развертывание и обновление PVS\-Studio на большом количестве машин\.

### Развёртывание анализатора на Windows для C, C\+\+, C\#

**Шаг 1**\. Скачайте установщик PVS\-Studio \(\.exe\) с [сайта](https://pvs-studio.ru/ru/pvs-studio/download/) и запустите его\. 

**Шаг 2**\. После окончания установки введите лицензию как указано в [документации](https://pvs-studio.ru/ru/docs/manual/0046/)\. 

**Шаг 3**\. Скопируйте папку 'C:\\Program Files \(x86\)\\PVS\-Studio' и файл настроек 'Settings\.xml' на другой компьютер\. Расположение файла настроек по умолчанию:

```cpp
%USERPROFILE%\AppData\Roaming\PVS-Studio\Settings.xml
```

В результате станет возможно запускать 'PVS\-Studio\_Cmd\.exe' из папки, которая была скопирована на компьютер пользователя\. При запуске анализа в аргументе '\-s' необходимо указать путь до файла настроек:

```cpp
PVS-Studio_Cmd.exe .... -s <pathToSettingsXml> ....
```

### Настройка Portable режима работы PVS\-Studio на Windows для Java 

**Шаг 1**\. Скачайте установщик PVS\-Studio \(\.exe\) с [сайта](https://pvs-studio.ru/ru/pvs-studio/download/) и запустите его;

**Шаг 2**\. Cоздайте файл 'PVS\-Studio\.lic' с данными о лицензии рядом с ядром Java анализатора по пути 'C:\\Program Files \(x86\)\\PVS\-Studio\-Java'\. В файле лицензии на отдельных строках должны быть указаны имя пользователя анализатора, привязанное к лицензионному ключу, и лицензионный ключ, например:

```cpp
UserName
ХХХХ-ХХХХ-ХХХХ-ХХХХ
```

После этого вы сможете перенести папку 'C:\\Program Files \(x86\)\\PVS\-Studio\-Java' на другой компьютер, где установлена Java версии 8 и выше\. Это позволит использовать Java анализатор из скопированной папки, указав в аргументе '\-\-license\-path' путь до файла лицензии, созданный ранее:

```cpp
java -jar pvs-studio.jar .... --license-path PVS-Studio.lic ....
```