Điểm:2

Làm cách nào để Trình quản lý hệ thống có thẩm quyền theo dõi TẤT CẢ các gói Python mà người dùng của họ cài đặt?

lá cờ ru

Gần đây, rõ ràng là tôi không biết làm cách nào để quản lý các gói Python trên hệ thống của mình.

Đơn giản là tôi PHẢI có thể biết tất cả những gì đã được cài đặt và theo ID người dùng nào, vì cộng đồng Python được huấn luyện rằng không nên cài đặt bất cứ thứ gì dưới dạng Root. . . . Điều này để lại cho tôi một vấn đề nghiêm trọng!

Trong trường hợp này, tôi đang sử dụng các bản phân phối Fedora, HẦU HẾT nhưng không chỉ dành riêng cho Máy chủ Fedora (tất cả một số dạng của Fedora Core) NHƯNG, tôi chắc chắn rằng câu hỏi cũng áp dụng cho các bản phân phối khác.

Cuối cùng, câu hỏi là; người quản lý hệ thống phải giải quyết vấn đề này ĐÚNG CÁCH như thế nào?

Xin lưu ý rằng tôi KHÔNG hỏi về cách cài đặt Python và tôi không nói về một hệ thống phát triển, trong đó nếu các nhà phát triển làm hỏng hệ thống của chính họ, thì điều đó chỉ ảnh hưởng đến HỌ, mặc dù điều đó vẫn không tốt.

Điều tôi tập trung vào là MỘT SỐ gói phần mềm sử dụng Python có các gói con riêng không có sẵn thông qua mô hình cài đặt gói nền tảng thông thường. Và chính một trong số đó đã thúc đẩy tôi đột ngột phát hiện ra rủi ro mà tôi gặp phải; Mailman3 chỉ là một gói như vậy khi cài đặt nó cũng không cài đặt tất cả các gói phụ cần thiết, do đó, cần có một số "cài đặt pip" cho những gói đó. Và khi thảo luận với một đồng nghiệp, anh ấy thừa nhận đã làm hỏng một hệ thống mà tôi chịu trách nhiệm quản lý, chỉ để biết rằng anh ấy đã làm hỏng nó thông qua một gói Python mà anh ấy đã cài đặt...

...Tôi cảm thấy mình có thể bị buộc phải triển khai bảo mật để người dùng cá nhân KHÔNG THỂ cài đặt các gói Python và do đó làm tăng khối lượng công việc của riêng tôi, không chỉ để làm điều đó mà còn để cài đặt các gói họ muốn CHO họ và tất cả những rắc rối kéo theo. Tôi hy vọng tôi không biết gì về một số "tính năng" của Python! Mặt khác, tôi nghĩ Python cần suy nghĩ lại nghiêm túc về cách nó thực hiện những gì nó làm vì nó chắc chắn có vẻ rất không thân thiện đối với (những) người quản lý hệ thống.

Davidw avatar
lá cờ in
Đây là lúc phần mềm Quản lý cấu hình phát huy tác dụng.
lá cờ in
Bắt đầu sử dụng vùng chứa cho phần mềm python của bạn? Và khiến người dùng cung cấp Dockerfiles bao gồm tất cả các lượt cài đặt pip? ... `Tôi cảm thấy mình có thể bị buộc phải triển khai bảo mật để người dùng cá nhân KHÔNG THỂ cài đặt gói Python ` nhà phát triển/người dùng của bạn không được có quyền truy cập vào máy chủ sản xuất. Họ phải có môi trường dành cho nhà phát triển và có thể cung cấp cho bạn dockerfiles, playbook hoặc thứ gì đó khác giúp xây dựng môi trường sản xuất trên một nền tảng đã biết.
lá cờ ru
@Zoredache Người làm hỏng máy không phải là nhà phát triển, họ là người đang cố cài đặt một gói được viết ở một nơi khác, không phải Mailman3 nhưng thích nó. Lưu ý rằng Mailman3 trên Fedora có gói chính thức nhưng nó KHÔNG cài đặt tất cả các thành phần. Vấn đề nằm ở chỗ đó.
Điểm:1
lá cờ us

nhà phát triển của bạn nên sử dụng Môi trường ảo Python cho các ứng dụng. Với các môi trường ảo này, các phần phụ thuộc của ứng dụng đó được cài đặt trong môi trường cụ thể đó và chúng không ảnh hưởng đến các môi trường khác.

Khi ứng dụng được phát triển và thử nghiệm trong môi trường ảo, thì nó sẽ được xác minh rằng tất cả các phụ thuộc được cài đặt chính xác.

Nếu một số gói bị thiếu phần phụ thuộc, thì bạn cần thông báo cho người bảo trì gói để cập nhật phần phụ thuộc.

lá cờ ru
Nếu hệ thống gặp sự cố này (cài đặt sai phần mềm) là một môi trường phát triển, tôi sẽ không quá lo lắng!
Điểm:0
lá cờ cn

Ai đó có thể chịu trách nhiệm tự động cài đặt các ứng dụng cần thiết và đảm bảo chúng hoạt động. Có thể cung cấp máy ảo hoặc vùng chứa với các ứng dụng được cài đặt sẵn. Tùy thuộc vào tổ chức của bạn cho dù họ được coi là người điều hành hay người phát triển hơn.

Quản trị viên hệ điều hành ủng hộ trình quản lý gói hệ thống có thể bao bọc mọi gói trong rpm hoặc deb. Hợp nhất cài đặt trong trường hợp này là Mailman 3 hoàn toàn để quay lại phần phụ thuộc python của nó.Các gói có thể được ký và phân phối với cùng một cơ sở hạ tầng áp dụng các bản cập nhật hệ điều hành. Tuy nhiên, đòi hỏi công việc đóng gói đáng kể, cho điều và phụ thuộc của nó. Hình như Fedora có một gói mailman3 và cơ sở hạ tầng của họ sử dụng nó.

Các nhà phát triển và những người dùng khác có thể từ bỏ trình quản lý gói hệ thống để chuyển sang một ngôn ngữ cụ thể, trong trường hợp này là Python pip. Có quyền truy cập vào các phiên bản mới nhất của một số lượng lớn các gói và có thể cài đặt chúng trong thư mục của người dùng không có đặc quyền. Tuy nhiên, quản trị viên có ít quyền kiểm soát hơn và người dùng có thể gặp rắc rối. Có lẽ họ sẽ gặp rắc rối như Người đưa thư 3 phụ thuộc có thư viện C để liên kết đến, thiết lập MTA và cơ sở dữ liệu và ứng dụng giao diện người dùng web riêng biệt.

Các xung đột mà bạn quan sát được giữa các gói hệ thống và gợi ý pip mà bạn cần chọn một gói. Hoặc gói nó theo cách tương thích với python hệ thống hoặc nó đặt trong một virtualenv chứa các yêu cầu. Trong khi bạn có thể loại bỏ gói pip để ngăn người dùng làm hỏng mọi thứ, pip có thể được khởi động bởi một người dùng đã xác định. Lý tưởng nhất là giúp mọi người cài đặt một bộ ứng dụng đã biết.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.