Database
 sql >> Base de Dados >  >> RDS >> Database

Pacote de Hospedagem no Chocolatey


Neste artigo, vamos dar uma breve olhada nos principais estágios da criação do pacote Chocolatey.

Pré-requisitos


Antes de começar com a criação de um pacote Chocolatey, certifique-se de que você precisa:
  • tenha o Chocolatey instalado;
  • leia o que são pacotes de chocolate? seção da documentação do Chocolatey;
  • saiba como um pacote funciona. Especificamente, você está ciente de que:

    • um pacote contém um *.nuspe arquivo c. Isso define o pacote. (Docs);
    • um pacote pode conter software incorporado;
    • um pacote pode conter um script de instalação.

Um pacote Chocolatey é composto pelos seguintes elementos principais:
  1. Um *.nuspec Arquivo. Esta etapa é obrigatória.
  2. O chocolateyInstall.ps1 arquivo.
  3. Quaisquer arquivos de aplicativos a serem incluídos (é altamente recomendável que você seja o autor neste caso ou tenha o direito de distribuir os arquivos). O *.exe os arquivos no pacote/baixados para a pasta do pacote de chocolateyInstall.ps1 terão um link para a linha de comando.
  4. chocolateyUninstall.ps1 para desinstalar seu pacote.

Eu recomendo que você dê uma olhada no vídeo que mostra a criação do pacote. Observe que o vídeo apresenta um conteúdo um pouco desatualizado do chocolateyInstall.ps1 . No momento,chocolateInstall.ps1 se parece com o seguinte:
$packageName = 'windirstat
$fileType = 'exe'
$url = 'http://prdownloads.sourceforge.net/windirstat/windirstat1_1_2_setup.exe'
$silentArgs = '/S'

Install-ChocolateyPackage $packageName $fileType $silentArgs $url

As Janelas de Chocolate gerenciador de pacotes usa a mesma infraestrutura do NuGet, que é o Visual Studio gerenciador de pacotes. Portanto, os pacotes são baseados nos mesmos princípios, inclusive aquele que estabelece que a descrição do pacote (especificação) deve ser armazenada no formato XML, conhecido como Nuspec.

O *.nuspec contém informações básicas como versão, licença, mantenedor e dependências do pacote. Chocolatey inclui funcionalidades opcionais adicionais no topo do NuGet *.nuspec Arquivo. Assim, a melhor maneira de determinar os recursos atualmente suportados é criar um pacote de teste e observar o arquivo *.nuspec gerado:
choco new testpackage

Observação: Se o seu pacote usa a funcionalidade introduzida recentemente, você pode querer incluir uma dependência indicando a versão mais baixa do Chocolatey que suporta a funcionalidade necessária. Caso contrário, a instalação pode falhar para os usuários que possuem uma versão mais antiga do Chocolatey instalada.

Você pode indicar a dependência Chocolatey como qualquer outra dependência, por exemplo:
<dependencies> 
<dependency id="chocolatey" version="0.9.8.21" /> 
</dependencies>

Guia de início rápido

  1. Gerar um novo pacote :
    • O choco new -h comando irá ajudá-lo a configurar as opções do pacote.
    • Depois de descobrir todas as opções, você pode continuar gerando seu modelo.
  2. Edite o modelo adequadamente :
    • cd package-name
    • Edite o package-name. arquivo de configuração nuspec.
    • Edite o ./tools/chocolateyInstall.ps1 script de instalação.
      • Certifique-se de ter configurado o modo silencioso do instalador. Use o Universal Silent Switch Finder, que está disponível como um pacote Choco:choco install ussf.
      • Você precisa salvar seus arquivos com a codificação de caracteres UTF–8 sem BOM.
  3. Crie o pacote :
    • Ainda no diretório de pacotes.
    • choco pack
      • "Pacote-name.1.1.0.nupkg criado com sucesso".
  4. Teste o pacote :
    • O teste deve ser realizado em uma máquina virtual.
    • Em seu diretório de pacotes, use:
      • choco install package-name -s
        package-name é o elemento id no nuspec
  5. Envie o pacote para o repositório de pacotes da comunidade Chocolatey:
    • Crie uma conta Chocolatey:
      • Cadastre-se.
    • Copie a chave de API da sua conta 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/ – o *.nupkg arquivo pode ser omitido se for o único no diretório.

Exemplos


Aqui estão alguns exemplos simples.

Observação :Os exemplos fornecidos podem exigir uma atualização de somas de verificação e conceitos de pacote mais recentes. Execute choco new ao criar pacotes, pois contém as notas mais atualizadas.

chocolateyInstall.ps1 para instalador .exe
$name = 'Package Name'
$installerType = 'exe'
$url  = 'http://path/to/download/installer.exe'
$silentArgs = '/VERYSILENT'

Install-ChocolateyPackage $name $installerType $silentArgs $url

Observação :Você precisa configurar a opção de linha de comando para tornar o instalador silencioso, por exemplo. ./VERYSILENT O nome do switch varia, dependendo do instalador.

chocolateyInstall.ps1 para instalador .msi

OBSERVAÇÃO :Você precisa manter a compatibilidade com o Posh v2. Nem todos os sistemas operacionais suportados estão no Posh v2 (nem vem OOB com o Posh v3+). A melhor prática é trabalhar com a mais ampla compatibilidade de sistemas existente.
$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

Testando seu pacote


Observação 1 :eu recomendo realizar testes em uma máquina virtual, não em sua máquina de trabalho.

Observação 2 :O teste do pacote pode ser feito da mesma forma que o verificador. Dê uma olhada no Chocolatey Verifier Testing.

Para testar o pacote recém-criado, abra um shell de linha de comando e navegue até o diretório onde o arquivo *.nupkg arquivo está localizado. Em seguida, digite o seguinte:
choco install packageName -dv -s .

Este comando instalará o pacote diretamente de sua fonte. Se você encontrar coisas que precisa corrigir, use --force (-f) para remover e reinstalar o pacote do *.nupkg atualizado . Se você estiver testando especificamente chocolateyBeforeModify.ps1 , você precisa testar os cenários de atualização e desinstalação. Você precisa instalar uma versão do pacote com este arquivo primeiro porque semelhante t0 desinstala, antes de modificar é executado a partir do pacote instalado, não do pacote que você está instalando (como chocolateyInstall.ps1 faz).

Observação 1 :Force --force (-f) deve ser usado apenas durante os testes subsequentes quando você estiver reinstalando o mesmo pacote que você alterou e não deve ser usado em cenários de uso regular. Definitivamente não deveria estar em scripts.

Observação 2 :Se você usar um traço Semver em sua versão do pacote (como 1.0.0-beta ), você precisa usar o -pre trocar. Caso contrário, você receberá a mensagem 'Não foi possível encontrar o pacote ' erros da instalação do choco. Você também pode especificar -version 1.0.0-beta para instalar a versão exata.

O caractere ponto aponta para o diretório atual. Você pode especificar vários diretórios separados por um ponto e vírgula.

Envie seu pacote


Para enviar seu pacote por push depois de compilá-lo e testá-lo, digite o seguinte:
choco push packageName.nupkg -s sourceLocation

Onde:
  • packageName.nupkg é o nome do nupkg que foi compilado com um número de versão como parte do nome do pacote;
  • sourceLocation é a localização da fonte para a qual você deseja enviar (por exemplo, -s https://chocolatey.org/ para o feed da comunidade Chocolatey).

Você precisa ter uma chave de API para o conjunto https://chocolatey.org/. Dê uma olhada no choco push.

Você também pode fazer login no chocolatey.org e enviar seu pacote de lá (não recomendado para pacotes acima de 2 MB).

Referências

Você pode usar os seguintes recursos para saber mais sobre a criação e distribuição de um pacote Chocolatey:

  • https://chocolatey.org/docs/create-packages
  • https://github.com/chocolatey-community/chocolatey-test-environm Chocolate ent