Các ràng buộc Rpm-Python
Trình quản lý gói RPM (RPM) là một hệ thống quản lý gói điều khiển bằng dòng lệnh có khả năng cài đặt, gỡ cài đặt, xác minh, truy vấn và cập nhật các gói phần mềm máy tính Show
Gói này bao gồm các ràng buộc Python cho librpm, cho phép các tập lệnh Python thao tác các gói RPM và cơ sở dữ liệu RPM Viết chương trình Python in danh sách phần mềm được cài đặt trên hệ thống của bạn, sau đó kiểm tra xem ứng dụng có hoạt động chính xác không Đã đăng. Ngày 1 tháng 12 năm 2021 . %t phút đọc . của Jose Vicente Nunez (Sudoer) Hình ảnh Trò chuyện WOCinTech, CC BY 2. 0 Khi cài đặt phần mềm trên hệ thống Linux, trình quản lý gói của bạn sẽ theo dõi những gì đã được cài đặt, những gì nó phụ thuộc vào, những gì nó cung cấp, v.v. Cách thông thường để xem siêu dữ liệu đó là thông qua trình quản lý gói của bạn. Trong trường hợp của Fedora hoặc Red Hat Enterprise Linux, đó là cơ sở dữ liệu RPM Cơ sở dữ liệu RPM có thể được truy vấn từ dòng lệnh bằng lệnh 1, hỗ trợ một số tùy chọn định dạng rất đẹp. Ví dụ: để lấy danh sách tất cả các gói được sắp xếp theo kích thước, tôi có thể sử dụng một ít keo Bash để làm như sau
Lệnh 1 có nhiều tùy chọn, nhưng nếu tôi muốn định dạng các số ở đầu ra thì sao? Sau khi bạn đã viết một tập lệnh để quản lý truy vấn, còn đơn vị kiểm tra mã thì sao? [ Tải xuống bảng cheat script Bash shell để luôn nắm được kiến thức cơ bản. ] Đây là nơi các ngôn ngữ khác như Python tỏa sáng. Trong hướng dẫn này, tôi trình bày cách
Tải xuống DevOps tuyệt vời
Tôi sẽ trình bày rất nhiều ở đây, vì vậy kiến thức cơ bản về Python (ví dụ: hướng đối tượng hoặc OO, lập trình) là cần thiết. Bạn sẽ có thể nắm bắt cách tạo lớp Python ngay cả khi bạn không biết nhiều về lập trình OO. (Tôi sẽ loại bỏ các tính năng nâng cao, như lớp ảo, lớp dữ liệu và các tính năng khác. ) Ngoài ra, bạn nên biết cơ sở dữ liệu RPM là gì. Ngay cả khi bạn không biết nhiều, mã này rất đơn giản để làm theo và mã soạn sẵn nhỏ Có một số chương dành riêng cho việc tương tác với cơ sở dữ liệu RPM trong tài liệu Fedora. Tuy nhiên, trong bài viết này, tôi sẽ viết một chương trình đơn giản để in danh sách các gói RPM được sắp xếp theo kích thước Cơ sở dữ liệu RPM và PythonPython là ngôn ngữ mặc định tuyệt vời dành cho quản trị viên hệ thống và cơ sở dữ liệu RPM đi kèm với các ràng buộc giúp dễ dàng truy vấn bằng Python [ Đăng ký khóa học trực tuyến miễn phí Tổng quan về kỹ thuật của Red Hat Enterprise Linux. ] Cài đặt gói python3-rpmĐể hướng dẫn này hoạt động, bạn cần cài đặt gói 4RPM có mối quan hệ sâu sắc với hệ thống. Đó là một trong những lý do nó không được cung cấp thông qua lệnh 5 và kho lưu trữ mô-đun PyPiThay vào đó hãy cài đặt gói 4 bằng lệnh 7
Cuối cùng, sao chép mã cho hướng dẫn này
Tạo môi trường ảo PythonPython có một tính năng gọi là môi trường ảo. Một môi trường ảo cung cấp một vị trí hộp cát để
Đối với hướng dẫn này, hãy sử dụng môi trường ảo với các tính năng sau
Tạo và kích hoạt nó như thế này 4Mã hóa lớp RPM truy vấnĐối với ứng dụng ví dụ này, tôi sẽ bọc phiên bản RPM trong trình quản lý ngữ cảnh. Điều này giúp sử dụng dễ dàng hơn mà không phải lo lắng về việc đóng cơ sở dữ liệu RPM theo cách thủ công. Ngoài ra, tôi sẽ thực hiện một số phím tắt để trả về kết quả của truy vấn cơ sở dữ liệu. Cụ thể, tôi đang giới hạn số lượng kết quả và quản lý sắp xếp [ Tìm hiểu 16 bước để xây dựng các cụm Kubernetes sẵn sàng sản xuất. ] Đặt tất cả chức năng này vào một lớp (tập hợp dữ liệu và phương thức) cùng nhau là điều làm cho hướng đối tượng trở nên hữu ích. Trong ví dụ này, chức năng RPM nằm trong một lớp có tên là 2 và mục đích của nó là
Đầu tiên, sử dụng lớp 2 để lấy danh sách tối đa năm gói, được sắp xếp theo kích cỡ 7Bạn có thể sử dụng một tính năng của Python được gọi là các đối số được đặt tên, giúp việc sử dụng lớp dễ dàng hơn nhiều Nếu bạn hài lòng với các đối số mặc định thì sao? 8Đây là cách để thực hiện nó
3Một vài điều cần lưu ý
Tiến hành kiểm tra đơn vị với unittestĐây là một câu hỏi quan trọng. Làm thế nào tốt là mã này mà không cần kiểm tra? Tìm hiểu thêm về tự động hóa
Tự động hóa mã kiểm tra là một ý tưởng hay. Kiểm thử đơn vị khác với các loại kiểm thử khác. Nhìn chung, nó làm cho một ứng dụng mạnh mẽ hơn vì nó đảm bảo ngay cả các thành phần nhỏ cũng hoạt động chính xác (và nó hoạt động tốt hơn nếu nó chạy sau mỗi thay đổi) Trong trường hợp này, Python unittest không gì khác hơn là một lớp tự động kiểm tra xem một hàm có hoạt động chính xác hay không Một bài kiểm tra đơn vị tốt
Tôi đã viết một bài kiểm tra đơn vị cho lớp 9
6Tôi thực sự khuyên bạn nên đọc tài liệu chính thức về unittest để biết thêm chi tiết, vì có rất nhiều thứ để kiểm tra đơn vị hơn mã đơn giản này truyền tải. Ví dụ: có thử nghiệm mô phỏng, đặc biệt hữu ích cho các tình huống phụ thuộc vào hệ thống phức tạp Cải thiện tập lệnh với argparseBạn có thể viết một CLI nhỏ bằng cách sử dụng lớp 2 đã tạo trước đó và để tùy chỉnh dễ dàng hơn, hãy sử dụng argparseArgparse cho phép bạn
0
Sử dụng lớp này để truy vấn cơ sở dữ liệu RPM trở nên rất dễ dàng bằng cách phân tích cú pháp các tùy chọn và sau đó gọi 45 4Vì vậy, làm thế nào để đầu ra trông bây giờ? 0Những gì tôi đã bảo hiểmHình ảnh Tải ngay Có rất nhiều thông tin trong bài báo này. Tôi được bảo hiểm
Trong bài viết tiếp theo của tôi, tôi sẽ khám phá cách đóng gói một ứng dụng để cài đặt trên một máy khác bằng Python Xem các bài viết liên quan này trên Enable SysadminHình ảnh Cách tạo gói Linux RPM Bạn đã viết một tập lệnh tuyệt vời mà bạn muốn phân phối, vậy tại sao không đóng gói nó dưới dạng RPM? Đã đăng. Ngày 27 tháng 11 năm 2020 Tác giả. Valentin Bajrami (Accelerator, cựu sinh viên Sudoer) Hình ảnh Các mẹo khác để đóng gói phần mềm Linux của bạn bằng RPM Tìm hiểu cách biên dịch và đóng gói ứng dụng Linux của bạn để phân phối với Red Hat Package Manager Đã đăng. Ngày 4 tháng 11 năm 2021 Tác giả. Jose Vicente Nunez (Sudoer) Hình ảnh Cách đóng gói các ứng dụng nguồn mở dưới dạng RPM Bạn muốn sử dụng một phần mềm của bên thứ ba nhưng không có RPM để cài đặt? . Bạn có thể tùy chỉnh các gói phần mềm của bên thứ ba bằng RPM Đã đăng. Ngày 11 tháng 11 năm 2021 Tác giả. Jose Vicente Nunez (Sudoer) chủ đề. Quản lý gói Kiểm tra Python Jose Vicente NunezNgười cha và người chồng tự hào, nhà phát triển phần mềm và quản trị viên hệ thống. Á hậu giải trí và đam mê. Thêm về tôi Hội nghị thượng đỉnh mũ đỏ 2022. theo yêu cầuNhận thông tin mới nhất về Ansible, Red Hat Enterprise Linux, OpenShift, v.v. từ sự kiện ảo theo yêu cầu của chúng tôi Đăng kí miễn phí Nội dung liên quanHình ảnh 2 cách thiết thực để sử dụng mô-đun quy trình con Python Tìm hiểu cách chạy các lệnh và tập lệnh Bash trong tập lệnh Python của bạn bằng mô-đun quy trình con Đã đăng. Ngày 23 tháng 11 năm 2022 Tác giả. Nicole Lama (Sudoer, Mũ đỏ) Hình ảnh Python so với. Bash? Mô-đun quy trình con của Python dễ dàng tích hợp Bash vào tập lệnh Python của bạn Đã đăng. Ngày 22 tháng 11 năm 2022 Tác giả. Nicole Lama (Sudoer, Mũ đỏ) Hình ảnh Cách phân tích dữ liệu chuỗi thời gian bằng Python và InfluxDB Cơ sở dữ liệu quan hệ không hoạt động tốt với dữ liệu chuỗi thời gian. Hướng dẫn này chỉ cho bạn cách sử dụng InfluxDB để phân tích dữ liệu được thu thập theo thời gian |