View a markdown version of this page

Crie e teste pacotes localmente - Deadline Cloud

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Crie e teste pacotes localmente

Antes de publicar pacotes no Amazon S3 ou configurar a CI/CD automação em seu Deadline Cloud farm, você pode criar e testar pacotes conda em sua estação de trabalho usando um canal local do sistema de arquivos. Essa abordagem permite que você repita rapidamente as receitas localmente e verifique os pacotes.

O rattler-build publish comando cria uma receita, copia o pacote resultante em um canal e indexa o canal em uma única etapa. Quando você direciona um diretório local do sistema de arquivos, rattler-build cria e inicializa o canal automaticamente se o diretório não existir.

As instruções a seguir usam a receita de amostra Blender 4.5 do repositório de amostras do Deadline Cloud no GitHub site. Você pode substituir uma receita diferente do repositório de amostras ou usar sua própria receita.

Pré-requisitos

Antes de começar, instale as seguintes ferramentas em sua estação de trabalho:

  • pixi — Um gerenciador de pacotes que você usa para instalar rattler-build e testar pacotes. Para obter instruções de instalação, consulte pixi.sh no site da Pixi.

  • rattler-build — A ferramenta de criação de pacotes usada pelas receitas de conda do Deadline Cloud. Depois de instalar o pixi, execute o seguinte comando para instalarrattler-build.

    pixi global install rattler-build
  • git — Necessário para clonar o repositório de amostras. AtivadoWindows, o Git for Windows no site do Git para Windows também fornece um bash shell, que alguns Windows exemplos de receitas exigem.

Criação e publicação de um pacote em um canal local

Nesse procedimento, você clona o repositório de amostras do Deadline Cloud e o usa rattler-build publish para criar e publicar o pacote em um canal local do sistema de arquivos.

nota

Aplicativos grandes podem exigir dezenas de GB de espaço livre em disco para o arquivo de origem, os arquivos extraídos e a saída da compilação. Certifique-se de usar um disco com espaço disponível suficiente para a saída da compilação do pacote.

Para criar e publicar um pacote em um canal local
  1. Clone o repositório de amostras do Deadline Cloud.

    git clone https://github.com/aws-deadline/deadline-cloud-samples.git
  2. Mude para o diretório conda_recipes.

    cd deadline-cloud-samples/conda_recipes
  3. Execute o comando a seguir para criar a receita Blender 4.5 e publicar o pacote em um diretório de canal local.

    Em Linux emacOS, execute o seguinte comando.

    rattler-build publish blender-4.5/recipe/recipe.yaml \ --to file://$HOME/my-conda-channel \ --build-number=+1

    Em Windows (cmd), execute o seguinte comando.

    rattler-build publish blender-4.5/recipe/recipe.yaml ^ --to file://%USERPROFILE%/my-conda-channel ^ --build-number=+1

    O rattler-build publish comando executa as seguintes ações:

    • Constrói o pacote a partir da receita.

    • Cria o diretório do canal se o diretório não existir.

    • Copia o arquivo do pacote para o canal.

    • Indexa o canal para que os gerenciadores de pacotes possam encontrar o pacote.

    Se a receita do seu pacote depender de pacotes de um canal específico, como conda-forge no site conda-forge, adicione ao comando. -c conda-forge

Sobre números de compilação

A --build-number=+1 opção escolhe automaticamente o próximo número de compilação com base no que já existe no canal de destino. A melhor prática é nunca sobrescrever um pacote em um canal. Sempre crie com um novo número de compilação se, de outra forma, o pacote tivesse o mesmo nome de arquivo. O uso --build-number=+1 alcança isso quando você cria um canal de produção ou um canal de teste que reflete a produção.

Se quiser controlar diretamente o número da compilação, você pode configurá-lo com um valor específico, como--build-number=7. Se você omitir a opção, rattler-build usará o número de compilação definido no recipe.yaml arquivo.

Para obter mais informações sobrerattler-build publish, consulte a documentação de publicação do rattler-build no site prefix.dev.

Depuração de compilações

Se uma compilação falhar, rattler-build preserva o diretório de compilação para que você possa investigar. Execute o comando a seguir para abrir um shell interativo no ambiente de construção com todas as variáveis de ambiente configuradas como estavam durante a construção.

rattler-build debug shell

No shell de depuração, você pode modificar arquivos, executar comandos de compilação individuais e adicionar dependências para isolar o problema. Para obter mais informações, consulte Debugging builds no site prefix.dev.

Testando o pacote

Depois de criar e publicar o pacote, crie um projeto pixi temporário. Use o projeto para instalar o pacote a partir do canal local e verificar se ele funciona corretamente.

Para testar o pacote
  1. Crie um diretório de teste temporário e inicialize um projeto pixi com o canal local.

    Em Linux emacOS, execute os seguintes comandos.

    mkdir package-test-env cd package-test-env pixi init --channel file://$HOME/my-conda-channel

    Em Windows (cmd), execute os seguintes comandos.

    mkdir package-test-env cd package-test-env pixi init --channel file://%USERPROFILE%/my-conda-channel
  2. Adicione o pacote ao projeto.

    pixi add blender=4.5
  3. Verifique se o pacote funciona corretamente.

    pixi run blender --version

    O pixi run comando ativa o ambiente conda para o diretório do projeto e executa o comando especificado dentro dele. O ambiente persiste no diretório do projeto, então você pode usar o mesmo pixi run comando em outros terminais. Para obter mais informações, consulte o pixi run comando no site da Pixi.

Quando estiver satisfeito com o pacote, você poderá publicá-lo em um canal conda do Amazon S3 para que os funcionários do Deadline Cloud possam instalar o pacote. Consulte Publicar pacotes em um canal conda do S3.

Removendo pacotes do canal

Evite remover pacotes dos canais que você usa para produção, porque os arquivos de bloqueio fazem referência a pacotes específicos por hash. A remoção de um pacote impede a recriação de ambientes a partir desses arquivos de bloqueio. Para canais de desenvolvimento e teste, você pode remover um pacote específico excluindo o .conda arquivo do diretório do canal e depois reindexando o canal. Primeiro, instalerattler-index.

pixi global install rattler-index

Em seguida, exclua o arquivo do pacote e reindexe o canal.

Em Linux emacOS, execute os seguintes comandos.

rm $HOME/my-conda-channel/linux-64/blender-4.5.0-hb0f4dca_1.conda rattler-index fs $HOME/my-conda-channel

Em Windows (cmd), execute os seguintes comandos.

del %USERPROFILE%\my-conda-channel\win-64\blender-4.5.0-hb0f4dca_1.conda rattler-index fs %USERPROFILE%\my-conda-channel

Os arquivos do pacote são armazenados em subdiretórios específicos da plataforma, como, ou. linux-64 win-64 osx-arm64 Liste o conteúdo desses subdiretórios para encontrar o nome de arquivo exato do pacote que você deseja remover.

Limpeza

Após o teste, você pode remover o projeto de teste e o canal local.

Para limpar os recursos de teste
  1. Remova o diretório do projeto de teste.

    Em Linux emacOS, execute o seguinte comando.

    rm -rf package-test-env

    Em Windows (cmd), execute o seguinte comando.

    rmdir /s /q package-test-env
  2. Remova o diretório local do canal conda.

    Em Linux emacOS, execute o seguinte comando.

    rm -rf $HOME/my-conda-channel

    Em Windows (cmd), execute o seguinte comando.

    rmdir /s /q %USERPROFILE%\my-conda-channel
  3. (Opcional) Remova o diretório rattler-build de saída que contém o arquivo do pacote criado.

    Em Linux emacOS, execute o seguinte comando.

    rm -rf deadline-cloud-samples/conda_recipes/output

    Em Windows (cmd), execute o seguinte comando.

    rmdir /s /q deadline-cloud-samples\conda_recipes\output

Para obter exemplos de plug-ins compatíveis com sincronização de plug-ins, consulteSincronize plug-ins com funcionários do Deadline Cloud.