Apa itu Snapcraft?

16

Saya telah mencoba inti Ubuntu tajam pada perangkat Raspberry Pi 2, dan saya dengar saya dapat menggunakan Snapcraft untuk melakukan pengembangan di atasnya. Sekarang saya mendengar bahwa snaps tersedia di desktop dan server untuk Ubuntu 16.04 dan distro lainnya.

Apa itu Snapcraft dan bagaimana saya bisa menggunakannya?

David Planella
sumber

Jawaban:

27

Snapcraft adalah seperangkat alat yang dibundel di bawah snapcraftperintah untuk dengan mudah membuat paket (kerajinan) untuk beberapa distribusi Linux . Paket .snap ini umumnya berisi aplikasi mandiri, menyediakan isolasi yang aman dan dapat diinstal baik dari Ubuntu Software Store atau secara manual melalui snap install <snap-name>.snapperintah.

Singkatnya, sebagai pengembang Anda akan menulis kode menggunakan alat biasa, dan biarkan Snapcraft mengurus perakitan untuk distribusi. Snapcraft juga unggul dalam memungkinkan pengembang port aplikasi mereka yang ada ke platform Linux yang diaktifkan snap.

Snapcraft:

  • Cerdas : mengambil, membangun, dan merakit beragam bagian perangkat lunak ( bagian ) dari sumber jarak jauh menjadi paket .snap final, yang berisi semua dependensi yang diperlukan untuk berfungsi
  • Membutuhkan resep : itu bergantung pada snapcraft.yamlfile yang menentukan bagian dan plugin yang diperlukan untuk membuat paket
  • Dapat dikembangkan dengan plugin. Meskipun ia dikirim dengan satu set plugin sistem build yang paling umum untuk memenuhi berbagai macam build aplikasi, ia dapat dengan mudah diperluas dengan yang baru .

Tur Snapcraft 3 menit

Instal Snapcraft di Ubuntu

Anda akan membutuhkan Ubuntu 16.04 LTS untuk menggunakan Snapcraft. Buka terminal dengan Ctrl+ Alt+ tdan cukup instal Snapcraft dengan perintah ini:

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

Jika Anda menggunakan distro lain, lihat petunjuk pemasangan alternatif>

Test-drive Snapcraft

Contoh berikut membuat paket yang berisi layanan yang memungkinkan Anda untuk menempel dan berbagi. Setelah selesai, Anda dapat menginstalnya secara manual di perangkat tajam Anda untuk tujuan pengujian atau mengunggahnya ke Store untuk pengguna lain.

Pertama-tama kita buka terminal dan unduh contoh dari repositori contoh:

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

Perhatikan snapcraft.yamlfile di direktori itu, yang menentukan layanan dan bagian-bagian yang diperlukan untuk merakit final .snap. Anda bisa memeriksanya dengan editor teks.

Sekarang jalankan snapcraftperintah di terminal. Ini akan menyebabkan semua sub-perintah snapcraft berjalan berurutan untuk membangun bagian-bagian dan meletakkan hasilnya dalam paket .snap final. Selama pengembangan, Anda biasanya akan menjalankan langkah-langkah secara terpisah sampai Anda yakin bahwa seluruh proses pembangunan dan perakitan bekerja.

$ 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

Pada output dari perintah, Anda dapat melihat langkah-langkah berjalan snapcraft untuk Anda:

  1. Tarik : itu menarik kode dari bagian gopaste yang diperlukan dari repo Github jarak jauh
  2. Build : membangun gopaste secara lokal
  3. Tahap : setelah membangun, bagian-bagian dimasukkan ke dalam pohon direktori tunggal, "area pementasan"
  4. Jepret : paket .snap terakhir dibuat dari bagian yang dirakit di area pementasan

Catatan:

  • Anda akan menemukan file snap terakhir sebagai gopaste_1.0_amd64.snap(perhatikan dalam kasus saya, saya membangunnya di desktop amd64 saya, misalnya paket Raspberry Pi 2 akan memiliki _armhfakhiran arsitektur).
  • Anda juga dapat menjalankan setiap perintah secara individual: snapcraft pull, snapcraft build, snapcraft stageatausnapcraft snap
  • Gunakan snapcraft -huntuk ikhtisar singkat dari semua perintah yang tersedia.

Dan hanya itu untuk melihat sekilas apa yang dapat dilakukan Snapcraft! Pelajari lebih lanjut tentang Snapcraft>

David Planella
sumber
9
Saya menghargai komentarnya, tetapi meskipun saya bukan salah satu pengembang snapcraft, saya juga tidak yakin bagaimana menjelaskan alat untuk membuat buncit Ubuntu dan bagaimana menggunakannya, pada situs Ubuntu, bisa merupakan spam.
David Planella
Kata-kata pada daftar fitur memicu hal itu pada saya. Dan juga"And that's it for a quick glimpse of what Snapcraft can do!"
Ismael Miguel
1
Saya setuju dengan David di sini.
dholbach
1
Bagian bzr harus diganti dengan perintah git yang setara, karena kode tersebut sekarang ada di Github.
lapisdecor
1
Juga, untuk melakukan ini, Anda perlu menginstal git dan gcc jika Anda menggunakan git dan bukan bzr.
lapisdecor