Anlık görüntü oluştururken nasıl daha hızlı yineleyebilirim?


10

Daha büyük bir yazılım parçası üzerinde çalışıyorum ve ek bileşeni oluşturuyorum, eskisini kaldırıyorum, yenisini yüklemek çok uzun zaman alıyor.

Çıtçıt oluşturma ve işleri daha hızlı test etme konusunda tekrarlamak istiyorum. Snap'in iyi bir şekilde oluşturulduğunu biliyorum, şimdi uygulamayı başlatmak ve entegrasyonu gibi şeyleri test etmekle ilgileniyorum. Bunu yapmanın bir yolu var mı?

Yanıtlar:


8

önsöz

Bunu yapmanın bir yolu kullanmaktır snap try. Mesajından --help:

The try command installs an unpacked snap into the system for testing
purposes. The unpacked snap content continues to be used even after 
installation, so non-metadata changes there go live instantly. Metadata
changes such as those performed in snap.yaml will require reinstallation 
to go live.

Ayrıca bir seçenek ile geliyor:

--devmode     Install in development mode and disable confinement

Bu, sınırlandırma bitlerini test etmek ve arabirimlerin doğru kullanımını sağlamak istiyorsanız özellikle yararlıdır.

kullanım

Bunu kullanmanın yolu basit, sadece çalıştırın:

snapcraft prime
snap try prime/

İlk adımda size anlatmak snapcraftyapmak

Final copy and preparation for the snap.

Ve ikinci adımda snapdekin "kurulumu" için dizinin içeriğini kullanır. Artık pakette değişiklik yapabiliyorken paketle oynayabilirsiniz.

Misal

Bunu nasıl kullanacağınızı göstermek için Snappy Playpen'den bir örnek kullanalım .

Konsolosu, inşa etmek ve kullanmak nispeten hızlı olduğu için kullanıyoruz:

$ git clone https://github.com/ubuntu/snappy-playpen
$ cd snappy-playpen/consul/
snappy-playpen/consul$ snapcraft prime
Preparing to pull consul 
[...]
Staging consul 
Priming consul 
snappy-playpen/consul$ 

Şimdi başka bir sürümünün yüklü olmadığından emin olalım ve ardından kuruluma devam edelim.

snappy-playpen/consul$ which consul
snappy-playpen/consul$ snap try prime

Name    Version  Rev  Developer  Notes
consul  0.6.4    x1              try
snappy-playpen/consul$ consul --help
usage: consul [--version] [--help] <command> [<args>]

Available commands are:
    agent          Runs a Consul agent
[...]
snappy-playpen/consul$ 

Çok uzak çok iyi. İyi çalışıyor gibi görünüyor. Şimdi bunun /bin/echonasıl çalıştığını görmek için onu değiştirelim :

snappy-playpen/consul$ cp /bin/echo prime/bin/consul 
snappy-playpen/consul$ consul --help
Usage: /snap/consul/x1/bin/consul [SHORT-OPTION]... [STRING]...
   or:  /snap/consul/x1/bin/consul LONG-OPTION
Echo the STRING(s) to standard output.
[...]
daniel@daydream:/tmp/test/snappy-playpen/consul$  

Gördüğünüz gibi, primehapsetme altındaki şeyleri çalıştırırken canlı sistemde değişiklikler yapabiliriz . Bu genellikle kenetlenmeyi ve çalıştırmayı sağlamanın ve hızlı bir şekilde tamamen test edilmenin iyi bir yoludur.

Not: With snapd2.0.10 (2016/07/09) önce, çalıştırmakta önce çırpıda temove zorunda snapcraft cleanya snapdmonte enstantane bulamadığı olma konusunda kötü bir devlet ve sızlanışı içine almak istiyorum. Birkaç gün içinde inmesi gereken 2.0.11 için bazı düzeltmeler sıralanmıştır.


1
Bir çalıştırma snapcraft cleanveya snapd şu anda kötü duruma geçmeden ve takılı ekleri bulamama konusunda sızlanmadan önce çıtçıtın kaldırılması gerektiğini belirtmeyi düşünebilirsiniz . Bunun için düzeltme sürüyor, ancak henüz yayınlanmadı.
Kyle

Güzel bir! Şimdi bilgi ekleniyor.
dholbach

1
Evet, 'çabuk deneme' tam olarak bu kullanım durumu içindir. Squashfs yapmaya devam etmek ve yeniden takmak zorunda kalmadan bir dizin oluşturmanıza ve içinde snap oluşturmanıza olanak tanır. Mutlu olana kadar sadece bu dizinde çalışarak (etkili bir şekilde okuma-yazma eklentiniz var) yineleyin, ardından squashfs'ı bu dizinden çıkarın.
Mark Shuttleworth
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.