Snapcraft adalah seperangkat alat yang dibundel di bawah snapcraft
perintah 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>.snap
perintah.
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.yaml
file 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.yaml
file di direktori itu, yang menentukan layanan dan bagian-bagian yang diperlukan untuk merakit final .snap. Anda bisa memeriksanya dengan editor teks.
Sekarang jalankan snapcraft
perintah 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:
- Tarik : itu menarik kode dari bagian gopaste yang diperlukan dari repo Github jarak jauh
- Build : membangun gopaste secara lokal
- Tahap : setelah membangun, bagian-bagian dimasukkan ke dalam pohon direktori tunggal, "area pementasan"
- 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 _armhf
akhiran arsitektur).
- Anda juga dapat menjalankan setiap perintah secara individual:
snapcraft pull
, snapcraft build
, snapcraft stage
atausnapcraft snap
- Gunakan
snapcraft -h
untuk ikhtisar singkat dari semua perintah yang tersedia.
Dan hanya itu untuk melihat sekilas apa yang dapat dilakukan Snapcraft! Pelajari lebih lanjut tentang Snapcraft>
"And that's it for a quick glimpse of what Snapcraft can do!"