El gestor de paquetes llega a Windows

Buenas, los usuario de Linux conocen de sobra los gestores de paquetes que acompañan a las distintas versiones de Linux, ya sea Ubuntu, Debian, RedHat, etc. La importancia de este elemento de software que acaba de aparecer en Windows en una versión más estable, probablemente no tenga gran interés en un usuario doméstico, aunque si en uno empresarial y principalmente en el hecho de la distribución de software.

Pensemos que necesitamos que todos los usuarios de nuestra empresa usen VLC, el software de multimedia conocido tanto en entorno Linux como Windows, que tiene la ventaja de ser muy rápido y simple.  Pues para poder distribuirlo tendríamos que inslalarlo de forma desatendida, es decir sin que el usuario tenga que hacer nada, en esencia como cuando se actualiza un parche de Windows.

Para ésta distribución podemos usar las políticas de windows, si hay un controlador de dominio en la red, o bien podríamos apañar alguna suerte de inicio de sesión que ejecutase un comando en el arranque de los ordenadores. Obviamente no disponemos de software empresarial, tipo SCCM o BigFix por lo que la distribución es un problema.

¿Que es un gestor de paquetes y en que nos ayuda?

Como nos dice la Wikipedia

Un sistema de gestión de paquetes, también conocido como gestor de paquetes, es una colección de herramientas que sirven para automatizar el proceso de instalación, actualización, configuración y eliminación de paquetes de software. El término se usa comúnmente para referirse a los gestores de paquetes en sistemas Unix-like, especialmente GNU/Linux, ya que se apoyan considerablemente en estos sistemas de gestión de paquetes.

En estos sistemas, el software se distribuye en forma de paquetes, frecuentemente encapsulado en un solo fichero. Estos paquetes incluyen otra información importante, además del software mismo, como pueden ser el nombre completo, una descripción de su funcionalidad, el número de versión, el distribuidor del software, la suma de verificación y una lista de otros paquetes requeridos para el correcto funcionamiento del software. Esta metainformación se introduce normalmente en una base de datos de paquetes local.


Es decir es una herramienta que nos permitirá resolver el problema de instalar software, basada en un repositorio centralizado de software y como podemos ver nos ayudaría a realizar el despliegue masivo de software.

Aquí es donde llega WinGet que el gestor de paquetes de Microsoft disponible desde la actualización de Marzo del 2020, aunque no es el único gestor de paquetes para Windows pues anteriormente existía Chocolatey, si es el soportado por Microsoft y por tanto el que debiéramos de usar por las integraciones futuras. WinGet es software un software de código abierto disponible desde el repositorio de GitHub.


¿Como lo instalamos?

Descargamos el paquete desde https://github.com/microsoft/winget-cli/releases  que es el repositorio de GitHub del proyecto, que seguramente en el futuro se incluya como parte de la distribución de windows. Por ahora los pasos son muy simples, salvo que lo que descargamos no es un fichero .exe o .com, sino que una .appxbundle que es la extensión asociada a los paquetes de software en Windows 10.

El siguiente video os muestra lo simple del proceso:




¿Y como lo usamos?

Bueno, la forma de usarlo es mas que simple pues abrimos una ventana de comandos y podemos dar WinGet search <el nombre de lo que buscamos>  y luego Winget Install <el nombre de la aplicación>

En esencia lo que muestra el video, es decir WinGet show para ver todos los paquetes disponibles, search para buscar un paquete e Install para instalar, muy simple:



Finalmente, si usamos WinGet search Browser se nos muestran todos los navegadores de Internet disponibles para instalar en nuestro Windows, por ejemplo Brave



O podemos crear un scripts en lotes o scripts de powershell para instalar, por ejemplo powertoys y el terminal


@echo off  

Echo Install Powertoys and Terminal  

REM Powertoys  

winget install Microsoft.Powertoys  

if %ERRORLEVEL% EQU 0 Echo Powertoys installed successfully.  

REM Terminal  

winget install Microsoft.WindowsTerminal  

if %ERRORLEVEL% EQU 0 Echo Terminal installed successfully. 

%ERRORLEVEL%


¿Opciones de instalación?

Cuando instalamos lo más probable es que la instalación intente interactuar con el usuario




Las opciones para instalar nos permiten eliminar esa interacción:


En este caso lo más divertido es ver un vídeo y aquí la clave es hacer la instalación abriendo el powershell o el cmd con permisos de administración, de esta forma podemos hacer instalación desatendida.



y la opción desatendida




¿Y porque no instalamos software con la tienda de aplicaciones de Microsoft?

Buen en esencia, la principal diferencia es que al ser un gestor de paquetes por comandos nos permite la automatización de la distribución de software y por otro lado, el número de aplicaciones disponibles a través del gestor WinGet es mucho mayor.


Bueno, espero que este tema os fuera de interés ya que son los primeros pasos hacia potenciar la instalación de aplicaciones con la simpleza de la linea de comandos.


Saludos,

Pedro