sql >> Base de Datos >  >> RDS >> Database

Paquete de hospedaje en Chocolatey

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 Chocolatey se compone de los siguientes elementos principales:

  1. Un *.nuspec expediente. Este paso es obligatorio.
  2. El chocolateyInstall.ps1 archivo.
  3. 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.
  4. 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

  1. Generar un nuevo paquete :<último>
  2. El choco new -h El comando lo ayudará a configurar las opciones del paquete.
  3. Una vez que haya descubierto todas las opciones, puede proceder a generar su plantilla.
  4. Edite la plantilla en consecuencia :<último>
  5. cd package-name
  6. Edite el package-name. archivo de configuración nuspec.
  7. 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.
  8. Crear el paquete :<último>
  9. Aún en el directorio del paquete.
  10. choco pack
    • “Nombre-paquete creado con éxito.1.1.0.nupkg”.
  11. Probar el paquete :<último>
  12. Las pruebas deben realizarse en una máquina virtual.
  13. En el directorio de tu paquete, usa:
    • choco install package-name -s
      package-name es el elemento id en nuspec
  14. 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.

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 1 :Recomiendo encarecidamente realizar pruebas en una máquina virtual, no en su máquina de trabajo.

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).

Nota 1 :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