2012-07-05 20 views
7

Tôi quan tâm đến những gì có thể xảy ra (ngoại trừ Python không được cài đặt trong hệ thống đích) khi sử dụng Python để kiểm soát luồng gói deb tập lệnh (preinst, postinst, v.v.). Nó sẽ được thực tế để thực hiện những kịch bản trong Python, không phải trong sh?Sẽ là thực tế để triển khai các tập lệnh deb preinst, postint, etc. trong Python, không phải trong sh

Vì tôi hiểu nó ít nhất có thể.

+0

Bạn có thể sử dụng bất kỳ ngôn ngữ nào miễn là preinst hoặc bất kỳ ngôn ngữ nào có thể thực thi được. Nó có thể là một kịch bản 'chmod + x'ed với hashbang thích hợp hoặc một chương trình C được biên dịch. – C0deH4cker

+0

tcc để biên dịch c như một ngôn ngữ kịch bản;) –

+0

Bạn có thể, nhưng tại sao bạn? 'sh' là khá tốt như những gì nó làm, đó là một ngôn ngữ keo để gọi các chương trình khác nhau. Không có nhiều logic trong các kịch bản kiểm soát dòng chảy, thậm chí không tính toán - nó chủ yếu là di chuyển các tập tin, thay đổi quyền, tạo các liên kết ... – cha0site

Trả lời

6

Lý do duy nhất này không được thực hiện phổ biến, không phải là quy ước và Python thường không hữu ích hoặc đơn giản hơn so với tập lệnh shell thuần túy đối với các loại tập lệnh duy trì. Khi nó hữu ích hơn, bạn thường có thể phá vỡ chức năng cần Python trong một tập lệnh Python riêng biệt được gọi bởi các kịch bản lệnh bảo trì.

Có thể giúp theo quy ước trong trường hợp này, vì có rất nhiều công cụ và tập lệnh hữu ích (ví dụ: Lintian, Debhelper) thường cho rằng tập lệnh duy trì sử dụng bash. Nếu họ không, thì không sao, nhưng những công cụ đó có thể không hữu ích như chúng sẽ khác. Vấn đề khác duy nhất tôi nghĩ bạn cần biết là nếu các tập lệnh preinst hoặc postrm cần Python, thì Python cần phải là gói phụ thuộc trước (Pre-Depends) của gói thay vì chỉ là Depends.

Điều đó nói rằng, tôi thấy hữu ích khi sử dụng Python trong tập lệnh bảo trì trước đây.

+0

Ồ, tôi cũng đã nghĩ về kịch bản Python riêng biệt được gọi từ chính sh một vì vẫn có thể có một số logic được thực hiện tốt hơn trong Python. Tôi điều python như là một phụ thuộc không phải là khá một vấn đề vì nó thường được cài đặt sẵn với hầu như tất cả các hệ điều hành dựa trên debian phổ biến. Tôi thấy vấn đề lớn nhất trong các kịch bản như vậy hỗ trợ. Về cơ bản bạn cần phải cẩn thận về phiên bản Python vì nó không phải là hầu như không ổn định như sh. Cảm ơn câu trả lời của bạn. –

+4

Điều đó mang lại một vấn đề hợp lệ khác; nếu bạn nhắm mục tiêu một phiên bản Python cụ thể, bạn sẽ không thể hỗ trợ tất cả các hệ điều hành dựa trên Debian phổ biến hiện tại. Ví dụ, bản phát hành Ubuntu LTS lâu đời nhất (8.04) chỉ hỗ trợ Python 2.5, trong khi Ubuntu 10.04 chỉ hỗ trợ Python 2.6 và Ubuntu 12.04 chỉ hỗ trợ Python 2.7. Nhưng nếu bạn có thể viết Python tương thích (không thực sự là khó), bạn sẽ ổn thôi. –

Các vấn đề liên quan