Co to jest Snapcraft?

16

Próbowałem zgrabnego rdzenia Ubuntu na urządzeniu Raspberry Pi 2 i słyszałem, że mogę używać Snapcraft do programowania na nim. Teraz słyszę, że przystawki są dostępne na pulpicie i serwerze dla Ubuntu 16.04 i innych dystrybucji.

Co to jest Snapcraft i jak mogę go używać?

David Planella
źródło

Odpowiedzi:

27

Snapcraft to zestaw narzędzi dołączonych do snapcraftpolecenia, aby łatwo tworzyć (tworzyć) pakiety dla wielu dystrybucji Linuksa . Te pakiety .snap zazwyczaj zawierają samodzielne aplikacje, zapewniają bezpieczną izolację i można je zainstalować albo ze sklepu Ubuntu Software Store, albo ręcznie za pomocą snap install <snap-name>.snappolecenia.

Krótko mówiąc, jako programista piszesz kod za pomocą zwykłych narzędzi i pozwalasz Snapcraft zająć się jego skompletowaniem do dystrybucji. Snapcraft wyróżnia się także tym, że umożliwia programistom przenoszenie istniejących aplikacji na dowolną platformę Linux z obsługą Snap.

Snapcraft:

  • Jest inteligentny : pobiera, buduje i montuje różne elementy oprogramowania ( części ) ze zdalnych źródeł w końcowy pakiet .snap, który zawiera wszystkie zależności potrzebne do działania
  • Potrzebuje przepisu : opiera się na snapcraft.yamlpliku, który określa części i wtyczki wymagane do utworzenia pakietu
  • Jest rozszerzalny za pomocą wtyczek. Chociaż jest dostarczany z zestawem najpopularniejszych wtyczek systemu kompilacji, aby obsłużyć szeroki zakres kompilacji aplikacji, można go łatwo rozszerzyć o nowe .

3-minutowa wycieczka po Snapcraft

Zainstaluj Snapcraft na Ubuntu

Do korzystania ze Snapcraft będziesz potrzebować Ubuntu 16.04 LTS. Otwórz terminal za pomocą Ctrl+ Alt+ ti po prostu zainstaluj Snapcraft za pomocą tego polecenia:

sudo apt install snapcraft
sudo apt install build-essential  # Optional, but useful for different builds

Jeśli używasz innej dystrybucji, sprawdź alternatywne instrukcje instalacji>

Przetestuj Snapcraft

Poniższy przykład przedstawia pakiet zawierający usługę, która umożliwia wklejanie i udostępnianie. Po zakończeniu możesz zainstalować go ręcznie na zgrabnym urządzeniu w celach testowych lub przesłać do Sklepu innym użytkownikom.

Przede wszystkim otwieramy terminal i pobieramy przykład z repozytorium przykładów:

sudo apt install git
git clone https://github.com/ubuntu-core/snapcraft.git
cd snapcraft/demos/gopaste

Zwróć uwagę na snapcraft.yamlplik w tym katalogu, który określa usługę i części wymagane do złożenia końcowego pliku .snap. Opcjonalnie możesz to sprawdzić za pomocą edytora tekstu.

Teraz uruchom snapcraftpolecenie na terminalu. Spowoduje to, że wszystkie podkomendy snapcraft będą działać po kolei, aby zbudować części i umieścić wyniki w ostatecznym pakiecie .snap. Podczas programowania kroki należy uruchamiać osobno, dopóki nie masz pewności, że cała kompilacja i montaż działają.

$ 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 wyjściu polecenia możesz zobaczyć kroki, które wykonuje snapcraft:

  1. Wyciągnij : pobiera kod z wymaganej części gopaste ze zdalnego repozytorium Github
  2. Kompilacja : buduje gopaste lokalnie
  3. Etap : po kompilacji części są umieszczane w jednym drzewie katalogów, „obszarze przejściowym”
  4. Snap : ostateczny pakiet .snap jest tworzony ze zmontowanych części w obszarze przemieszczania

Uwagi:

  • Znajdziesz plik końcowy jako gopaste_1.0_amd64.snap(zauważ, że w moim przypadku zbudowałem go na pulpicie amd64, np. Pakiety Raspberry Pi 2 miałyby _armhfsufiks architektury).
  • Można również uruchomić każde polecenie indywidualnie: snapcraft pull, snapcraft build, snapcraft stagelubsnapcraft snap
  • Służy snapcraft -hdo szybkiego przeglądu wszystkich dostępnych poleceń.

I to wszystko, aby szybko zobaczyć, co potrafi Snapcraft! Dowiedz się więcej o Snapcraft>

David Planella
źródło
9
Doceniam ten komentarz, ale chociaż nie jestem jednym z twórców snapcraftów, nie jestem też pewien, w jaki sposób wyjaśnienie, czym jest narzędzie do tworzenia snapów Ubuntu i jak go używać w witrynie Ubuntu, może kiedykolwiek stanowić spam.
David Planella
Sformułowanie na liście funkcji wywołało to u mnie. A także"And that's it for a quick glimpse of what Snapcraft can do!"
Ismael Miguel
1
Zgodziłbym się tutaj z Davidem.
dholbach
1
Część bzr powinna zostać zastąpiona równoważnymi poleceniami git, ponieważ kod jest teraz w Github.
lapisdecor 24.04.16
1
Aby to zrobić, musisz zainstalować git i gcc, jeśli używasz git, a nie bzr.
lapisdecor 24.04.16