Установка PowerShellGet

В PowerShell, начиная с версии 5.1 встроен модуль PowerShellGet.
Это Package Manager( или менеджер пакетов), позволяющий устанавливать модули из подключенного по умолчанию репозитория PSGallery.
Заметка поможет добавить этот модуль в более раннюю версию, например PowerShell 4.

Скачиваем модуль

Для загрузки модуля нам понадобится другой компьютер с версией PowerShell, не меньше чем 5.1.

# Сохраняем модуль в папку, вместе с его зависимостями
Save-Module -LiteralPath "C:\TempModules\" -Name "PowerShellGet" -Repository "PSGallery" -MinimumVersion 2.0

Или же можно скачать с GitHub

Выясняем где хранятся модули PowerShell
$env:PSModulePath -split ';'

Переносим модуль на целевой компьютер, в папку с модулями

В PowerShell 5.1, внутри папки с модулем, имеется папка с названием версии модуля, и сами файлы хранятся уже в ней.
Для версии 4 файлы необходимо перенести в корень папки с именем модуля

Import-Module -Name PackageManagement
Import-Module -Name PowerShellGet

Командлеты, для работы которых необходимо обращение к репозиторию (Save\Find\Install-Module), пока что не будут работать

Подключаем репозиторий
Register-PSRepository -Default

Готово! После этого можно использовать возможности модуля PowerShellGet

Добавление стороннего репозитория

Так же, при желании, можно подключить дополнительно сторонний репозиторий

# Добавляем провайдера
Install-PackageProvider -Name Chocolatey
# Проверяем
Get-PackageSource

После этого можно устанавливать программы, которые разработчики разместили в репозитории

# Посмотреть все доступные пакеты
Find-Package * -ProviderName chocolatey
# Установить Notepad++ последней версии
Find-Package notepadplusplus | Install-Package

Программы, при выполнении командлета Install-Package, будут установлены в тихом режиме в стандартное расположение, и дополнительно установочные файлы программ и их зависимости будут сохранены в папке C:\Chocolatey
При их удалении программа сохраняется

 

Про ошибку при обновлении Powershell версии 4 до 5.1 я написал в следующей статье

Добавить комментарий

Ваш адрес email не будет опубликован.