Có bao giờ bạn tự hỏi khi cài đặt các chương trình trên linux bạn thường gõ các lệnh dạng như apt update hay yum update và khi gõ các lệnh này thì nó sẽ làm gì chưa?
Linux mà chính xác ở đây là unbuntu sẽ dùng một cái kho đóng gói tự động có tên snap để lưu trữ các phần mềm và tiến hành cài đặt nó theo các gói được các lập trình viên upload lên. trong loạt bài này mình sẽ hướng dẫn các bạn lập cho mình một phần mềm đơn giản để có thể sử dụng và upload lên snap để người khác cài đặt
Trang chủ snap của ubuntu là snapcraft.oi bạn có thể tìm được các phần mềm trên unbuntu software center tại đây. đây chính là nơi bạn sẽ đưa mã nguồn của mình lên
Snap là kho lưu trữ các phần mềm có cấu trúc là yaml, nếu bạn từng làm github page thì sẽ hiểu được ngôn ngữ này như thế nào và sẽ bắt đầu rất dễ
Yêu cầu hệ thống cho bài viết này:
- Tất nhiên bạn phải có một chiếc máy tính chạy unbuntu có thể máy ảo hoặc docker
- Unbuntu tối thiểu là unbuntu 16.x các bản unbuntu 14 không còn được hỗ trợ nếu bạn vẫn dùng nó hãy nghĩ tới việc nâng cấp lên hệ điều hành mới hơn 16 hoặc 18
Đầu tiên chúng ta cần cài các công cụ cần thiết bao gồm cả việc cập nhập hệ thống
sudo apt update
sudo apt install build-essential
Chúng ta tiến hành cài đặt snap phục vụ dev các phần mềm.
sudo snap install --classic snapcraft
hoặc
sudo apt install snapd
Vậy là chúng ta đã chuẩn bị song môi trường để tiến hành dựng một apps test
Bước 1: tạo thư mục lưu trữ để test
mkdir -p ~/mysnaps/hello
cd ~/mysnaps/hello
sau khi chúng ta tạo và vào bên trong thư mục chúng ta đã tạo thì chúng ta sẽ bắt đầu tạo file mặc định của snap
snapcraft init
Với lệnh trên một file yaml sẽ được sinh ra nó có cấu trúc như sau
mysnaps/
└── hello
└── snap
└── snapcraft.yaml
file này có nội dung
name: my-snap-name # you probably want to 'snapcraft register <name>'
version: '0.1' # just for humans, typically '1.2+git' or '1.3.2'
summary: Single-line elevator pitch for your amazing snap # 79 char long summary
description: |
This is my-snap's description. You have a paragraph or two to tell the
most important story about your snap. Keep it under 100 words though,
we live in tweetspace and your description wants to look good in the snap
store.
grade: devel # must be 'stable' to release into 'candidate' and 'stable' channels
confinement: devmode # use 'strict' once you have the right plugs and slots
snapcraft.yaml chứa các thông tin như sau:
- Name: tên của apps bạn định làm là gì
- Version: là số phiên bản khi bạn bắt đầu lập trình để mọi người dễ dàng nhận ra các thay đổi cũng như lựa chọn các phiên bản phù hợp với nhu cầu của người dùng có những người dùng chỉ cần bản cũ bản mới mình ra chưa chắc họ đã cần...
- summary: là đoạn văn tóm tắt ngắn ngọn phần mềm của bạn bao gòm cả tag để mọi người dễ tìm kiếm về sau
- description: mô tả phần mềm của bạn có tính năng gì có cập nhập gì
- grade: thể hiện độ tin tưởng đối với lập trình viên đã làm ra phần mềm cũng như cách để phân loại phần mềm ở các trạng thái ổn định đang làm bản beta hay thử nghiệm tính năng mới
- confinement: đây là nơi các yêu cầu liên quan tới bảo mật được đưa ra cho người dùng sử dụng về sau. có 3 tùy chọn devmode', ‘strict', or ‘classic. devmode là chế độ đang trong quá trình lập trình ám chỉ bản beta, strict và classic là trạng thái ổn định
Chúng ta sẽ sử file này thành nội dung như sau
name: hello
version: '2.10'
summary: GNU Hello, the "hello world" snap
description: |
GNU hello prints a friendly greeting.
grade: devel
confinement: devmode
Như vậy chúng ta đã khởi tạo thành công môi trường cũng như các cấu hình cơ bản cho một packaging của unbuntu
Không có nhận xét nào:
Đăng nhận xét