После установки Powershell 5.1 и попытке найти\установить модуль или пакет получаем ошибку следующего типа:
1 2 |
Find-Package : No match was found for the specified search criteria and package name 'Pester'. Try Get-PackageSource to see all available registered package sources. |
Ошибка указывает но то, что выбранный пакет не может быть найден, и предлагает проверить подключенные источники пакетов.
Выполним предложенную команду Get-PackageSource:
1 2 3 |
WARNING: MSG:UnableToDownload «https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409» «» WARNING: Unable to download the list of available providers. Check your internet connection. WARNING: Unable to find package sources. |
Мы получаем сообщение о том, что якобы имеется проблема с подключением и невозможно загрузить список провайдеров.
При этом интернет естественно подключен.
По логике, если не подключено ни одного провайдера, то мы можем попытаться зарегистрировать стандартный репозиторий
1 |
Register-PSRepository -Default |
Но почему то нам опять выводится сообщения того же типа, как и при выполнении прошлой команды, о том что не могут быть установлены необходимые модули
Решение
Если вы выполните команду для запроса используемых протоколов безопасности
1 |
[Net.ServicePointManager]::SecurityProtocol |
то вероятно в консоли отобразятся Ssl3, Tls
Для загрузки пакетов из репозитория нужно изменить набор протоколов:
- Убедиться что консоль запущена с правами администратора
- Выполнить следующую команду
1 |
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 |
После этого может потребоваться зарегистрировать провайдера по умолчанию(PSGallery)
1 |
Register-PSRepository -Default |
Так же, при желании, можно обновить модули до актуальных версий:
1 |
Find-Module PackageManagement,PowerShellGet | Install-Module -Force |
Попробуем теперь выполнить команду на поиск нужного пакета:
1 |
Find-Package Pester |
Как видим ошибки больше не возникают, и командлеты модуля PowerShellGet успешно выполняются!
Про установку модуля PowershellGet без обновления версии Powershell я написал следующую заметку