Choco не является внутренней или внешней командой исполняемой программы или пакетного файла

Обновлено: 21.11.2024

Chocolatey или Choco, как его иногда называют, — это бесплатный менеджер пакетов с открытым исходным кодом для Windows, очень похожий на Apt или DNF в сфере Linux. Другими словами, это программа, используемая для установки программного обеспечения через командную строку Windows. Он загружает программу, устанавливает ее, затем проверяет наличие обновлений и автоматически устанавливает эти обновления, если это необходимо. Те, кто использует Linux, хорошо знакомы с подобными системами управления пакетами.

Некоторые спрашивают: "Почему мы должны использовать подобную программу, если мы можем просто загрузить программное обеспечение .exe или .msi и установить программу самостоятельно?"

Отличный вопрос. Вот несколько надежных ответов.

  • Когда мы устанавливаем новую операционную систему и хотим использовать множество программ, мы должны найти установщик каждой программы, загрузить его, установить, а затем регулярно проверять наличие обновлений. Менеджер пакетов Chocolatey делает это сам по себе при использовании автоматического режима.
  • Вместо того, чтобы искать исполняемый установщик, мы можем установить программу с помощью диспетчера пакетов Chocolatey и выполнить все действия с помощью командной строки. Это гораздо удобнее и быстрее.
  • Мы можем удобно и более комфортно управлять нужными нам версиями приложений. Чаще всего, когда мы идем скачивать исполняемый файл для приложения, оно загружает для нас последнюю версию, а нам не всегда нужна последняя версия.
  • Chocolatey предоставляет понятные и простые команды, которые почти одинаково используются во всех системах управления пакетами.

Предпосылки

Установка

Перейдем к установке. Есть два варианта установки Chocolatey. Мы можем установить Chocolatey через командную строку или через PowerShell. Вариант использования cmd чаще всего используется для Windows, а PowerShell — для запуска скриптов. В этом случае мы можем запустить и cmd, и PowerShell, но от имени администратора для этой установки.

Пожалуйста, проверьте сценарий установки Chocolatey перед его запуском, чтобы обеспечить безопасность. Chocolatey уже знает, что его сценарии безопасны, но по умолчанию вы должны проверить безопасность и содержимое любого сценария, с которым вы не знакомы, прежде чем загружать и запускать его из Интернета. Эта установка загружает удаленный сценарий PowerShell и выполняет его на вашем компьютере. Мы очень серьезно относимся к безопасности.

Установить с помощью Powershell

При установке программного обеспечения через PowerShell мы должны убедиться, что для локальной Get-ExecutionPolicy не установлено ограничение. Chocolately предлагает использовать Bypass, чтобы обойти политику и установить что-то, или AllSigned для повышения безопасности.

Во-первых, нам нужно запустить Get-ExecutionPolicy. Если он возвращает Restricted, нам нужно запустить одну из двух команд ниже.

'choco' не распознается как внутренняя или внешняя команда, исполняемая программа или пакетный файл.

Любые ответы, связанные с «'choco', не распознаются как внутренняя или внешняя команда, исполняемая программа или пакетный файл».

  • установка шоколада
  • touch не распознается как внутренняя или внешняя команда,
  • 'источник' не распознается как внутренняя или внешняя команда, исполняемая программа или пакетный файл.
  • сенсорная команда не распознается в Windows
  • cdm touch не распознается как внутренняя или внешняя команда cdm, исполняемая программа или пакетный файл.
  • как установить шоколад с помощью командной строки
  • 'scriptcs' не распознается как внутренняя или внешняя команда, исполняемая программа или пакетный файл.
  • 'BROWSER' не распознается как внутренняя или внешняя команда,
  • 'gh-pages' не распознается как внутренняя или внешняя команда
  • 'wget' не распознается как внутренняя или внешняя команда, исполняемая программа или пакетный файл.
  • установить шоколадную Windows 10
  • 'npm' не распознается как внутренняя или внешняя команда, исполняемая программа или пакетный файл.
  • <ли>. не распознается как внутренняя команда npm run
  • Термин "tsc" не распознается как имя командлета, функции, файла сценария или исполняемой программы.
  • код не распознается как внутренняя или внешняя команда
  • 'keytool' не распознается как имя командлета
  • "очистить" не распознается как внутренняя или внешняя команда,
  • csc не распознается
  • '.' не распознается как внутренняя или внешняя команда,
  • choco не найден в системе Windows 10

Любые запросы, связанные с «'choco', не распознаются как внутренняя или внешняя команда, исполняемая программа или пакетный файл».

Зарегистрируйтесь, чтобы голосовать и добавлять примеры кода. Присоединяйтесь к нашему сообществу разработчиков, чтобы улучшить свои навыки разработки и программировать как босс!

Помогите нам улучшить наши примеры кода, зарегистрировавшись, чтобы проголосовать и добавить ответы. Присоединяйтесь к нашему сообществу разработчиков, чтобы улучшить свои навыки разработки и программировать как босс!


Продолжая, я подтверждаю, что прочитал и согласен с Условиями использования и Политикой конфиденциальности Greppers.

Вот оно! Все, что вам нужно, это choco.exe (который вы получаете из сценариев установки), и все готово! Visual Studio не требуется.

Установка Шоколадного

Chocolatey устанавливается за считанные секунды. Вы всего в нескольких шагах от choco прямо сейчас!

  1. Во-первых, убедитесь, что вы используете административную оболочку — вы также можете установить без прав администратора, ознакомьтесь с разделом Неадминистративная установка.
  2. Скопируйте текст, относящийся к вашей командной оболочке — cmd.exe или powershell.exe.
  3. Вставьте скопированный текст в оболочку и нажмите Enter.
  4. Подождите несколько секунд, пока команда завершится.
  5. Если вы не видите никаких ошибок, вы готовы к использованию Chocolatey! Типа чоко или чоко-? сейчас или см. инструкции по использованию в разделе Начало работы.
  • Если вы используете прокси-сервер, см. раздел Установка за прокси-сервером.
  • Нужно полностью автономное решение? См. полностью автономную установку.
  • Устанавливаете лицензионную версию? См. Установка лицензионной версии. / Устранение неполадок

Установить с помощью cmd.exe

Выполните следующую команду:

Установить с помощью PowerShell.exe

С PowerShell есть еще один шаг. Вы должны убедиться, что Get-ExecutionPolicy не имеет ограничений. Мы предлагаем использовать Bypass, чтобы обойти политику, чтобы установить что-то, или AllSigned для большей безопасности.

  • Запустите Get-ExecutionPolicy . Если он возвращает Restricted , запустите Set-ExecutionPolicy AllSigned или Set-ExecutionPolicy Bypass -Scope Process .
  • Теперь выполните следующую команду:

Дополнительные соображения

Мы очень серьезно относимся к безопасности. Узнать больше.

"Зачем мне включать TLS 1.2 в PowerShell? Разве он не должен быть включен по умолчанию при загрузке PowerShell?"

Загрузку по умолчанию очень трудно увидеть, поэтому вам следует убедиться, что она есть. Предположим, что это не так, и задайте его явно.

Дополнительные параметры установки

Устранение неполадок? Прокси? Нужны дополнительные параметры?

Дополнительные параметры установки

Установить из PowerShell v3+

📝 ПРИМЕЧАНИЕ. Команда для установки с помощью PowerShell в верхней части страницы работает для всех версий PowerShell, начиная с v2. Это предоставляется в качестве дополнительного примечания для людей, которым нужна более краткая команда, которую легче запомнить.

С PowerShell есть один или два дополнительных шага. Вы должны убедиться, что Get-ExecutionPolicy не имеет ограничений. Мы предлагаем использовать Bypass, чтобы обойти политику, чтобы установить что-то, или AllSigned для большей безопасности.

  • Запустите Get-ExecutionPolicy . Если он возвращает Restricted , запустите Set-ExecutionPolicy AllSigned или Set-ExecutionPolicy Bypass .
  • Теперь выполните следующую команду:

Полностью автономная установка

При полностью автономном использовании Chocolatey вы хотите убедиться, что вы удалили источник пакета сообщества по умолчанию (список источников choco, за которым следует choco source remove -n Chocolatey , или каким-либо другим образом вы бы сделали это с помощью диспетчера конфигурации, такого как Puppet).

Установить с помощью Puppet

📝 ПРИМЕЧАНИЕ. Если у вас есть лицензионная версия, вместо этого см. раздел Настройка лицензионной версии с помощью Puppet. Это только дополнительно содержит некоторые примеры пакетов и настройку завершения табуляции.

Вот пример настройки Chocolatey с помощью Puppet, который устанавливает и настраивает Chocolatey, настраивает внутренний репозиторий пакетов и показывает настройку лицензионной версии и обеспечение некоторых пакетов.

Установить с помощью PowerShell из cmd.exe

Это лучший способ, если вы хотите повторить его или включить в систему управления версиями. Не требуется никаких изменений в существующей PowerShell, чтобы разрешить удаленные неподписанные сценарии.

Создайте файл с именем installChocolatey.cmd со следующим:

Запустите installChocolatey.cmd из командной строки cmd.exe с повышенными привилегиями, и она установит последнюю версию Chocolatey. Вы не можете запустить это из powershell.exe без внесения изменений в политику выполнения.

📝 ПРИМЕЧАНИЕ. Чтобы создать и сохранить файл .cmd, используйте текстовый редактор и ничего особенного, например, Microsoft Word или OneNote.

Установить с помощью диспетчера пакетов NuGet

Если у вас установлены Visual Studio 2010+ и расширение NuGet (предварительно установленное в любых более новых версиях Visual Studio), вы можете просто ввести следующие три команды, и на вашем компьютере будет установлен Chocolatey.

Install-Package Chocolatey Initialize-Chocolatey Uninstall-Package Chocolatey

Установка с помощью NuGet.exe из PowerShell

Вы также можете использовать командную строку NuGet для загрузки Chocolatey:

nuget установить шоколадный или nuget установить шоколадный -pre

Загрузив его, откройте PowerShell (удаленно неподписанный), перейдите в папку инструментов и выполните:

Установите загруженный пакет NuGet из PowerShell

Вы также можете просто скачать и разархивировать пакет Chocolatey ( .nupkg — это причудливый zip-файл):

  1. Загрузите пакет Chocolatey.
  2. Убедитесь, что загруженный nupkg не заблокирован.
  3. Разархивируйте его с помощью любого приложения, поддерживающего формат zip.
  4. Откройте командную оболочку PowerShell и перейдите в папку инструментов разархивированного пакета.

📝 ПРИМЕЧАНИЕ. Убедитесь, что политика выполнения PowerShell установлена ​​как минимум на обход или удаленную подпись (если у вас есть проблемы, вам может потребоваться установить для нее значение Неограниченно).

📝 ПРИМЕЧАНИЕ. Это не установит Chocolatey в качестве установленного пакета, поэтому может быть хорошей идеей также вызвать choco upgrade Chocolatey -y и позволить ему переустановить ту же версию, но, по крайней мере, она будет доступна для обновлений. затем.

Установить лицензионную версию

Установка за прокси

У вас есть прокси? Попробуйте

  • Cmd.exe:
  • PowerShell.exe (убедитесь, что Get-ExecutionPolicy имеет по крайней мере значение RemoteSigned):

Установка за явным прокси

Установка в другое место

  1. Создайте переменную среды уровня компьютера (уровень пользователя также подойдет) с именем ChocolateyInstall и задайте для нее папку, в которую вы хотите установить Chocolatey перед установкой (эта переменная среды должна быть установлена ​​глобально или доступна для PowerShell — этого недостаточно чтобы просто сделать его доступным для текущего сеанса командной строки).
  2. Не используйте "C:\Chocolatey" без необходимости.
  3. Создайте папку вручную.
  4. Если вы уже установили (и хотите изменить местоположение постфактум):
  • Выполните описанные выше шаги.
  • Установите Chocolatey еще раз.
  • Скопируйте/переместите элементы из старого каталога lib/bin.
  • Удалите старый каталог установки.

📝 ПРИМЕЧАНИЕ. При установке Chocolatey в расположение, отличное от значения по умолчанию, необходимо учитывать одно важное обстоятельство: Chocolatey блокирует разрешения для администраторов только при установке в расположение по умолчанию %PROGRAMDATA%\Chocolatey , что означает то же самое, что и %SystemDrive%\ProgramData\Chocolatey. Если вы устанавливаете в другое место, вам нужно будет справиться с этим самостоятельно, т.е. е. ограничить доступ на запись для администраторов, если вы того пожелаете. Это связано с тем, что альтернативные местоположения могут иметь ряд разрешений, которые не следует изменять. Дополнительные сведения см. в разделе «Почему Chocolatey устанавливается там, где он это делает» и в GitHub Issue 398.

Установка определенной версии Chocolatey

Перед установкой установите следующую переменную среды:

  • chocolateyVersion — определяет установленную версию Chocolatey.

В PowerShell это выглядит так:

Используйте встроенное сжатие Windows вместо загрузки 7zip

Перед установкой установите следующую переменную среды:

  • chocolateyUseWindowsCompression — это позволит обойти загрузку и использование 7zip.

В PowerShell это выглядит так:

Установка с ограниченным TLS

📝 ПРИМЕЧАНИЕ. Если ваш сервер ограничен TLS 1.1+, вам необходимо добавить дополнительную логику, чтобы иметь возможность загружать и устанавливать Chocolatey (в этом нет необходимости при обычном запуске Chocolatey, так как он делает это автоматически).

📝 ПРИМЕЧАНИЕ. Если это для использования в организации, вам следует рассмотреть возможность размещения пакета Chocolatey внутри компании и установки оттуда.

Если вы видите ошибку, похожую на следующую:

Вариант 1 — размещение внутри компании

Если вы представляете организацию, это лучший вариант, который уменьшит проблемы с ограничением скорости, которые могут возникнуть позже.

Обновите до следующего:

Вариант 3 — Вручную

Вам необходимо загрузить и разархивировать пакет Chocolatey, а затем вызвать из него сценарий установки PowerShell. См. раздел «Загрузка + метод PowerShell» ниже.

Установка без прав администратора

Необходимо выбрать расположение, отличное от используемого по умолчанию (см. раздел Установка в другое место выше). По умолчанию используется более безопасное расположение, которое могут обновлять только администраторы.

  1. Сохраните приведенный ниже сценарий как ChocolateyInstallNonAdmin.ps1.
  2. Используйте приведенный ниже сценарий, чтобы определить, куда вы хотите установить Chocolatey, если это не C:\ProgramData\chocoportable .
  3. Откройте PowerShell.exe.
  4. Запустите следующий процесс Set-ExecutionPolicy Bypass -Scope Process -Force;
  5. Бежать.\ChocolateyInstallNonAdmin.ps1 .

Примеры пакетов, которые вы можете установить:

Обновление Шоколадного

После установки Chocolatey можно обновить точно так же, как и любой другой пакет, установленный с помощью Chocolatey. Просто используйте команду для обновления до последней стабильной версии Chocolatey:

Удаление шоколадки

У меня проблемы с установкой Chocolatey

Я получаю ошибку 403 при попытке установить

Это рассматривается в разделе "Устранение неполадок".

Почему нет MSI?

tl;dr — Chocolatey устанавливается как nupkg, как и все остальное, скрипт установки PowerShell просто гарантирует это.

Chocolatey появился благодаря автоматизации Windows и работе с пакетами, пакетами, которые могут окружать установщик, но не обязательно. Сценарии установки Chocolatey используют пакет Chocolatey (сам файл nupkg) для установки и обновления как еще один пакет. Это означает, что Chocolatey «поедает свою собственную экспериментальную пищу», и маловероятно, что мы будем предлагать его в качестве MSI (собственного установщика), поскольку он будет немного противоречить тому, что представляет собой Chocolatey (хотя мы не исключаем, что это то, что ).

На самом деле установка гарантирует несколько вещей:

PowerShell установлен и правильно настроен.

PowerShell требуется для использования Chocolatey, а не только для установки. Это то, что управляет процессом установки пакета в большинстве случаев. Каждый пакет может иметь бинарные файлы и/или сценарии установки/удаления (написанные на PowerShell). Chocolatey — это фреймворк, и каждый пакет определяет, как он устанавливается, обновляется и удаляется. Это чрезвычайно гибкая структура, которая, как было доказано, соответствует безумию экосистемы установки программного обеспечения Windows. Такой гибкости было бы нелегко достичь без PowerShell.

Мы понимаем, что некоторые организации отключают PowerShell, поэтому вполне вероятно, что в будущем наша версия Business Edition удовлетворит эту потребность. PowerShell — это основной инструмент автоматизации Windows, поэтому в наши дни в организациях не принято отключать PowerShell.

Наличие процесса установки, использующего PowerShell, поможет вам быстро определить, можно ли использовать Chocolatey в вашей среде.

Вы готовы делать что-то немного по-другому, например. работа с пакетами, а не с установщиками.

Вы открыты для концепции использования пакетов. Некоторые люди могут сказать, что это означает, что мы просим людей научиться «делать что-то «по-нашему», потому что мы знаем лучше». Это не столько о том, чтобы «знать лучше», сколько о том, чтобы узнать, что Chocolatey делает что-то немного по-другому. Это происходит потому, что мир программного обеспечения — это не только установщики. Программное обеспечение выходит за рамки программ и функций, и система, которая может отслеживать все это, также должна это делать. Управление пакетами — не новая концепция в мире программного обеспечения, возможно, просто более новая для Windows. Если люди не открыты для этого, то они, вероятно, не будут открыты для Chocolatey. И это совершенно нормально. Шоколад не для всех. Со временем мы можем перейти к более массовому подходу. Прямо сейчас мы ориентируемся на определенный тип аудитории — тех, кто ищет лучшие способы управления программным обеспечением в Windows и готов искать лучший процесс для этого.

Я *думаю*, что мне нужно заставить его установить фреймворк, но я не вижу, как это сделать, и я не понимаю, почему он не может найти choco.exe, но думает, что существует допустимая установка, поэтому он не не пытайтесь ремонтировать или переустанавливать.

Хорошо, Framework не устанавливается, я думаю, из-за проблемы с TLS, но у меня есть волшебная галочка. Похоже, что @shellresult@ содержит не ожидаемую строку, а вывод сценария Powershell, который является результатом проблемы с TLS:-(

Он никогда не применяет исправление, поэтому никогда не устанавливает платформу.

Одна из наших машин, ни фреймворка, ни попыток, ни времени последнего выполнения — все с того дня, как я ее установил

Я полагаю, что это может быть связано с проблемами с ограничениями, которые мы наблюдаем в последнее время. Сейчас мы тестируем несколько новых обновлений, чтобы узнать, сможем ли мы решить некоторые из этих проблем.

Подождите..

Если есть ограничения, есть ли способ разместить собственную копию репозитория? Это точно решит проблему? Нам нужно будет только поддерживать синхронизацию с теми пакетами, которые мы решили разрешить.

Я не уверен, что это предел. Я только что проверил машину, которая была в списке для установки Chocolatey уже пару недель, и до сих пор не имеет его. Сценарий обслуживания запускается и сообщает мне, что choco.exe не может быть найден, а затем, похоже, ничего не делает, чтобы решить эту проблему.

Похоже, что сценарий сильно выдает сообщение "Данные репозитория из POSH Execute не доставили ожидаемые данные".

Все журналы, которые вы мне здесь показываете, являются "другими" журналами. Это означает, что это попытки установки или обновления приложений или обновления репозитория. не устанавливать фреймворк. Если агенты получают эти команды, то платформа Chocolatey была успешно установлена, и теперь подключаемый модуль работает над установкой и обновлением приложений или других функций.

Меня беспокоит то, что из-за ошибки в журнале, которую вы показываете, вы запрашиваете обновление версии приложения репозитория для повторного заполнения текущих версий в общедоступном репозитории. Это все хорошо, но это должно происходить только с одним агентом, а не со списком из них.

Должен быть только 1 идентификатор агента, который получает этот запрос. Автоматизация запрашивает, у кого есть эта задача, следующим запросом. если значение > 0, то у нас есть агент для планирования обновлений репо.

Судя по тому, что я здесь вижу, у вас много агентов, пытающихся выполнить одну и ту же функцию. Можете ли вы запустить SQL-запрос и подтвердить, кому в настоящее время назначена задача? Если можно ответьте, есть ли этот агент в списке логов? а затем пришлите нам журналы подключаемого модуля сервера для Chocolatey for Automate?

Я просмотрел наши функции и не понимаю, как эта задача может быть назначена более чем одному агенту. Нет цикла для назначения нескольких запланированных сценариев агентам для этой функции. Я также рассмотрел функции, которые проходят через несколько агентов и не назначают задачу обновления репозитория. Я также подтвердил, что все функции скрипта имеют терминаторы в конце, поэтому вы не можете пересекать функции внутри скрипта.

Читайте также: