Existe uma maneira de listar os pacotes do Chocolatey com seu diretório de instalação?

Existe uma maneira de listar os pacotes do Chocolatey com seu diretório de instalação?

O comando

choco list -lo

lista os pacotes instalados. Mas como determino onde um aplicativo Chocolatey é instalado? Até agora tive que procurá-los.

Alguns exemplos:

  • NUnit vai paraProgram Files (x86)
  • WGET vai para%ALLUSERSPROFILE%\chocolatey\bin and %ALLUSERSPROFILE%\chocolatey\lib\[Package Name]\tools
  • ConsoleZ foi para%ALLUSERSPROFILE%\chocolatey\lib\[Package Name]\tools

Existe uma bandeira choco listque me diga para onde eles foram? ChocolateyGUI também não parece fazer isso.

Mais ou menos como o Debian:

dpkg-query

Ou do RedHat:

rpm -ql [package-name]

Ou a nova consulta do YUM:

repoquery --list [package-name]

Cerveja caseira:

brew list [package-name]

Responder1

Atualmente, não há como fazer o que você está pedindo.

Cada pacote Chocolatey é único no sentido de que pode ser um wrapper em torno de um MSI ou EXE, ou pode ser uma simples extração de um arquivo compactado para um local conhecido, ou seja, C:\tools, ou pode ser um módulo PowerShell que extrai para PSModulePath, ou pode ser algo completamente personalizado.

Este é um efeito colateral do ecossistema Windows, onde existem várias maneiras de fazer a mesma coisa. Chocolatey está tentando trazer algum tipo de ordem para isso, fornecendo um mecanismo para pelo menos encontrar todos os pacotes que você deseja em um só lugar, mas há um limite para o que Chocolatey pode fazer.

Se você olhar as coisas de maneira completamente diferente, é possível passar argumentos de instalação para um pacote Chocolatey usando o seguinte:

https://github.com/chocolatey/chocolatey/wiki/CommandsInstall#installarguments-optional---v09813

Isso poderia, em teoria, alterar os argumentos de instalação de um pacote Chocolatey baseado em MSI ou EXE para alterar o local onde os arquivos são instalados. Você pode ver um exemplo dessa abordagem sendo usada aqui:

http://chocolatey.org/packages/VisualStudio2013Ultimate

No entanto, esta abordagem é limitada. Nem todo mundo dedica tempo como Matt para mencionar os possíveis argumentos de instalação, e é um processo bastante complicado extrair os argumentos de instalação que podem ser enviados para um MSI ou EXE.

Em termos de ChocolateyGUI, e como atual mantenedor desse produto, posso dizer que ele não faz nada de inteligente nesta área :-). É simplesmente um wrapper em torno das ferramentas de linha de comando fornecidas pelo Chocolatey e tem como objetivo tornar mais fácil para pessoas que não gostam de usar a linha de comando.

Responder2

Encontrei algumas coisas úteis em

C:\ProgramData\chocolatey\logs\choco.summary.log
C:\ProgramData\chocolatey\logs\chocolatey.log

Certamente, esses logs contêm muitas informações redundantes (para este caso). Mas pelo menos eles podem ser visualizados para entender melhor o que o chocolate realmente faz.

Responder3

Provavelmente estão faltando alguns resultados, mas me ajudou a localizar alguns pacotes:

(Get-Content C:\ProgramData\chocolatey\logs\choco.summary.log) -match 'Software installed to'

Responder4

Infelizmente, não que eu saiba. Acredito que o diretório de instalação é determinado pelo próprio pacote. Não está definido no arquivo .nuspec e não consigo ver em nenhum lugar que esteja explicitamente definido no código-fonte do Chocolatey.

Código fonte:https://github.com/chocolatey/chocolatey

informação relacionada