Ошибка установки пакета Chocolatey - PullRequest
1 голос
/ 19 февраля 2020

Для тех, кто знаком с созданием пакетов Chocolatey, может ли кто-нибудь предложить помощь, почему этот пакет не работает? Он упаковывается, но когда я тестирую (устанавливаю только пакет), он не работает. Вот файл chocolateyinstall.ps1:

$ErrorActionPreference = 'Stop'; # stop on all errors
$toolsDir   = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
$fileLocation = Join-Path $toolsDir 'armcc.exe'
$packagename = 'ARM_RVCT'

$packageArgs = @{
  packageName   = $packageName
  unzipLocation = $toolsDir
  fileType      = 'EXE' #only one of these: exe, msi, msu
  #url           = $url
  #url64bit      = $url64
  file         = $fileLocation

  softwareName  = 'ARM_RVCT*' #part or all of the Display Name as you see it in Programs and Features. It should be enough to be unique

  silentArgs    = '/S' # ALLUSERS=1 DISABLEDESKTOPSHORTCUT=1 ADDDESKTOPICON=0 ADDSTARTMENU=0
  validExitCodes= @(0)
}

Install-ChocolateyInstallPackage @packageArgs # https://chocolatey.org/docs/helpers-install-chocolatey-install-package

Когда я выполняю choco pack и затем запускаю choco install arm_rvct, я получаю этот вывод:

Installing the following packages:
arm_rvct
By installing you accept licenses for the packages.

arm_rvct v3.1
arm_rvct package files install completed. Performing other installation steps.
Installing ARM_RVCT...
Microsoft.PowerShell.Commands.WriteErrorException
Error: C3079E: armcc command with no effect
Error: C3065E: type of input file '/S' unknown
Microsoft.PowerShell.Commands.WriteErrorException
ERROR: Running ["C:\ProgramData\chocolatey\lib\arm_rvct\tools\armcc.exe" /S ] was not successful. Exit code was '1'. See log for possible error messages.
The install of arm_rvct was NOT successful.
Error while running 'C:\ProgramData\chocolatey\lib\arm_rvct\tools\chocolateyinstall.ps1'.
 See log for details.

Chocolatey installed 0/1 packages. 1 packages failed.
 See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).

Failures
 - arm_rvct (exited 1) - Error while running 'C:\ProgramData\chocolatey\lib\arm_rvct\tools\chocolateyinstall.ps1'.
 See log for details.

1 Ответ

1 голос
/ 19 февраля 2020

Она точно сообщает вам, в чем проблема в сообщении об ошибке:

Error: C3079E: armcc command with no effect
Error: C3065E: type of input file '/S' unknown

Во-первых, похоже, что вы, возможно, комментируете или, по крайней мере, не предоставляете необходимые параметры для armcc.exe , Во-вторых, похоже, что /S в контексте armcc.exe не для установки без вывода сообщений - ему нужен входной файл, который вы не предоставляете в качестве части ваших аргументов без вывода сообщений.


armcc.exe кстати, не является установщиком - если у вас нет подходящего установщика для вашей цепочки инструментов, рассмотрите возможность помещения цепочки инструментов в zip-архив, встраивания этого zip в ваш пакет, а затем установите с помощью Install-ChocolateyZipPackage вместо Install-ChocolateyInstallPackage (последний предназначен для установки установщиков exe или msi).

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


It похоже, есть официальный установщик для набора инструментов ARM. Однако инструкции по установке в примечаниях к выпуску не содержат никаких инструкций по установке без вывода сообщений. Тем не менее, это распространенная проблема с недокументированными установщиками, но это не значит, что вы не можете выполнить установку без вывода сообщений, с некоторыми усилиями на вашей стороне.

Вы можете попробовать запустить setup.exe /S или ссылка ARM Compiler 6.13.msi с msiexec /i "ARM Compiler 6.13.msi" /qn. Если ни один из этих способов не работает, у вас есть возможность обратиться к поставщику, чтобы спросить, как работает автоматическая установка, или вы можете go узнать, как взять установленные файлы и упаковать их в zip-архив. Обратите внимание, что установщики, особенно для devkits и toolchains, могут регистрировать сборки в Windows, и это может усложнить обратный инжиниринг, если простая установка файла не работает.


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

...