Ha pasado un año desde el lanzamiento oficial de winget o Windows Package Manger, el primer gestor de paquetes de Windows 10, una herramienta que nos permite usar comandos desde la terminal para instalar aplicaciones de forma rápida y sencilla, al más puro estilo de tu distro Linux favorita.
Winget es una herramienta open source cuyo código está disponible en GitHub, y le meta para mayo de 2021 era lanzar oficialmente la versión 1.0 y lo han logrado. Aunque el proyecto sigue estando en versión preliminar, es mucho lo que ha cambiado y mejorado en este tiempo, especialmente a nivel del aumento de la cantidad de comandos disponibles.
Instalar y actualizar todas tus apps es más fácil que nunca

De los meros seis comandos con los que se lanzó winget inicialmente, hemos pasado a 14 opciones diferentes con la versión 1.0, incluyendo los comandos "upgrade
", "list
", y "uninstall
" que permiten actualizar, listar o desinstalar todas las apps automáticamente.
También tenemos opciones comandos como "settings
" para mostrar la configuración abriendo el archivo .JSON, donde puedes hacer cosas tan tontas como cambiar la barra de progreso por un arcoíris, hasta cosas más serias como desactivar la telemetría.
Otros comandos interesantes con Export/Import
para exportar o importar la lista de aplicaciones instaladas. El repositorio oficial también ha crecido enormemente y además lleva tiempo incluyendo incluso apps de la Microsoft Store. Con el comando winget search
puedes ver la larga lista de todos los paquetes disponibles.
Cómo instalar y usar winget

El único requisito actual para usar winget es contar con Windows 10 1809 o una versión posterior. Lo siguiente es descargar el paquete App Installer desde GitHub. Lo consigues en este enlace y el nombre de la versión 1.0 es Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.appxbundle
.
Ya sea que vas a actualizar a la versión 1.0 o a instalar por primera vez, el proceso es igual de sencillo, solo debes continuar la instalación del paquete y una vez finalizado, podrás usar winget desde la terminal de tu preferencia: Windows PowerShell, el Símbolo del sistema, la nueva Terminal de Windows, o el cliente de terceros de tu elección.

Para mostrar los comandos disponibles, una vez abierta la terminal, solo tienes que escribir "winget
". Instalar una aplicación es tan simple como escribir "winget install nombredelpaquete
". Por ejemplo, puedes usar "winget install vlc
" para instalar el reproductor VLC.
Si luego lo quieres actualizar desde la terminal, puedes usar el comando "upgrade
". Si has instalado múltiples apps con winget, puedes usar el comando "winget upgrade
" para mostrar todas las apps que tienen versiones nuevas disponibles.
Puedes usar "winget upgrade --all
" para actualizarlas todas a la vez, o puedes elegir solo una aplicación que actualizar, por ejemplo: "winget upgrade vlc
". Obviamente tendrás que presionar los correspondientes "siguientes" cuando el programa esté instalando una nueva versión, pero te ahorra tener que ir a buscar tú mismo la última versión a mano.
Si no quieres lidiar con los comandos tú mismo, o navegar por la interminable y nada visual lista de paquetes, mi recomendación es usar Winstall, la interfaz gráfica no oficial de Winget para elegir programas en un click desde una bonita web, y luego instalarlos en Windows 10 con Winget con la misma rapidez y automatización, pero con mucho menos trabajo.
Ver 4 comentarios
4 comentarios
James Russell
Gestor de paquetes, gestor de paquetes… no es. Al menos en lo que para mí significa el término.
Puede instalar programas (✓), puede actualizarlos a una nueva versión publicada (✓), puede mostrar cuáles fueron instalados por él (✓) y puede desinstalarlos también (✓); como Chocolatey o incluso Ninite. Bajo esas métricas sí, técnicamente es un gestor de programas, usa los instaladores de las aplicaciones para instalarlas silenciosamente y desinstalarlas; pero se queda corto.
En Windows las cosas no suelen ser tan sencillas, los instaladores de los programas distan mucho de simplemente copiar sus archivos en X carpeta y poner unos accesos directos en el menú. Tienen opciones durante la instalación, que influyen en qué partes del programa se instalan (y quizás no te interese tenerlas), dónde (si es para todos o solo para el usuario), a veces crean asociaciones para tipos de archivos (y eso se registra en el registro, valga la redundancia), pueden incluso instalar controladores (i.e., más cambios en el registro).
Todas esas cosas no se tienen en cuenta, no hay control real de qué archivos se crean, qué servicios se crean, qué claves se tocan y probablemente más cosas que se me escapen ahora mismo.
Hablo sin conocimiento de causa, pero intuyo que quedarán cosas instaladas que no se quieran tras la desinstalación de algunos programas y se instalarán cosas que no se quieran con otros.
———————
Se me ocurren 2 soluciones en Windows concretamente:
- La primera pasa por interceptar llamadas al sistema, habría que supervisar todas las llamadas relevantes (e.g., CreateFile, CopyFile, CreateHardLink, RtlCreateRegistryKey, …) para monitorizar cada instalador y crear un registro de qué cambios se producen durante una instalación para asegurarse que tras su desinstalación se deshacen; porque os aseguro que la mayoría de los (des)instaladores no lo hacen.
No es trivial, por ejemplo, para aquellas que se instalen a nivel de sistema se necesitaría un componente que ejecute elevado. Para aplicaciones más complejas como software anti-malware o aplicaciones de virtualización más locura, y eso si sus instaladores no detectan que están siendo monitorizados y directamente deciden lanzar un error y no instalar (que los hay, por algún motivo :D).
Pero es una solución, al menos para todo lo que se cambie al ejecutar el instalador, al ejecutar la aplicación en sí ya sabe Dios. Si es dentro del ámbito del usuario, bueno, ni tan mal, pero si ejecuta elevada podría escribir y tocar cosas en casi cualquier lado (hay más niveles por encima de "administrador").
- La segunda solución pasa por homogeneizar la forma en la que se instalan las aplicaciones en Windows, desechar esos instaladores y hacer una serie de definiciones (e.g., en un XML, JSON, etc.) sobre qué cosas se tienen que hacer para instalar la aplicación. Dónde copiar qué archivos, cuáles bibliotecas registrar, qué claves del registro tocar, etc. (y me estoy saltando la parte de la personalización de la instalación, se instalaría todo, o buscar alguna forma de especificar qué cosas serían opcionales)
Ese archivo de definiciones sería lo que usaría WinGet para instalar y llevar un control real sobre las aplicaciones instaladas y sus archivos asociados. Pretty much como se hace en Linux con los distintos formatos de paquetes.
———————
Tal cuál está ahora mismo WinGet, no aporta nada que no existiese ya yo creo, no cambia la forma en la que instalo cosas en Windows a corto plazo y veremos a medio o a largo.
Usuario desactivado
Parece un retroceso de 30 años o mas, al estilo de instalar programas en DOS. Lo excelente de Windows son los instaladores en modo grafico. Lo que mas me molesto de Linux es que algo tan basico como instalar cualquier soft requiere comandos cripticos y feecuentemente falla por falta de alguna biblioteca.