Snapcraft nedir?


16

Raspberry Pi 2 cihazında çabuk Ubuntu çekirdeğini deniyorum ve üzerinde geliştirme yapmak için Snapcraft'ı kullanabileceğimi duydum. Şimdi Ubuntu 16.04 ve diğer dağıtımlar için masaüstünde ve sunucuda eklerin bulunduğunu duydum.

Snapcraft nedir ve nasıl kullanabilirim?

Yanıtlar:


27

Snapcraft, birden çok Linux dağıtımı için kolayca (craft) paketler oluşturma komutu altında paketlenmiş bir araç setidir . Bu .snap paketleri genellikle bağımsız uygulamalar içerir, güvenli yalıtım sağlar ve Ubuntu Yazılım Mağazası'ndan veya komut aracılığıyla elle yüklenebilir .snapcraftsnap install <snap-name>.snap

Kısacası, bir geliştirici olarak normal araçlarınızı kullanarak kod yazacak ve Snapcraft'ın dağıtım için bir araya getirmesine izin vereceksiniz. Snapcraft ayrıca geliştiricilerin sağlayan üstünlük port herhangi onların mevcut uygulamalarınızı Linux platformu çırpıda özellikli.

Snapcraft:

  • Akıllı : Uzak kaynaklardan çeşitli yazılım parçalarını ( parçalarını ), çalışması için ihtiyaç duyduğu tüm bağımlılıkları içeren bir nihai .snap paketine getirir, derler ve birleştirir
  • Bir tarif gerekiyor : parçalarısnapcraft.yaml belirten bir dosyaya dayanıyor paketi oluşturmak için gerekli ve eklentileri
  • GenişletilebilirEklentilerle . Çok çeşitli uygulama yapılarını karşılamak için en yaygın oluşturma sistemi eklentileriyle birlikte gönderilirken, yenileriyle kolayca genişletilebilir .

3 dakikalık Snapcraft turu

Snapcraft'ı Ubuntu'ya yükleyin

Snapcraft'ı kullanmak için Ubuntu 16.04 LTS'ye ihtiyacınız olacak. Ctrl+ Alt+ tİle bir terminal açın ve bu komutla Snapcraft'ı yükleyin:

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

Başka bir dağıtım kullanıyorsanız, alternatif kurulum talimatlarını inceleyin>

Test sürüşü Snapcraft

Aşağıdaki örnek, yapıştırmanıza ve paylaşmanıza olanak tanıyan bir hizmet içeren bir paket oluşturur. Bitirdikten sonra, test amacıyla snappy cihazınıza manuel olarak yükleyebilir veya diğer kullanıcılar için Mağaza'ya yükleyebilirsiniz.

Her şeyden önce bir terminal açıyoruz ve örnekler deposundan örneği indiriyoruz:

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

Dikkat edin snapcraft.yamlBu dizindeki bir hizmeti ve son .snap dosyasını birleştirmek için gereken parçaları belirten dosyaya . İsteğe bağlı olarak bir metin düzenleyici ile inceleyebilirsiniz.

Şimdi snapcraftkomutu terminalde çalıştırın . Bu, tüm snapcraft alt komutlarının parçaları oluşturmak ve sonuçları son .snap paketine koymak için sırayla çalışmasına neden olur. Geliştirme sırasında, tüm yapının ve montajın çalıştığından emin olana kadar adımları normalde ayrı olarak çalıştırırsınız.

$ 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

Komutun çıktısında snapcraft'ın sizin için uyguladığı adımları görebilirsiniz:

  1. Çekme : kodu uzak bir Github deposundan gerekli gopaste parçasından çeker
  2. Yapı : yerel olarak gopaste oluşturur
  3. Aşama : Derlemeden sonra, parçalar tek bir dizin ağacına, "hazırlama alanı"
  4. Snap : son .snap paketi, hazırlama alanındaki birleştirilmiş parçalardan oluşturulur

Notlar:

  • Son snap dosyasını şu şekilde bulacaksınız gopaste_1.0_amd64.snap(benim durumumda amd64 masaüstüme kurdum, örneğin Raspberry Pi 2 paketleri_armhf mimari son eke ).
  • Ayrıca tek tek her komutu çalıştırabilirsiniz: snapcraft pull, snapcraft build, snapcraft stageveyasnapcraft snap
  • snapcraft -hMevcut tüm komutlara hızlı bir genel bakış için kullanın .

Snapcraft'ın neler yapabileceğine hızlıca göz atmak için hepsi bu kadar! Snapcraft hakkında daha fazla bilgi edinin>


9
Yorum için teşekkür ederim, ancak snapcraft geliştiricilerinden biri olmasam da, Ubuntu snaps oluşturmak için bir aracın ne olduğunu ve bir Ubuntu sitesinde nasıl kullanılacağını açıklamanın spam oluşturabileceğinden de emin değilim.
David Planella

Özellikler listesindeki ifadeler beni tetikledi. Ve ayrıca"And that's it for a quick glimpse of what Snapcraft can do!"
Ismael Miguel

1
Burada David'le hemfikirim.
dholbach

1
Kod artık Github'da olduğundan, bzr kısmı eşdeğer git komutlarıyla değiştirilmelidir.
lapisdecor

1
Ayrıca, bunu yapmak için git ve gcc'yi bzr değil git kullanmanız gerekir.
lapisdecor
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.