Como posso informar ao chocolatey que um programa foi atualizado?

Como posso informar ao chocolatey que um programa foi atualizado?

Instalei um programa (Paint.Net) com Choco. Na época a versão era 3.13, mas o Paint.Net se atualizou para 3.15.

No entanto, quando executo choco outdated, ele ainda pensa que o 3.13 está instalado e deseja (re)instalar o 3.15.

Existe uma maneira de sincronizar o que está no banco de dados local choco de pacotes instalados com a versão atual real?

Esta é a versão gratuita do chocolate.

Responder1

Essa opção existe no chocolate, mas apenas na versão paga. É chamado de Comando de sincronização. Você pode encontrar mais informações sobre como usá-lo no link acima. Um vídeo descrevendo o comando pode ser encontrado em YouTube.

Chocolatey também pode fazer essa sincronização automaticamente, conforme descrito em
Sincronizar com programas e recursos (somente edições licenciadas).


Diz-se que um gerenciador de programa gratuito para chocolatey que faz sincronização é Implantar, que você pode tentar.

Em suma, se você não quiser que o chocolatey atualize determinados pacotes, ignorando-os, você pode usar o comando choco pin.

Para alertar o Chocolatey sobre os aplicativos instalados sem executar os scripts de instalação, use o parâmetro -n, --skippowershell, --skip-powershell, --skipscripts, --skip-scripts, --skip-automation-scripts (todos são a mesma opção). Ver Como instalar ou atualizar um pacote sem executar scripts.


Você também pode fazer a interface do chocolate com a contraparte do PowerShell da Microsoft para o Linux apt-get : OneGet, agora renomeado para Gerenciamento de pacotes. Package Manager é o nome da Microsoft, enquanto o projeto de código aberto subjacente ainda se chama OneGet. Você poderá então usar o PowerShell como interface exclusiva para Windows e chocolate.

Você pode ler sobre o OneGet no blog da Microsoft
O que há de novo no PowerShell: Introdução ao OneGet em uma linha com o Windows PowerShell 5.0.

OneGet é umgerente de gerenciadores de pacotes, e oferece suporte ao chocolatey como fornecedor de pacotes. Você pode instalá-lo no PowerShell usando o Comando Find-PackageProvider:

insira a descrição da imagem aqui

Você pode então usar o Comando Install-PackageProvider para configurar a interface achocolatada (mas atenção, pois ainda é um protótipo, então você terá que tatear):

Install-PackageProvider chocolatey -Scope CurrentUser

Aqui está um exemplo do PowerShell de instalação do Notepad ++ da galeria chocolatey:

insira a descrição da imagem aqui

Você pode encontrar mais informações nas seguintes referências:

Responder2

Esta resposta é baseada na saída do seguinte comando:

choco outdated

Saída do comando choco desatualizado

Conforme mencionado em outra resposta, não existe uma forma automática na versão Open Source do Chocolatey de atualizar a versão do Pacote Chocolatey, com base na versão do aplicativo que está sendo atualizada de outra forma. Em uma versão licenciada do Chocolatey, esterecursoestá disponível.

Se você deseja fazer a instalação inicial de um aplicativo com Chocolatey, ou seja

choco install paint.net

e deixar o aplicativo se atualizar, o melhor conselho seria fixar o pacote usando oalfinete comando. Isso seria feito com o seguinte comando:

choco pin add -n="paint.net"

Isso significa que ao executar o choco upgrade allcomando, supondo que você o esteja utilizando, este pacote não será mais considerado para atualização, mesmo que uma nova versão seja encontrada. Além disso, a saída do choco outdatedcomando mudará para o seguinte:

Saída do choco desatualizada após comando pin

Se você REALMENTE deseja remover a entrada do choco outdatedrelatório, mas também deseja contar com a capacidade do aplicativo de se atualizar, você poderá executar o seguinte comando:

choco upgrade paint.net --skip-automation-scripts

Isso instrui o Chocolatey a atualizar o pacote para a versão atualmente disponível, mas também impedirá a execução do arquivo chocolateyInstall.ps1 (e outros arquivos), o que significará que o instalador do aplicativo nunca será executado. Como mostrado aqui:

Saída do comando choco upgrade ao ignorar scripts de automação

Depois de executar o comando acima, a saída do choco outdatedcomando se torna:

Saída do choco desatualizada após atualização

informação relacionada