it-swarm-vi.com

Khi nào nên sử dụng các gói trong aptitude so với CPAN / Gems / PyPI?

Quy tắc chung khi nào cài đặt gói từ chính thức .deb kho lưu trữ, so với khi nào cài đặt với trình quản lý gói của ngôn ngữ? Các gói trong kho lưu trữ ngược dòng thường ít nhất là hơi lỗi thời, nhưng tôi cũng không muốn các gói của mình va chạm với các gói "chính thức" và có vẻ như năng khiếu sẽ buộc tôi phải cài đặt chính thức những người trong nhiều trường hợp nào.

5
Benjamin Pollack

Đây là một câu hỏi khó trả lời chung chung.

Các gói .deb chính thức cung cấp cho bạn sự ổn định và hỗ trợ đầy đủ của cộng đồng Ubuntu. Nếu bạn không cần phiên bản mới nhất, bạn có thể sử dụng giải pháp này tốt hơn. Bạn cũng có hỗ trợ trình quản lý gói để cập nhật, xóa, v.v.

Nếu bạn cần hỗ trợ từ thượng nguồn hoặc cần các tính năng mới nhất, tốt hơn hết bạn nên lấy nó từ các hệ thống phân phối như CPAN, đá quý, lê, v.v.

6
txwikinger

Theo kinh nghiệm (không thừa nhận) của tôi, các nhà quản lý gói ngôn ngữ cụ thể không làm công việc tốt như .deb Trong việc theo dõi các phụ thuộc hoàn toàn bên ngoài ngôn ngữ ranh giới (Tôi đặc biệt nghĩ đến sự phụ thuộc vào các thư viện được mã hóa C mà gói được sử dụng trong Python, Perl, Ruby, v.v.).

Nếu (giả sử) một gói Pypi Python 'barfoo' Yêu cầu một số thư viện libfoobar để xây dựng _bf.so Python tiện ích mở rộng mà gói sử dụng và cần libfoobar ít nhất là ở mức phát hành 5.2, Tùy thuộc vào bạn để theo dõi .deb Cung cấp các bản phát hành phù hợp của libfoobar (và bạn có thể không tìm thấy, nếu gói Pypi đang theo dõi gần nhất và mới nhất ngược dòng) - và bằng cách nào đó hãy theo dõi nó trong trường hợp bạn gỡ cài đặt barfoo sau (vì vậy libfoobar nhà cung cấp bị "mồ côi" và có thể/nên xóa).

Tôi không nghĩ rằng vấn đề tích hợp Pypi/CPAN/vv với các hệ thống phân phối gói khác vẫn chưa thể được coi là "giải quyết". Đối với những cơn đau đầu về quản trị tối thiểu, nếu bạn có thể nhận được bằng .deb Chính thức (không cần f336urz & c mới nhất và lớn nhất), tôi nghĩ điều đó sẽ được khuyến khích; tất nhiên, ở một thái cực khác, đối với một gói bạn do muốn được cập nhật siêu tốc (ví dụ: bạn là một trong những tác giả/nhà bảo trì thượng nguồn của gói ;-), có tùy chọn giữ một repo mới trong bất kỳ hệ thống kiểm soát phiên bản nào mà gói sử dụng (svn, hg, git, Bazaar, ...) và giữ cho nó được xây dựng từ các nguồn. Pypi/CPAN/& c là "ở giữa". Chắc chắn một số thời gian theo cách này cũng sẽ được khuyến khích.

Và, một tùy chọn có thể được xem xét là xây dựng gói .deb Của riêng bạn (dựa trên gói Pypi/CPAN/& c, hoặc thậm chí trên các nguồn ngược dòng) và giữ kho lưu trữ các gói như vậy (cho các gói đó cho mà bạn thấy chính thức .deb repos quá kém hoặc ngược). Không có gì rắc rối hơn việc cài đặt khác (theo dõi thủ công các phụ thuộc bên ngoài ngôn ngữ) và sẽ giúp xác định "gói mồ côi" và tương tự (cộng với, nếu bạn xuất bản bao bì của mình, bạn cũng có thể giúp đỡ người khác ;-).

5
Alex Martelli

Tôi thực sự đã chống lại việc sử dụng Aptitude để quản lý các gói từ Trình quản lý gói khác. CPAN, Gems, Pecl, Pear, v.v. là những người quản lý gói cho các ngôn ngữ tương ứng của họ. Chúng là những gì bạn nên mặc định - theo ý kiến ​​của tôi - bởi vì đó là những gì chúng được thiết kế cho. Chưa kể hầu hết tất cả những người xử lý nâng cấp và cập nhật bây giờ (cập nhật đá quý, nâng cấp đá quý, v.v.). Nó giống như sử dụng yum để cài đặt Apache trên máy Ubuntu của bạn.

Điều đó đang được nói rằng có một vài lần khi phiên bản Aptitude trị vì tối cao. Một trong những điều đó là khi việc cài đặt một mô-đun từ trình quản lý gói ngôn ngữ không thành công (điều này thường là do các vấn đề cấu hình khác nhau) Tôi hiếm khi gặp phải vấn đề này - nhưng khi tôi thực hiện gói tương quan từ Aptitude thì có mẹo.

Ưu tiên theo ý kiến ​​của tôi Trình quản lý gói ngôn ngữ> Năng khiếu.

1
Marco Ceppi