En este artículo, analizaremos brevemente las etapas clave de la creación de paquetes Chocolatey.
Requisitos
Antes de comenzar con la creación de un paquete Chocolatey, asegúrese de que necesita:
- tener Chocolatey instalado;
- leer ¿Qué son los paquetes de chocolate? sección de la documentación de Chocolatey;
- saber cómo funciona un paquete. En concreto, usted es consciente de que:
- un paquete contiene un *.nuspe archivo c. Esto define el paquete. (Documentos);
- un paquete puede contener software integrado;
- un paquete puede contener un script de instalación.
- un paquete contiene un *.nuspe archivo c. Esto define el paquete. (Documentos);
Un paquete Chocolatey se compone de los siguientes elementos principales:
- Un *.nuspec expediente. Este paso es obligatorio.
- El chocolateyInstall.ps1 archivo.
- Cualquier archivo de aplicación que deba incluirse (se recomienda enfáticamente que usted sea el autor en este caso o que tenga el derecho de distribuir archivos). El *.exe los archivos en el paquete/descargados a la carpeta del paquete desde chocolateyInstall.ps1 tendrán un enlace a la línea de comando.
- chocolateyUninstall.ps1 para desinstalar su paquete.
Te recomiendo que eches un vistazo al vídeo que muestra la creación del paquete. Tenga en cuenta que el video presenta contenido un poco desactualizado de chocolateyInstall.ps1 . Por el momento, chocolateyInstall.ps1 se parece a lo siguiente:
$packageName = 'windirstat $fileType = 'exe' $url = 'http://prdownloads.sourceforge.net/windirstat/windirstat1_1_2_setup.exe' $silentArgs = '/S' Install-ChocolateyPackage $packageName $fileType $silentArgs $url
Las Ventanas de Chocolate el administrador de paquetes usa la misma infraestructura que NuGet, es decir, Visual Studio gerente de empaquetación. Por lo tanto, los paquetes se basan en los mismos principios, incluido el que establece que la descripción del paquete (especificación) debe almacenarse en formato XML, conocido como Nuspec.
El *.nuspec El archivo contiene información básica como la versión, la licencia, el mantenedor y las dependencias del paquete. Chocolatey incluye funcionalidad opcional adicional en la parte superior de NuGet *.nuspec expediente. Por lo tanto, la mejor manera de determinar las funciones admitidas actualmente es crear un paquete de prueba y mirar el archivo *.nuspec generado:
choco new testpackage
Nota: Si su paquete utiliza la funcionalidad introducida recientemente, es posible que desee incluir una dependencia que indique la versión más baja de Chocolatey que admita la funcionalidad requerida. De lo contrario, la instalación podría fallar para los usuarios que tengan instalada una versión anterior de Chocolatey.
Puede indicar la dependencia Chocolatey como cualquier otra dependencia, por ejemplo:
<dependencies> <dependency id="chocolatey" version="0.9.8.21" /> </dependencies>
Guía de inicio rápido
- Generar un nuevo paquete :<último>
- El
choco new -h
El comando lo ayudará a configurar las opciones del paquete. - Una vez que haya descubierto todas las opciones, puede proceder a generar su plantilla.
- Edite la plantilla en consecuencia :<último>
cd package-name
- Edite el
package-name.
archivo de configuración nuspec. - Edite
./tools/chocolateyInstall.ps1
instalar script.- Asegúrese de haber configurado el modo silencioso del instalador. Utilice Universal Silent Switch Finder, que está disponible como paquete de Choco:
choco install ussf.
- Debe guardar sus archivos con la codificación de caracteres UTF–8 sin BOM.
- Asegúrese de haber configurado el modo silencioso del instalador. Utilice Universal Silent Switch Finder, que está disponible como paquete de Choco:
- Crear el paquete :<último>
- Aún en el directorio del paquete.
choco pack
- “Nombre-paquete creado con éxito.1.1.0.nupkg”.
- Probar el paquete :<último>
- Las pruebas deben realizarse en una máquina virtual.
- En el directorio de tu paquete, usa:
choco install package-name -s
package-name
es el elemento id en nuspec
- Empujar el paquete al repositorio de paquetes de la comunidad Chocolatey:
- Obtenga una cuenta Chocolatey:
- Registrarse.
- Copie la clave API de su cuenta de Chocolatey.
choco apikey -k [API_KEY_HERE] -source https://push.chocolatey.org/
choco push package-name.1.1.0.nupkg -s https://push.chocolatey.org/
– el *.nupkg El archivo se puede omitir si es el único en el directorio.
- Obtenga una cuenta Chocolatey:
Ejemplos
Aquí hay algunos ejemplos simples.
Nota :Los ejemplos proporcionados pueden requerir una actualización de las sumas de verificación y conceptos de paquetes más nuevos. Ejecute choco new
al crear paquetes, ya que contiene las notas más actualizadas.
chocolateyInstall.ps1 para el instalador .exe
$name = 'Package Name' $installerType = 'exe' $url = 'http://path/to/download/installer.exe' $silentArgs = '/VERYSILENT' Install-ChocolateyPackage $name $installerType $silentArgs $url
Nota :debe configurar el interruptor de la línea de comandos para que el instalador sea silencioso, p. ./VERYSILENT
El nombre del interruptor varía según el instalador.
chocolateyInstall.ps1 para el instalador .msi
NOTA :Debe mantener la compatibilidad con Posh v2. No todos los sistemas operativos compatibles están en Posh v2 (ni vienen OOB con Posh v3+). La mejor práctica es trabajar con la mayor compatibilidad de sistemas que existe.
$packageName = 'Package Name' $installerType = 'msi' $url = 'http://path/to/download/installer_x86.msi' $url64 = 'http://path/to/download/installer_x64.msi' $silentArgs = '/quiet' $validExitCodes = @(0,3010) Install-ChocolateyPackage $packageName $installerType $silentArgs $url $url64 -validExitCodes $validExitCodes
Prueba de su paquete
Nota 2 :La prueba del paquete se puede hacer de la misma manera que el verificador. Eche un vistazo a las Pruebas de verificación de Chocolatey.
Para probar el paquete recién creado, abra un shell de línea de comandos y navegue hasta el directorio donde se encuentra *.nupkg. se encuentra el archivo. Luego escriba lo siguiente:
choco install packageName -dv -s .
Este comando instalará el paquete directamente desde su fuente. Si encuentra cosas que necesita arreglar, use --force (-f)
para eliminar y reinstalar el paquete desde el *.nupkg actualizado . Si está probando específicamente chocolateyBeforeModify.ps1 , debe probar los escenarios de actualización y desinstalación. Primero debe instalar una versión del paquete con este archivo porque es similar a la desinstalación, antes de modificar se ejecuta desde el paquete instalado, no desde el paquete que está instalando (como chocolateyInstall.ps1 lo hace).
Force --force (-f)
debe usarse solo durante las pruebas posteriores cuando está reinstalando el mismo paquete que ha cambiado y no debe utilizarse en escenarios de uso regular. Definitivamente no debería estar en los guiones.
Nota 2 :si usa un guión de Semver en la versión de su paquete (como 1.0.0-beta ), necesita usar -pre
cambiar. De lo contrario, obtendrá el mensaje 'No se pudo encontrar el paquete ' errores de la instalación de choco. También puede especificar -version 1.0.0-beta
para instalar la versión exacta.
El carácter de punto apunta al directorio actual. Puede especificar varios directorios separados por un punto y coma.
Impulse su paquete
Para enviar su paquete después de haberlo compilado y probado, escriba lo siguiente:
choco push packageName.nupkg -s sourceLocation
donde:
packageName.nupkg
es el nombre del nupkg que se creó con un número de versión como parte del nombre del paquete;sourceLocation
es la ubicación de la fuente a la que desea enviar (por ejemplo,-s https://chocolatey.org/
para el feed de la comunidad de Chocolatey).
Debe tener una clave API para el conjunto https://chocolatey.org/. Echa un vistazo a choco push.
También puede iniciar sesión en chocolatey.org y cargar su paquete desde allí (no recomendado para paquetes de más de 2 MB).
Referencias
Puede utilizar los siguientes recursos para obtener más información sobre la creación y distribución de un paquete Chocolatey:
- https://chocolatey.org/docs/create-packages
- https://github.com/chocolatey-community/chocolatey-test-environm chocolateado entrar