Làm thế nào tôi có thể lặp lại nhanh hơn khi tạo một snap?


10

Tôi đang làm việc với một phần mềm lớn hơn và xây dựng snap, loại bỏ cái cũ, cài đặt cái mới chỉ mất một thời gian rất dài.

Tôi muốn lặp đi lặp lại việc tạo snap và thử nghiệm mọi thứ nhanh hơn. Tôi biết rằng snap snap xây dựng tốt, bây giờ tôi quan tâm đến việc thử nghiệm những thứ như khởi chạy ứng dụng và tích hợp. Có cách nào để làm việc này không?

Câu trả lời:


8

Lời nói đầu

Một cách để đi về điều này là sử dụng snap try. Từ --helpthông điệp của nó :

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.

Nó cũng đi kèm với một tùy chọn:

--devmode     Install in development mode and disable confinement

Điều này đặc biệt hữu ích nếu bạn muốn kiểm tra các bit giam cầm và sử dụng đúng giao diện.

Sử dụng

Cách sử dụng này rất đơn giản, chỉ cần chạy:

snapcraft prime
snap try prime/

Trong bước đầu tiên, bạn nói snapcraftđể làm

Final copy and preparation for the snap.

Và trong bước thứ hai, snapdsử dụng nội dung của thư mục để "cài đặt" snap. Bây giờ bạn có thể chơi xung quanh với gói trong khi vẫn có thể thay đổi nó.

Thí dụ

Hãy sử dụng một ví dụ từ Snappy Playpen để chỉ cho bạn cách sử dụng cái này.

Chúng tôi đang sử dụng lãnh sự vì việc xây dựng và sử dụng tương đối nhanh chóng:

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

Bây giờ, hãy đảm bảo rằng chúng tôi không cài đặt phiên bản khác và sau đó tiến hành cài đặt.

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$ 

Càng xa càng tốt. Nó dường như chỉ hoạt động tốt. Bây giờ hãy thay thế nó /bin/echochỉ để xem mọi thứ hoạt động như thế nào:

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$  

Như bạn có thể thấy, chúng tôi có thể thay đổi hệ thống trực tiếp trong primekhi vẫn chạy mọi thứ trong sự giam cầm. Đây thường là một cách tốt để có được snap up và chạy và được kiểm tra đầy đủ một cách nhanh chóng.

Lưu ý: Với snapdtrước ngày 2.0.10 (2016-07-09), bạn phải tạm thời chụp nhanh trước khi chạy snapcraft cleanhoặc snapdsẽ rơi vào trạng thái xấu và than vãn về việc không thể tìm thấy snaps được gắn. Một số bản sửa lỗi khác được xếp hàng cho 2.0.11, cũng sẽ hạ cánh trong một vài ngày.


1
Bạn có thể cân nhắc việc đề cập rằng snap nên được loại bỏ trước khi chạy snapcraft cleanhoặc snapd hiện đang ở trạng thái xấu và than vãn về việc không thể tìm thấy snaps được gắn. Việc khắc phục đang được tiến hành cho điều đó, nhưng chưa được phát hành.
Kyle

Đẹp quá Thêm thông tin bây giờ.
dholbach

1
Vâng, 'snap try' là chính xác cho trường hợp sử dụng này. Nó cho phép bạn tạo một thư mục và xây dựng snap của bạn trong đó, mà không cần phải tiếp tục tạo squashfs và kể lại nó. Bạn lặp đi lặp lại chỉ bằng cách làm việc trong thư mục đó (bạn thực sự có một snap đọc-ghi) cho đến khi bạn hài lòng, sau đó thực hiện squashfs ra khỏi thư mục đó.
Mark Shuttleworth
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.