O que é o Snapcraft?

15

Eu tenho tentado testar o núcleo do Ubuntu em um dispositivo Raspberry Pi 2, e eu ouvi que posso usar o Snapcraft para fazer desenvolvimento nele. Agora ouvi dizer que os snaps estão disponíveis no desktop e no servidor para o Ubuntu 16.04 e outras distros.

O que é o Snapcraft e como posso usá-lo?

    
por David Planella 16.10.2015 / 11:06

1 resposta

25

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 .

Em poucas palavras, como desenvolvedor, você escreveria código usando suas ferramentas comuns e deixaria a Snapcraft se encarregar de montá-lo para distribuição. O Snapcraft também se destaca por permitir aos desenvolvedores portar seus aplicativos existentes para qualquer plataforma Linux ativada por 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ê:

  1. Pull : ele extrai o código da parte necessária do gopaste de um repositório remoto do Github
  2. Build : cria um local de trabalho localmente
  3. 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"
  4. 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 ou snapcraft 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 >

    
por David Planella 16.10.2015 / 11:06