Snapcraft là gì?


16

Tôi đã thử dùng lõi Ubuntu linh hoạt trên thiết bị Raspberry Pi 2 và tôi nghe nói tôi có thể sử dụng Snapcraft để phát triển trên nó. Bây giờ tôi nghe nói snaps có sẵn trên máy tính để bàn và máy chủ cho Ubuntu 16.04 và các bản phát hành khác.

Snapcraft là gì và làm thế nào tôi có thể sử dụng nó?

Câu trả lời:


27

Snapcraft là một bộ công cụ được gói theo snapcraftlệnh để dễ dàng tạo các gói (craft) cho nhiều bản phân phối Linux . Các gói .snap này thường chứa các ứng dụng độc lập, cung cấp sự cách ly an toàn và có thể cài đặt được từ Kho phần mềm Ubuntu hoặc bằng tay thông qua snap install <snap-name>.snaplệnh.

Tóm lại, là một nhà phát triển, bạn sẽ viết mã bằng các công cụ thông thường của mình và để Snapcraft đảm nhiệm việc lắp ráp nó để phân phối. Snapcraft cũng vượt trội trong việc giúp các nhà phát triển cổng ứng dụng hiện có của họ với bất kỳ snap-kích hoạt nền tảng Linux.

Snapcraft:

  • Rất thông minh : nó tìm nạp, xây dựng và lắp ráp các phần mềm ( bộ phận ) đa dạng từ các nguồn từ xa vào một gói .snap cuối cùng, chứa tất cả các phụ thuộc mà nó cần để hoạt động
  • Cần một công thức : nó dựa vào một snapcraft.yamltệp chỉ định các phầnplugin cần thiết để tạo gói
  • Có thể mở rộng với các plugin. Mặc dù nó có một bộ các plugin hệ thống xây dựng phổ biến nhất để phục vụ cho một loạt các bản dựng ứng dụng, nhưng nó có thể dễ dàng được mở rộng với các plugin mới .

Chuyến tham quan Snapcraft dài 3 phút

Cài đặt Snapcraft trên Ubuntu

Bạn sẽ cần Ubuntu 16.04 LTS để sử dụng Snapcraft. Mở một thiết bị đầu cuối với Ctrl+ Alt+ tvà chỉ cần cài đặt Snapcraft bằng lệnh này:

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

Nếu bạn đang sử dụng một bản phân phối khác, hãy xem hướng dẫn cài đặt thay thế>

Lái thử Snapcraft

Ví dụ sau đây tạo ra một gói có chứa một dịch vụ cho phép bạn dán và chia sẻ. Sau khi hoàn tất, bạn có thể cài đặt thủ công trên thiết bị linh hoạt của mình cho mục đích thử nghiệm hoặc tải nó lên Store cho người dùng khác.

Trước hết, chúng tôi mở một thiết bị đầu cuối và tải xuống ví dụ từ kho ví dụ:

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

Lưu ý snapcraft.yamltệp trong thư mục đó, chỉ định một dịch vụ và các phần cần thiết để lắp ráp .snap cuối cùng. Bạn có thể tùy ý kiểm tra nó với một trình soạn thảo văn bản.

Bây giờ chạy snapcraftlệnh trên thiết bị đầu cuối. Điều này sẽ khiến tất cả các tiểu ban snapcraft chạy theo trình tự để xây dựng các phần và đưa kết quả vào gói .snap cuối cùng. Trong quá trình phát triển, thông thường bạn sẽ chạy các bước riêng biệt cho đến khi bạn tự tin rằng toàn bộ quá trình xây dựng và lắp ráp hoạt động.

$ 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

Trên đầu ra của lệnh, bạn có thể thấy các bước snapcraft chạy cho bạn:

  1. Kéo : nó kéo mã từ phần gopaste cần thiết từ repo Github từ xa
  2. Xây dựng : nó xây dựng gopaste tại địa phương
  3. Giai đoạn : sau khi xây dựng, các phần được đưa vào một cây thư mục duy nhất, "khu vực tổ chức"
  4. Snap : gói .snap cuối cùng được tạo từ các bộ phận lắp ráp trong khu vực tổ chức

Ghi chú:

  • Bạn sẽ tìm thấy tệp snap cuối cùng như gopaste_1.0_amd64.snap(thông báo trong trường hợp của tôi, tôi đã xây dựng nó trên máy tính để bàn amd64 của mình, ví dụ các gói Raspberry Pi 2 sẽ có _armhfhậu tố kiến ​​trúc).
  • Bạn cũng có thể chạy mỗi lệnh riêng lẻ: snapcraft pull, snapcraft build, snapcraft stagehoặcsnapcraft snap
  • Sử dụng snapcraft -hcho một tổng quan nhanh chóng của tất cả các lệnh có sẵn.

Và đó là một cái nhìn thoáng qua về những gì Snapcraft có thể làm! Tìm hiểu thêm về Snapcraft>


9
Tôi đánh giá cao nhận xét này, nhưng mặc dù tôi không phải là một trong những nhà phát triển snapcraft, tôi cũng không chắc cách giải thích công cụ tạo snaps Ubuntu là gì và cách sử dụng nó, trên một trang web Ubuntu, có thể tạo thành thư rác.
David Planella

Các từ ngữ trong danh sách các tính năng kích hoạt điều đó trên tôi. Và cũng"And that's it for a quick glimpse of what Snapcraft can do!"
Ismael Miguel

1
Tôi đồng ý với David ở đây.
dholbach

1
Phần bzr nên được thay thế bằng các lệnh git tương đương, vì mã hiện đã có trên Github.
quản lý

1
Ngoài ra, để làm điều này, bạn cần cài đặt git và gcc nếu bạn đang sử dụng git chứ không phải bzr.
quản lý
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.