O Snapcraft é um conjunto de ferramentas empacotado sob o comando snapcraft
para facilmente criar pacotes (criativos) para várias distribuições do Linux . Esses pacotes .snap geralmente contêm aplicativos independentes, fornecem isolamento seguro e são instaláveis a partir do Ubuntu Software Store ou manualmente por meio do comando snap install <snap-name>.snap
.
Snapcraft:
- É inteligente : busca, constrói e monta diversos softwares ( partes ) de fontes remotas em um pacote final .snap, que contém todas as dependências necessárias para funcionar
-
Precisa de uma receita : ela depende de um arquivo
snapcraft.yaml
que especifica as peças e plugins necessárias para criar o pacote - É extensível com plug-ins. Embora seja fornecido com um conjunto de plugins de sistema de compilação mais comuns para atender a uma ampla gama de compilações de aplicativos, ele pode ser facilmente estendido com novos .
O tour do 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 + t e 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 distro, confira 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. Uma vez terminado, você pode instalá-lo manualmente em seu dispositivo para fins de teste ou enviá-lo para a 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 arquivo snapcraft.yaml
nesse diretório, que especifica um serviço e as peças necessárias para montar o .snap final. Você pode, opcionalmente, examiná-lo com um editor de texto.
Agora, execute o comando snapcraft
no terminal. Isso fará com que todos os subcomandos snapcraft sejam executados em sequência para construir as partes e colocar os resultados no pacote final .snap. Durante o desenvolvimento, você normalmente executaria as etapas separadamente até ter certeza de que toda a construção e montagem funcionem.
$ 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 : ele extrai o código da parte necessária do gopaste de um repositório remoto do Github
- Build : cria um local de trabalho localmente
- Estágio : após a compilação, as partes são colocadas em uma única árvore de diretórios, a "área de armazenamento temporário"
- Snap : o pacote final .snap é criado a partir das partes montadas na área de preparação
Notas:
- Você encontrará o arquivo de snap final como
gopaste_1.0_amd64.snap
(note que no meu caso eu o construí na área de trabalho amd64, por exemplo, os pacotes Raspberry Pi 2 teriam o sufixo de_armhf
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 um rápido vislumbre do que a Snapcraft pode fazer! Saiba mais sobre o Snapcraft >