Snapcraft là một bộ công cụ được gói theo snapcraft
lệ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>.snap
lệ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.yaml
tệp chỉ định các phần và plugin 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.yaml
tệ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 snapcraft
lệ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:
- Kéo : nó kéo mã từ phần gopaste cần thiết từ repo Github từ xa
- Xây dựng : nó xây dựng gopaste tại địa phương
- 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"
- 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ó _armhf
hậ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 stage
hoặcsnapcraft snap
- Sử dụng
snapcraft -h
cho 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>