PowerShell 7 использует Chocolatey в качестве PackageManager - PullRequest
1 голос
/ 12 апреля 2020

PowerShell 5 и 7 все же отличаются, когда дело доходит до PackageManager.
Кажется, что Chocolatey еще не «интегрирован», и я не могу использовать Chocolatey в PowerShell 7, как в PowerShell 5.

Я установил chocolatey так, как говорит их сайт, но это позволяет мне использовать chocolatey с самого начала моя команда с choco.

Как настроить Chocolatey в PowerShell 7, чтобы использовать его так же, как в PowerShell 5.
Find-Package -ProviderName Chocolatey -Name <packagename>

1 Ответ

1 голос
/ 12 апреля 2020
  • Начиная с PowerShell [Core] 7, похоже, что вы не можете использовать Chocolatey в качестве поставщика для PowerShell PackageManagement module , что означает, что вы не можете обнаружить или установить пакеты Chocolatey с Find-Package и Install-Package.

  • Однако прямое использование Chocolatey через CLI , choco.exe, прекрасно работает в PowerShell [Core] (* Файл 1031 * выполняется до тех пор, пока в системе присутствует его среда выполнения, которая не обязательно должна совпадать со средой выполнения PowerShell).

Читайте дополнительную информацию:


Похоже, что реализация поставщика PackageManagement потребовала бы доступа к API-интерфейсам Chocolatey способом, который поддерживает только. NET Framework (FullCLR), также не. NET Core (на котором построен PowerShell [Core]) [1] ; цитата из прочитанного мной Chocolatier , предоставленной сообществом альтернативы никогда не выпущенному прототипу официального провайдера:

В настоящее время Chocolatier работает на Full CLR. Это не поддерживается в CoreClr (...). Основная причина заключается в том, что текущая версия choco.exe пока не поддерживает CoreClr.

Что касается использования на Windows PowerShell :

Официальный - Windows PowerShell-only - прототип для поставщика Chocolatey PackageManagement много лет спустя не был реализован; Вот что говорят документы , полученные 13 апреля 2020 года (выделение добавлено):

У Chocolatey есть поставщик прототипов для встроенного менеджера пакетов на Windows 10 / Windows Server 2016, который был создан Microsoft некоторое время назад. Он не полностью функционален и может иметь проблемы с безопасностью . Если вы хотите использовать Chocolatey с PackageManagement, мы рекомендуем использовать ChocolateyGet, который является хорошим мостом, пока не будет реализован официальный. ETA не определено .

Примечание:

  • Вышеупомянутый Chocolatier , основанный на ChocolateyGet , по-видимому, является наиболее активно поддерживаемым проектом на момент написания этой статьи.

  • Существует довольно недавно ожидаемый PR от участника сообщества для официальный прототип, но он не получил никакого внимания; Кроме того, он еще не завершен; полную предысторию смотрите в этом выпуске GitHub .


[1] Если вам известны подробности, сообщите нам.

...