¿Cómo le digo a chocolatey que un programa se actualizó solo?

¿Cómo le digo a chocolatey que un programa se actualizó solo?

Instalé un programa (Paint.Net) con Choco. En ese momento, la versión era 3.13, pero Paint.Net se actualizó a 3.15.

Sin embargo, cuando ejecuto choco outdated, todavía piensa que 3.13 está instalado y quiere (re)instalar 3.15.

¿Hay alguna manera de sincronizar lo que hay en la base de datos local de choco de los paquetes instalados con la versión actual?

Esta es la versión gratuita de choco.

Respuesta1

Esta opción existe en chocolatey, pero sólo en la versión paga. Se llama el Comando de sincronización. Puede encontrar más información sobre su uso en el enlace anterior. Puede encontrar un vídeo que describe el comando en YouTube.

Chocolatey también puede realizar esta sincronización automáticamente, como se describe en
Sincronizar con programas y funciones (solo ediciones con licencia).


Se dice que un administrador de programas gratuito para chocolatey que realiza sincronización es Implementar, que podrías probar.

En caso de necesidad, si no desea que chocolatey actualice ciertos paquetes, ignorándolos, puede usar el comando choco pin.

Para que Chocolatey conozca las aplicaciones instaladas sin ejecutar los scripts de instalación, utilice el parámetro -n, --skippowershell, --skip-powershell, --skipscripts, (todos ellos son el mismo modificador). Ver --skip-scripts--skip-automation-scriptsCómo instalar o actualizar un paquete sin ejecutar scripts.


También puede conectar chocolatey con la contraparte de PowerShell de Microsoft para Linux apt-get: OneGet, ahora renombrado a Gestión de paquetes. Package Manager es el nombre de Microsoft, mientras que el proyecto de código abierto subyacente todavía se llama OneGet. Luego podrá utilizar PowerShell como interfaz única tanto para Windows como para Chocolatey.

Puede leer sobre OneGet en el blog de Microsoft.
Novedades de PowerShell: Introducción a OneGet en una línea con Windows PowerShell 5.0.

OneGet es ungerente de administradores de paquetesy admite chocolatey como proveedor de paquetes. Puede instalarlo en PowerShell usando el Comando Buscar-PackageProvider:

ingrese la descripción de la imagen aquí

Luego podrá utilizar el Comando Install-PackageProvider para configurar la interfaz color chocolate (aunque atención, todavía es un prototipo, por lo que tendrás que tantear):

Install-PackageProvider chocolatey -Scope CurrentUser

Aquí hay un ejemplo de PowerShell sobre cómo instalar Notepad++ desde la galería chocolatey:

ingrese la descripción de la imagen aquí

Puede encontrar más información en las siguientes referencias:

Respuesta2

Esta respuesta se basa en el resultado del siguiente comando:

choco outdated

Salida del comando choco obsoleto

Como se mencionó en otra respuesta, no existe una forma automática en la versión de código abierto de Chocolatey de actualizar la versión del paquete Chocolatey, según la versión de la aplicación que se actualiza de otra manera. En una versión con licencia de Chocolatey, estocaracterísticaestá disponible.

Si desea realizar la instalación inicial de una aplicación con Chocolatey, es decir

choco install paint.net

y luego dejar que la aplicación se actualice sola, entonces el mejor consejo sería fijar el paquete usando elalfiler dominio. Esto se haría con el siguiente comando:

choco pin add -n="paint.net"

Esto significará que cuando ejecute el choco upgrade allcomando, suponiendo que lo esté utilizando, este paquete ya no se considerará para una actualización, incluso si se encuentra una nueva versión. Además, el resultado del choco outdatedcomando cambiará a lo siguiente:

Salida de choco desactualizada después del comando pin

Si REALMENTE desea eliminar la entrada del choco outdatedinforme, pero también desea confiar en la capacidad de la aplicación para actualizarse, entonces debería poder ejecutar el siguiente comando:

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

Esto le indica a Chocolatey que actualice el paquete a la versión disponible actualmente, pero también evitará la ejecución del archivo chocolateyInstall.ps1 (y otros archivos), lo que significará que el instalador de la aplicación nunca se ejecutará. Como se muestra aquí:

Salida del comando de actualización de choco al omitir scripts de automatización

Después de ejecutar el comando anterior, la salida del choco outdatedcomando se convierte en:

Salida de choco desactualizada después de la actualización

información relacionada