O Snapcraft é um conjunto de ferramentas agrupadas sob o snapcraft
comando para criar facilmente pacotes (criados) para várias distribuições Linux . Esses pacotes .snap geralmente contêm aplicativos independentes, fornecem isolamento seguro e são instaláveis na Ubuntu Software Store ou manualmente através do snap install <snap-name>.snap
comando
Em poucas palavras, como desenvolvedor, você escreveria o código usando suas ferramentas regulares e deixaria o Snapcraft cuidar de montá-lo para distribuição. Snapcraft também se destaca no permitindo que os desenvolvedores porta seus aplicativos existentes para qualquer snap-habilitado plataforma Linux.
Snapcraft:
- É inteligente : busca, constrói e monta diversas partes de software ( partes ) de fontes remotas em um pacote .snap final, que contém todas as dependências necessárias para funcionar
- Precisa de uma receita : conta com um
snapcraft.yaml
arquivo que especifica as peças e plugins necessários para criar o pacote
- É extensível com plugins. Embora seja fornecido com um conjunto dos plug-ins de sistema de compilação mais comuns para atender a uma ampla variedade de compilações de aplicativos, ele pode ser facilmente estendido com novos .
O passeio de Snapcraft de 3 minutos
Instale o Snapcraft no Ubuntu
Você precisará do Ubuntu 16.04 LTS para usar o Snapcraft. Abra um terminal com Ctrl+ Alt+ te simplesmente instale o Snapcraft com este comando:
sudo apt install snapcraft
sudo apt install build-essential # Optional, but useful for different builds
Se você estiver usando outra distribuição, consulte as instruções de instalação alternativas>
Test-drive Snapcraft
O exemplo a seguir cria um pacote que contém um serviço que permite colar e compartilhar. Depois de concluído, você pode instalá-lo manualmente no seu dispositivo, para fins de teste ou carregá-lo na loja para outros usuários.
Primeiro, abrimos um terminal e baixamos o exemplo do repositório de exemplos:
sudo apt install git
git clone https://github.com/ubuntu-core/snapcraft.git
cd snapcraft/demos/gopaste
Observe o snapcraft.yaml
arquivo nesse diretório, que especifica um serviço e as peças necessárias para montar o .snap final. Opcionalmente, você pode examiná-lo com um editor de texto.
Agora execute o snapcraft
comando no terminal. Isso fará com que todos os subcomandos do snapcraft sejam executados em sequência para criar as peças e colocar os resultados no pacote .snap final. Durante o desenvolvimento, você normalmente executaria as etapas separadamente até ter certeza de que toda a construção e montagem funcionam.
$ snapcraft
Pulling gopaste
env GOPATH=/tmp/snapcraft/examples/gopaste/parts/gopaste/build go get -t -d github.com/wisnij/gopaste/gopasted
Building gopaste
env GOPATH=/tmp/snapcraft/examples/gopaste/parts/gopaste/build go build github.com/wisnij/gopaste/gopasted
env GOPATH=/tmp/snapcraft/examples/gopaste/parts/gopaste/build go install github.com/wisnij/gopaste/gopasted
env GOPATH=/tmp/snapcraft/examples/gopaste/parts/gopaste/build cp -a /tmp/snapcraft/examples/gopaste/parts/gopaste/build/bin /tmp/snapcraft/examples/gopaste/parts/gopaste/install
Staging gopaste
Snapping gopaste
Generated 'gopaste_1.0_amd64.snap' snap
Na saída do comando, você pode ver as etapas que o snapcraft executa para você:
- Pull : extrai o código da parte necessária do gopaste de um repositório remoto do Github
- Build : cria gopaste localmente
- Estágio : após a compilação, as partes são colocadas em uma única árvore de diretórios, a "área de preparação"
- Snap : o pacote .snap final é criado a partir das peças montadas na área de preparação
Notas:
- Você encontrará o arquivo snap final como
gopaste_1.0_amd64.snap
(observe que, no meu caso, eu o construí no meu desktop amd64, por exemplo, os pacotes Raspberry Pi 2 teriam o _armhf
sufixo da arquitetura).
- Você também pode executar cada comando individualmente:
snapcraft pull
, snapcraft build
, snapcraft stage
ousnapcraft snap
- Use
snapcraft -h
para uma rápida visão geral de todos os comandos disponíveis.
E é isso para dar uma rápida olhada no que a Snapcraft pode fazer! Saiba mais sobre o Snapcraft>
"And that's it for a quick glimpse of what Snapcraft can do!"