Header Ads Widget

Responsive Advertisement

Ticker

3/recent/ticker-posts

Quản lý Ubuntu Snaps những thứ không ai nói với bạn

Canonical's Snaps chắc chắn là một thỏa thuận thực sự. Hệ thống quản lý gói Linux an toàn và di động không chỉ là một công cụ thú vị để thể hiện các tín dụng công nghệ của bạn. Chỉ cần xem xét danh sách ngày càng tăng các công ty đã mua và đang cung cấp phần mềm máy tính để bàn của họ thông qua snaps, bao gồm Blender, Slack, Spotify, Android Studio và Microsoft's (Microsoft!) Visual Studio Code. Và đừng quên rằng sự phát triển thực sự của hệ thống snap là trong thế giới của các thiết bị và máy chủ IoT hơn là máy tính để bàn.

 


Nhưng khi sự phổ biến của snaps ngày càng tăng - một số bản phân phối Linux mới đi kèm với dịch vụ snapd được cài đặt theo mặc định - bạn có thể được tha thứ vì đã tự hỏi làm thế nào để làm cho chúng hoạt động. Đừng hiểu nhầm: có tất cả các loại hướng dẫn dựa trên web để tìm, cài đặt và gỡ bỏ snaps. Và có những nơi mà các nhà phát triển có thể tìm đến để được trợ giúp xây dựng ứng dụng của họ nhanh chóng. Nhưng ngay bây giờ tôi đang nói về việc định cấu hình hành vi của họ hoặc khắc phục sự cố khi có sự cố .

Chỉ đối với bản ghi, bạn tìm kiếm các snaps mới để cài đặt bằng cách sử dụng một cái gì đó như:

snap find aws

Khi bạn tìm thấy một gói bạn thích, bạn cài đặt nó bằng cách sử dụng:

snap install aws-cli

Ồ, và bạn xóa chúng bằng cách xóa.

snap remove aws-cli

Đây. Bạn không thể nói rằng tôi chưa bao giờ dạy bạn bất cứ điều gì. Nhưng đó không phải là những gì bài viết này nói về. Những gì chúng ta sẽ nói đến là nội dung quản lý thực sự, như thay đổi cấu hình hoặc khắc phục sự cố những thứ bị hỏng.

Hiểu hệ thống tệp snap

Chà, điều đó sẽ khác như thế nào so với cách bạn thường làm trên Linux? Các tệp cấu hình thường ở trong / etc / , các tiến trình sẽ tiết lộ bí mật sâu sắc nhất của chúng thông qua systemctl và các bản ghi sẽ tìm đường đến / var / log / .

Không nhanh đến đó đâu, khách hành hương. Đó không phải lúc nào cũng hoạt động như thế nào ở Snapland. Bạn thấy đấy, snap thực sự không hơn gì một tệp nén duy nhất (được đặt tên bằng  phần mở rộng .snap ) chứa toàn bộ hệ thống tệp cần thiết để chạy một gói. Các tệp này thực sự không bao giờ được giải nén và “cài đặt”, nhưng được gắn động vào thời gian chạy và hiển thị với người dùng dưới dạng môi trường ảo.

Điều này có nghĩa là tài nguyên được chương trình sử dụng có thể không thực sự tồn tại trên hệ thống máy chủ. Vì vậy, ví dụ, Nextcloud snap tạo các phiên bản Apache và MySQL của riêng nó cho phần phụ trợ của nó. Vì vậy, giả sử bạn muốn định cấu hình một máy chủ ảo mới trong / etc / apache2 / sites-available / hoặc tạo một người dùng MySQL mới theo cách truyền thống, thì bạn đã không gặp may.

Ưu điểm của cách tiếp cận này là đáng kể: cài đặt và thiết lập nhìn chung sẽ trơn tru hơn nhiều và bạn ít gặp phải các vấn đề và xung đột về phụ thuộc hơn. Nhưng ít nhất nó cũng có nghĩa là bạn có ít quyền truy cập vào các cơ quan quan trọng cung cấp năng lượng cho phần mềm của bạn.

 


Vậy thì, mọi thứ linh tinh xảy ra ở đâu? Hãy tự mình xem qua hệ thống tệp máy chủ của bạn: bạn có thể sẽ tìm thấy nhiều thư mục snap hơn mức bạn có thể lắc (nếu bạn nghiêng như vậy). Dưới đây là các thư mục mà quá trình cài đặt snap có thể đã tạo:

/snap/
/var/snap/
/var/lib/snapd/
/home/username/snap/

Nhiều không? Để làm gì? Chúng ta hãy đi qua từng cái một. Hãy thoải mái khám phá máy Linux của riêng bạn để tự mình xem tất cả những điều này.

Các tệp .snap thực tế  được giữ trong thư mục / var / lib / snapd / . Khi chạy, các tệp đó sẽ được gắn trong thư mục gốc / snap / . Nhìn qua đó - trong thư mục con / snap / core / - bạn sẽ thấy những gì trông giống như một hệ thống tệp Linux thông thường. Nó thực sự là hệ thống tệp ảo đang được sử dụng bởi các snaps hoạt động.

ls /snap/core/current
bin   dev  home  lib64  meta  opt   root  sbin  srv  tmp  var
boot  etc  lib   media  mnt   proc  run   snap  sys  usr  writable

Và đây là thư mục con chứa các tệp cấu hình (chỉ đọc) được sử dụng bởi Nextcloud snap. Tất nhiên, điều đó sẽ chỉ có ở đó nếu bạn đã cài đặt Nextcloud ( snap install nextcloud ).

ls /snap/nextcloud/current/conf/
httpd.conf  mime.types  ssl.conf

Đồng ý. Bây giờ những gì về / var / snap / ? Rất giống các cư dân truyền thống của / var / , các tệp bên trong / var / snap / chứa nhiều dạng dữ liệu người dùng và tệp nhật ký - loại dữ liệu được tạo và sử dụng bởi các ứng dụng trong quá trình hoạt động. Ví dụ này hiển thị các thư mục cho dữ liệu được sử dụng bởi một số snaps liên quan đến máy tính để bàn, bao gồm AWS CLI và công cụ giao tiếp nhóm Slack. (OK, về mặt kỹ thuật, AWS CLI không phải là một công cụ dành cho máy tính để bàn.)

ls /var/snap
aws-cli  core18           gnome-system-monitor  gnome-calculator
brave    gnome-3-26-1604  gnome-characters      gtk-common-themes
core     gnome-3-28-1804  gnome-logs            slack

Đi sâu vào các thư mục con trong / var / snap / trên máy của bạn và xem những gì bạn có thể khám phá.

 


Điều đó chỉ để lại thư mục ~ / snap tồn tại trong thư mục chính của người dùng trên ít nhất một số hệ thống tệp Linux. Nó sẽ chứa các thư mục sử dụng một số tên mà bạn sẽ thấy trong / var / snap. Chuyện gì đang xảy ra trong đó?

ls ~/snap
aws-cli  brave  gnome-calculator  slack

Theo như tôi có thể nói, các thư mục này nhằm lưu trữ dữ liệu đã được phiên bản hóa liên quan đến cài đặt được sử dụng bởi tài khoản người dùng của bạn.

Công cụ quản trị Snap

Cho đến nay, tôi đã chỉ cho bạn cách tìm các lớp dữ liệu khác nhau được lưu trong tệp cấu hình (trong / var / snap / ), hệ thống tệp ảo ( / snap / ) và bộ sưu tập cài đặt người dùng ( ~ / snap ). Tôi cũng đã chỉ cho bạn nơi không nên tìm -  / var / lib / snapd /  - là nơi chứa các tệp .snap; không có gì để xem ở đây, di chuyển cùng bây giờ.

Bây giờ những gì về quản trị thực tế? Điều này phức tạp hơn một chút. Một số snaps - như Nextcloud - để lộ giao diện quản trị đầy đủ tính năng. Tôi nói về điều đó trong bài viết Quản trị Nextcloud dưới dạng Snap. Nhưng có vẻ như sự đơn giản của snaps đôi khi có nghĩa là không có nhiều cấu hình thực hành có thể thực hiện được.

Tuy nhiên, không phải lúc nào cũng vậy. Nhưng trước tiên, bạn sẽ cần biết về các dịch vụ snap . Một số ứng dụng phức tạp hơn yêu cầu ngăn xếp phần mềm nhiều lớp. Ví dụ: Nextcloud tạo và quản lý các phiên bản Apache, MySQL, PHP và Redis của riêng mình. Nói một cách dễ hiểu, mỗi một trong những “lớp” đó được gọi là một dịch vụ.

Nếu bất kỳ snap nào được cài đặt trên máy của bạn có các dịch vụ riêng, bạn sẽ có thể liệt kê chúng cùng với trạng thái của chúng bằng cách sử dụng lệnh snapd này:

snap services
Service                    Startup  Current   Notes
nextcloud.apache           enabled  active    -
nextcloud.mdns-publisher   enabled  active    -
nextcloud.mysql            enabled  active    -
nextcloud.nextcloud-cron   enabled  active    -
nextcloud.nextcloud-fixer  enabled  inactive  -
nextcloud.php-fpm          enabled  active    -
nextcloud.redis-server     enabled  active    -
nextcloud.renew-certs      enabled  active    -

Bạn cũng có thể kiểm soát trạng thái chạy và khởi động của dịch vụ. Ví dụ này sẽ dừng dịch vụ Apache của Nextcloud và đảm bảo rằng nó không khởi chạy khi hệ thống khởi động lại (mặc dù, chỉ cần nhớ rằng điều này sẽ vô hiệu hóa Nextcloud - bạn có thể không muốn làm điều đó):

snap stop --disable nextcloud.apache

Bạn cũng có thể sử dụng systemctl để quản lý các quy trình dịch vụ snap:

systemctl status snap.nextcloud.apache

Nếu snap của bạn bao gồm ít nhất một dịch vụ, bạn có thể xem nhật ký của nó bằng snapd:

snap logs nextcloud

Bạn cũng có thể chỉ định một dịch vụ cụ thể:

snap logs nextcloud.mysql

Đối với một số snaps (như Nextcloud), snapd cung cấp các cấu hình hữu ích từ dòng lệnh. Bạn có thể hiển thị các cài đặt có sẵn bằng cách sử dụng snap get :

snap get nextcloud
Key        Value
mode       production
nextcloud  {...}
php        {...}
ports      {...}
private    {...}
Giảm một cấp độ bằng cách thêm tên của một cài đặt cụ thể. Ví dụ này cho chúng ta thấy rằng Nextcloud hiện chỉ nghe trên các cổng 80 (HTTP) và 443 (HTTPS).

snap get nextcloud ports
Key          Value
ports.http   80
ports.https  443

Bạn có thể thay đổi cài đặt bằng lệnh set . Điều này sẽ yêu cầu Nextcloud lắng nghe trên cổng 8080 đối với các yêu cầu HTTP không an toàn thay vì 80.

snap set nextcloud ports.http=8080

Snapd cũng cung cấp một số cài đặt cấu hình toàn hệ thống được mô tả ở đây .

Tất cả những điều đó sẽ giúp bạn bắt đầu khi mọi thứ cần sửa chữa. Vì vậy, hãy đến với nó.

 

Đăng nhận xét

0 Nhận xét