Primeiros passos • Configuração • Comunidade • Contribuições • Guia de empacotamento
Spack é um gerenciador de pacotes multiplataforma que cria e instala múltiplas versões e configurações de software. Funciona em Linux, macOS, Windows e muitos supercomputadores. Spack não é destrutivo: instalar uma nova versão de um pacote não interrompe as instalações existentes, portanto, muitas configurações do mesmo pacote podem coexistir.
Spack oferece uma sintaxe simples de “especificação” que permite aos usuários especificar versões e opções de configuração. Os arquivos do pacote são escritos em Python puro e as especificações permitem que os autores do pacote escrevam um único script para muitas compilações diferentes do mesmo pacote. Com o Spack, você pode construir seu software da maneira que desejar.
Consulte a visão geral dos recursos para obter exemplos e destaques.
Para instalar o spack e seu primeiro pacote, certifique-se de ter Python e Git. Então:
$ git clone -c feature.manyFiles=true --depth=2 https://github.com/spack/spack.git
$ cd spack/bin
$ ./spack install zlib
Dica
-c feature.manyFiles=true
melhora o desempenho do git em repositórios com mais de 1.000 arquivos.
--depth=2
limpa o histórico do git para reduzir o tamanho da instalação do Spack.
A documentação completa está disponível ou execute spack help
ou spack help --all
.
Para obter uma folha de dicas sobre a sintaxe do Spack, execute spack help --spec
.
Mantemos um tutorial prático . Abrange uso básico a avançado, empacotamento, recursos de desenvolvedor e grandes implantações de HPC. Você pode fazer todos os exercícios em seu próprio laptop usando um contêiner Docker.
Sinta-se à vontade para usar esses materiais para ensinar os usuários da sua organização sobre o Spack.
Spack é um projeto de código aberto. Perguntas, discussões e contribuições são bem-vindas. As contribuições podem ser desde novos pacotes até correções de bugs, documentação ou até mesmo novos recursos básicos.
Recursos:
@mention
! Contribuir para o Spack é relativamente fácil. Basta nos enviar uma solicitação pull. Ao enviar sua solicitação, develop
o branch de destino no repositório Spack.
Seu PR deve passar nos testes de unidade e de documentação do Spack e deve ser compatível com PEP 8. Aplicamos essas diretrizes com nosso processo de CI. Para executar esses testes localmente e obter dicas úteis sobre git, consulte nosso Guia de Contribuição.
O ramo develop
do Spack tem as contribuições mais recentes. As solicitações pull devem ter como alvo develop
, e os usuários que desejam as versões mais recentes dos pacotes, recursos, etc., podem usar develop
.
Para implantações de sites multiusuários ou outros casos de uso que precisam de instalações de software muito estáveis, recomendamos o uso das versões estáveis do Spack.
Cada série de lançamentos do Spack também possui um branch correspondente, por exemplo releases/v0.14
possui versões 0.14.x
do Spack e releases/v0.13
possui versões 0.13.x
Fazemos backport de correções de bugs importantes para essas ramificações, mas não avançamos as versões dos pacotes nem fazemos outras alterações que mudariam a maneira como o Spack concretiza dependências dentro de uma ramificação de lançamento. Portanto, você pode basear sua implantação do Spack em um branch de lançamento e git pull
para obter correções, sem a rotatividade de pacotes que vem com develop
.
A versão mais recente está sempre disponível com a tag releases/latest
.
Consulte a documentação sobre lançamentos para obter mais detalhes.
Observe que a Spack possui um Código de Conduta . Ao participar da comunidade Spack, você concorda em cumprir suas regras.
Muito obrigado aos colaboradores do Spack.
Spack foi criado por Todd Gamblin, [email protected].
Se você estiver fazendo referência ao Spack em uma publicação, cite o seguinte artigo:
No GitHub, você pode copiar esta citação no formato APA ou BibTeX através do botão “Citar este repositório”. Ou veja os comentários em CITATION.cff
para o BibTeX bruto.
Spack é distribuído sob os termos da licença MIT e da licença Apache (versão 2.0). Os usuários podem escolher qualquer uma das licenças, a seu critério.
Todas as novas contribuições devem ser feitas sob as licenças MIT e Apache-2.0.
Consulte LICENSE-MIT, LICENSE-APACHE, COPYRIGHT e NOTICE para obter detalhes.
Identificador de licença SPDX: (Apache-2.0 OU MIT)
LLNL-CÓDIGO-811652