Administrador de paquetes
Presentación
Un administrador de paquetes es un sistema que permite administrar el conjunto del ciclo de vida de las aplicaciones desplegadas de esta manera en el puesto de trabajo. Presente desde hace mucho tiempo en Linux, esta característica permite abarcar todas las fases de recuperación, instalación, actualización, etc., de las aplicaciones instaladas en el puesto de trabajo. Todas estas etapas se automatizan completamente: basta con lanzar la operación mediante algunos cmdlets.
Incluido con la versión 5.0 de Windows PowerShell, el administrador de paquetes aparece en los sistemas operativos Windows gracias al módulo PackageManagement (anteriormente OneGet). Este último se ocupa de todo lo relativo al SDII (Software Discovery, Installation and Inventory), y responde a las problemáticas de los profesionales de la informática y de DevOps.
1. Arquitectura
Un paquete es, en realidad, un archivo que contiene tanto la aplicación que se ha de instalar (o descargar desde una URL que se indica en el archivo) como también los procedimientos (scripts) necesarios para la instalación de la aplicación. Estos paquetes se almacenan en repositorios, accesibles generalmente desde Internet. Este es el caso, por ejemplo, de Chocolatey, un repositorio de paquetes para las plataformas de Windows. Este repositorio, basado en NuGet, está gestionado por una comunidad...
Requisitos previos y funcionamiento
Los paquetes descargados desde el repositorio Chocolatey se guardan en el puesto de trabajo en la carpeta C:\Chocolatey\lib. Cada uno de estos paquetes contiene los recursos que permitirán descargar la aplicación si fuera necesario y ejecutar su instalación en modo silencioso.
Los recursos asociados a los paquetes descargados se guardan en C:\Chocolatey\lib
La gran mayoría de los paquetes contiene scripts de PowerShell que permiten automatizar el conjunto de tareas. Es imprescindible, por lo tanto, que la política de ejecución de scripts en el puesto de trabajo sea, RemoteSigned o Unrestricted. Si la política de ejecución de scripts es Restricted, los paquetes se descargarán, pero los scripts guardados en los paquetes no podrán ejecutarse y, por lo tanto, no será posible instalar la aplicación.
Ejemplo de script presente en un paquete de software de Chocolatey
A su vez, es preciso que el puesto de trabajo tenga acceso a Internet para descargar los paquetes desde los repositorios, y también desde los distintos fabricantes. Las aplicaciones se descargarán generalmente desde estos últimos.
Descripción de los cmdlets y demostración
En esta sección veremos el conjunto de cmdlets de Windows PowerShell que permiten interactuar con el administrador de paquetes:
-
Install-PackageProvider: permite registrar un proveedor de paquetes y su repositorio.
-
Get-PackageProvider: enumera el conjunto de proveedores de paquetes registrados.
-
Find-Package: permite buscar un paquete en los proveedores de paquetes inscritos.
-
Install-Package: lanza la instalación de la aplicación o del paquete correspondiente.
-
Uninstall-Package: lanza la desinstalación de la aplicación o del paquete.
-
Get-Package: enumera el conjunto de programas y paquetes instalados.
1. Agregar un proveedor de paquetes
Si bien por defecto el proveedor de paquetes Chocolatey no está instalado en Windows PowerShell, sí está referenciado como tal en una lista que el intérprete de comandos recupera de Internet. Para instalar un proveedor de paquetes a través de Windows PowerShell, hay que usar el cmdlet Install-PackageProvider. He aquí sus parámetros:
Parámetro |
Descripción |
-Force |
Fuerza la instalación del proveedor de paquetes sin solicitar confirmación. |
-Name<String[]> |
Nombre del proveedor de paquetes que se ha de registrar. |
Ejemplo: inscribir el proveedor de paquetes Chocolatey
PS C:\Windows\system32> Install-PackageProvider -Name Chocolatey -Force
Name Version Source Summary
---- ------- ------ -------
chocolatey 2.8.5.130 https://onege... ChocolateyProtot
Si le proveedor NuGet no está preinstalado en el puesto de trabajo, entonces Windows PowerShell se encargará de hacerlo. Se trata de un requisito previo para la instalación del proveedor Chocolatey.
Windows PowerShell se encarga entonces de descargar los archivos necesarios...
Escenarios de uso
Si bien resulta fácil imaginar la implementación del administrador de paquetes de Windows en un entorno de helpdesk, también puede resultar muy práctico en otro escenario: la creación de imágenes de Windows.
Las imágenes de Windows permiten desplegar fácilmente los sistemas operativos Windows en los puestos de trabajo. Este método de despliegue se realiza generalmente a través de la red, con ayuda de un servidor PXE (Preboot Execution Environment) o WDS (Windows Deployment Services).
Para optimizar el proceso de preparación de los puestos de trabajo y ahorrar tiempo, las imágenes de Windows contienen, en general, un conjunto de aplicaciones, de configuraciones y de actualizaciones de Windows instaladas previamente antes de la creación de la imagen.
Así, algunas empresas crean una o varias imágenes de Windows en función de sus necesidades o clientes. Sin embargo, la creación de una imagen o su actualización puede resultar molesta. Es aquí donde interviene el administrador de paquetes: toda la parte de descarga de aplicaciones y su instalación puede automatizarse completamente por línea de comandos… ¡y con scripts!
Para hacernos una idea del conjunto de etapas de creación de una imagen de Windows y en qué momento entra en juego el administrador de paquetes, he aquí un esquema:...