До складу Windows 10 розробники включили новий PowerShell модуль з ім'ям PackageManagement. Модуль PackageManagement (раніше називався OneGet) дозволяє з консолі PoSh встановлювати, управляти і видаляти програми та програми з якогось зовнішнього (або локального) сховища, а також керувати списком підключених репозиторіїв. Простіше кажучи, в Windows 10 / Windows Server 2016 з'явилася можливість встановлювати програми з командного рядка за аналогією з відомою командою Linux apt-get install.
Модуль менеджера пакетів PackageManagement дозволяє істотно спростити процедуру установки нового ПЗ. Вся установка по суті зводитися до виконання однієї команди PowerShell, і, найголовніше, користувачеві не потрібно самостійно шукати в інтернеті і викачувати дистрибутиви софта, ризикуючи завантажити застарілу або заражену версію. Установка проводиться з довіреного джерела програм. При оновленні програмного забезпечення в репозиторії, воно може бути автоматично оновлено на клієнтах.
зміст:
- модуль PackageManagement
- провайдери пакетів
- Встановлення програм з репозиторію Chocolatey
- видалення пакета
модуль PackageManagement
Модуль PackageManagement вже вбудований в Windows 10, а для його роботи потрібно PowerShell 5. Тому для роботи менеджера пакетів в Windows 8.1 потрібно спочатку встановити Windows Management Framework 5.0. Також Microsoft випустила окремий модуль для роботи менеджера пакетів і на PowerShell версій 3 і 4.
Виведемо список доступних командлетів PowerShell в модулі PackageManagement:
Get-Command -Module PackageManagement
У поточній версії модуля (v 1.0.0.1) є такі команди:
- Find-Package - пошук пакета (програми) в доступних репозиторіях
- Get-Package - отримати список встановлених пакетів
- Get-PackageProvider - список провайдерів (постачальників пакетів), доступних на комп'ютері
- Get-PackageSource - список доступних джерел пакетів
- Install-Package - встановити пакет (програму) на комп'ютері
- Register-PackageSource - додати джерело пакетів для провайдера
- Save-Package - зберегти пакет локально без його установки
- Set-PackageSource - задати провайдер в якості джерела пакетів
- Uninstall-Package - видалити програму (пакет)
- Unregister-PackageSource - видалити постачальника зі списку джерел пакетів
провайдери пакетів
Пакети обслуговуються різними провайдерам, які можуть отримувати пакети з різних джерел. Щоб вивести список всіх доступних провайдерів, виконайте:
Find-PackageProvider
За замовчуванням в системі є 2 встановлених джерела пакетів: nuget.org і PSGallery (офіційна онлайн галерея скриптів PowerShell від MSFT). Але вони призначені в першу чергу для програмістів і системних адміністраторів.
Примітка. В Nano Server є спеціальний ще провайдер NanoServerPackage, про нього в наступній статті.Щоб отримати доступ до каталогу прикладного ПО, підключимо популярний репозитарій ПО - Chocolatey, містить на даний момент більше 4500 різних програм.
Встановимо новий провайдер Chocolatey:
Install-PackageProvider chocolatey
Підтвердимо установку провайдера, натиснувши Y.
Зробимо Chocolatey довіреною джерелом пакетів, щоб кожен раз при установці пакета не доводилося підтверджувати установку.
Set-PackageSource -Name chocolatey -Trusted
Переконаємося, що Chocolatey тепер присутній серед доступних репозитаріїв додатків:
Get-PackageSource
Name ProviderName IsTrusted Location
---- ------------ --------- --------
PSGallery PowerShellGet False https://www.powershellgallery.com/api/v2/
chocolatey Chocolatey True http://chocolatey.org/api/v2/
Встановлення програм з репозиторію Chocolatey
Розглянемо тепер, як встановити додаток (пакет) зі сховищ Chocolatey.
Список доступних для установки програми можна отримати безпосередньо на офіційному веб сайті Chocolatey (https://chocolatey.org/packages)
Також можна знайти і встановити потрібну програму прямо з консолі PowerShell. Наприклад, для перегляду pdf файлів нам знадобилося встановити додаток Adobe Acrobat Reader. Оскільки ми не знаємо повної назви додатка, для його установки нам потрібно отримати ім'я пакета в каталозі. Виконаємо пошук в репозиторії за ключовим словом 'adobe':
Find-Package -Name * adobe * -Source Chocolatey
В консолі з'явиться список всіх пакетів з даного ключу. Нам потрібен пакет adobereader (Потрібно використовувати саме ім'я пакета з шпальти Name).
Запускаємо установку пакета Adobe Reader:
Install-Package -Name adobereader -ProviderName Chocolatey
Вгорі вікна PowerShell з'явиться повзунок, який сповіщає про початок завантаження пакета Adobe Reader. Відразу після закінчення завантаження, додаток встановиться в системі.
Ще один приклад. Припустимо, нам знадобилося мати на комп'ютері набір утиліт SysInternals. Щоб не качати його вручну, знайдемо пакет SysInternals в репозитарії Chocolatey і встановимо його.
Find-Package -Name Sysinternals | Install-Package
Оскільки пакет не вимагає установки, він зберігається на комп'ютер і зберігається в каталозі C: \ Chocolatey \ lib \. У нашому прикладі це каталог C: \ Chocolatey \ lib \ sysinternals.2016.11.18 \ tools
Відразу кілька додатків можна встановити всього однією командою:
Find-Package -Name firefox, winrar, notepadplusplus, putty, dropbox | Install-Package
видалення пакета
Видалення програми на комп'ютері виконується також однією командою. Наприклад, для видалення Adobe Reader, виконайте команду:
Uninstall-Package adobereader
Отже, ми розглянули нові можливості установки додатків в Windows з командного рядка PowerShell. У найближчому майбутньому, ймовірно, з'являться графічні надбудови над модулем PackageManagement, що дозволяють легко управляти установкою / видаленням ПО і простим користувачам без навичок роботи з CLI.