स्नैप बनाते समय मैं अधिक तेज़ी से कैसे पुनरावृति कर सकता हूं?


10

मैं सॉफ्टवेयर के एक बड़े टुकड़े के स्नैप पर काम कर रहा हूं और स्नैप का निर्माण कर रहा हूं, पुराने को हटा रहा हूं, नया स्थापित कर रहा हूं बस बहुत लंबा समय लगता है।

मैं स्नैप बनाने और चीजों को अधिक तेज़ी से परीक्षण करने पर पुनरावृति करना चाहूंगा। मुझे पता है कि स्नैप सिर्फ ठीक बनाता है, अब मुझे ऐप लॉन्च करने और इसके एकीकरण जैसी चीजों का परीक्षण करने में दिलचस्पी है। क्या इसे करने का कोई तरीका है?

जवाबों:


8

प्रस्तावना

इसके बारे में जाने का एक तरीका है उपयोग करना snap try। इसके --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.

यह एक विकल्प के साथ भी आता है:

--devmode     Install in development mode and disable confinement

यह विशेष रूप से सहायक है यदि आप कारावास बिट्स का परीक्षण करना चाहते हैं और इंटरफेस का सही उपयोग कर रहे हैं।

प्रयोग

इसका उपयोग करने का तरीका सरल है, बस चलाएं:

snapcraft prime
snap try prime/

पहले चरण में आप snapcraftकरना चाहते हैं

Final copy and preparation for the snap.

और दूसरे चरण snapdमें स्नैप को "इंस्टॉल" करने के लिए निर्देशिका की सामग्री का उपयोग करता है। अब आप इसके साथ बदलाव करने में सक्षम होने के बावजूद पैकेज के साथ खेल सकते हैं।

उदाहरण

आइए Snappy Playpen से एक उदाहरण का उपयोग करें कि यह कैसे उपयोग किया जाए।

हम कॉन्सल का उपयोग कर रहे हैं क्योंकि यह निर्माण और उपयोग करने के लिए अपेक्षाकृत जल्दी है:

$ 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$ 

अब यह सुनिश्चित करें कि हमारे पास इसका कोई दूसरा संस्करण स्थापित नहीं है और फिर स्थापना के साथ आगे बढ़ें।

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$ 

अब तक सब ठीक है। यह ठीक काम करने लगता है। अब आइए इसे बदलें /bin/echoकि कैसे चीजें काम करती हैं:

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$  

जैसा कि आप देख सकते हैं, हम लाइव सिस्टम में बदलाव कर सकते हैं primeजबकि अभी भी चीजों को कारावास में चल रहा है। यह आम तौर पर स्नैप प्राप्त करने और चलाने और पूरी तरह से जल्दी से परीक्षण करने का एक अच्छा तरीका है।

नोट: के साथ snapd2.0.10 (2016/07/09), आप चलाने से पहले तस्वीर temove करना पड़ा snapcraft cleanया snapdघुड़सवार स्नैप खोजने में असमर्थ होने के बारे में एक बुरा राज्य और कराहना में मिलेगा। 2.0.11 के लिए कुछ और सुधार किए गए हैं, जिन्हें कुछ ही दिनों में जमीन पर उतारना चाहिए।


1
आप उल्लेख करने पर विचार कर सकते हैं कि स्नैप को एक रन से पहले हटा दिया जाना चाहिए snapcraft cleanया स्नैपड वर्तमान में खराब स्थिति में आ जाता है और माउंटेड स्नैप को खोजने में असमर्थ होने के बारे में व्हिंस करता है। इसके लिए सुधार जारी है, लेकिन अभी तक जारी नहीं किया गया है।
काइल

अच्छा है! अब जानकारी जोड़ना।
ढोलबाक

1
हाँ, 'स्नैप ट्राई' इस उपयोग के मामले के लिए है। यह आपको एक निर्देशिका बनाने और उसमें अपना स्नैप बनाने की अनुमति देता है, बिना स्क्वैश को बनाए रखने और इसे रिमूव करने के लिए। आप केवल उस निर्देशिका में काम करके इसे पुन: व्यवस्थित करते हैं (जब तक आप प्रभावी रूप से एक रीड-राइट स्नैप करते हैं) जब तक आप खुश नहीं होते हैं, तब उस निर्देशिका से स्क्वैश को बना लें।
मार्क शटलवर्थ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.