Как мне использовать встроенный в Windows 10 менеджер пакетов?

6559
Jonathan

Я считаю управление пакетами Windows 10 не очень интуитивно понятным. Ниже приведены мои приключения в попытке установить VLC, что звучит как очень распространенный тестовый пример для менеджера пакетов.

Find-Package vlc 

Нету

Find-Package -Update 

Нету

Install-Package --help 

Нету

Install-Package /? 

Нету

Install-Package vlc  The provider 'nuget v2.8.5.127' is not installed. nuget may be manually downloaded from https://oneget.org/nuget-anycpu-2.8.5.127.exe and installed. Would you like PackageManagement to automatically download and install 'nuget' now? [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): Install-Package : No match was found for the specified search criteria and package name 'vlc'. At line:1 char:1 + Install-Package vlc + ~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (Microsoft.Power....InstallPackage:InstallPackage) [Install-Package], Ex ception + FullyQualifiedErrorId : NoMatchFoundForCriteria,Microsoft.PowerShell.PackageManagement.Cmdlets.InstallPackage 

Нету

Register-PackageSource -Name chocolatey -Location http://chocolatey.org/api/v2 -Provider PSModule -Trusted -Verbose 

Может быть?

Install-Package vlc WARNING: The module 'vlc' cannot be installed or updated because it is not a properly-formed module. 

Нету

13
Попробуйте [`Install-Package -Name VLC`] (http://www.howtogeek.com/200334/windows-10-includes-a-linux-style-package-manager-named-oneget/). MC10 8 лет назад 0
Install-Package -Name VLC. Install-Package: Не найдено совпадений для указанных критериев поиска и имени пакета VLC. Jonathan 8 лет назад 0
`Find-Package -Name VLC` найдет что-нибудь для вас? Кроме того, проверьте, чувствителен ли он к регистру. MC10 8 лет назад 0
`Find-Package -Name VLC` Find-Package: не найдено совпадений для указанных критериев поиска и имени пакета 'VLC'. В строке: 1 символ: 1 + Find-Package -Name VLC + ~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: ObjectNotFound: (Microsoft.Power ... ets .FindPackage: FindPackage) [Find-Package], Исключение + FullyQualifiedErrorId: NoMatchFoundForCriteria, Microsoft.PowerShell.PackageManagement.Cmdlets.FindPackage Jonathan 8 лет назад 0
Так что я немного поиграл с этим. Я получил ту же ошибку, что вы сделали для VLC, но установка `putty 'сработала. Не уверен, на чьей стороне проблема сейчас. MC10 8 лет назад 0
У меня похожие проблемы с `iojs`. Он * находит * пакет просто отлично, но когда я пытаюсь установить его, он говорит, что он не найден. mpen 8 лет назад 0
`help Install-Package` работает. BrunoLM 8 лет назад 0
Вы могли бы сначала сделать `update-help`. BrunoLM 8 лет назад 1
Есть ли какое-то преимущество в использовании команд Windows, а не в виде шоколадки, непосредственно для пакета из шоколадного репо? kuzzooroo 6 лет назад 0

1 ответ на вопрос

10
Vimes

Вы были близки Во-первых, вы должны установить политику выполнения, разрешающую выполнение сценариев, иначе она будет молча терпеть неудачу при сообщении об успехе ( ошибка ):

Set-ExecutionPolicy RemoteSigned 

И поставщик пакета (плагин Chocolatey), и источник пакета (URL-адрес определенного репозитория Chocolatey) должны быть установлены / зарегистрированы в PackageManagement. Get-PackageProvider с -Forceфлагом заставляет его загрузиться, что, по-видимому, решает обе задачи (подробнее о справке -Force):

Get-PackageProvider Chocolatey -Force | Out-Null 

Тогда я могу найти пакет:

Find-Package vlc -Force  Name Version Source Summary ---- ------- ------ ------- vlc 2.2.1.20150630 chocolatey VLC Media Player 

И установите его ( -Forceчтобы он не запрашивал подтверждения):

Install-Package vlc -Force | Out-Null 

enter image description here

Это не работает для меня на чистой Windows 10 RTM, просто помещает все в C: \ Chocolatey \ lib, но на самом деле не устанавливает программы и не запускает сценарии, необходимые для этого. RedShift 8 лет назад 0
О, есть [очень запутанная ошибка] (https://github.com/OneGet/oneget/issues/97#issuecomment-139331418) в PackageManagement, где происходит именно такое поведение, если только перед установкой пакетов вы не установите политику выполнения, чтобы скрипты (я использую RemoteSigned). Я обновлю свой ответ. Vimes 8 лет назад 3
Рад слышать. Надеюсь, они сгладят эти морщины. Не забудьте пометить ответ, если хотите :-) Vimes 8 лет назад 1
Как мне установить несколько пакетов в одну строку? Это отраслевой стандарт для всех менеджеров пакетов. Похоже, я получаю ошибку, если я запускаю `Install-Package vlc firefox -Force` Jonathan 8 лет назад 0
@JonathanLeaders, просто ставьте запятые между именами пакетов. Vimes 8 лет назад 1
@JVimes Кажется, это больше не работает. Ошибка похожа на RedShift. Если для политики выполнения установлено значение `RemoteSigned`, скрипт выдаст ошибку с` `Система не может найти ...`; если вы сбрасываете политику выполнения с помощью Set-ExecutionPolicy Default, она не выдает ошибку, но ничего не устанавливается в файлы программы. Установщики правильно хранятся в `C: \ Chocolatey \ lib` xenithorb 7 лет назад 0
@xenithorb, я подтверждаю, что ты видишь. У меня было так много проблем с провайдером Chocolatey, что я давно от него отказался. Похоже, его страница GitHub [здесь] (https://github.com/chocolatey/chocolatey-oneget). Vimes 7 лет назад 0

Похожие вопросы