Tôi nên sử dụng phiên bản Perl nào trên Windows? [đóng cửa]


98

Trang web win32.perl.org cung cấp các tham chiếu đến một số bản phân phối Perl cho MS Windows.

Trong một thời gian dài, tôi đã sử dụng ActivePerl từ ActiveState nhưng gần đây tôi đã chuyển sang Strawberry Perl .

IMHO Ưu điểm duy nhất mà Active Perl vẫn có so với Strawberry Perl là thực tế là nó đi kèm với Perl Tk, có nghĩa là nó dễ cài đặt Devel :: ptkdb trình gỡ lỗi đồ họa. Ngoài ra, tôi nghĩ Strawberry Perl có tất cả những lợi thế.


Kể từ bài đăng này, tôi bắt đầu gói lại Strawberry Perl với rất nhiều mô-đun bổ sung, bao gồm Moose, Dancer và Padre. Độc giả có thể muốn xem xét việc này cũng như: dwimperl.com
szabgab

Câu trả lời:


80

Strawberry Perl chỉ ngày càng tốt hơn. Một vấn đề mà tôi đã nhiều lần gặp phải với ActiveState là các mô-đun của tôi đôi khi không cài đặt được vì tôi cần nâng cấp lên mô-đun lõi, nhưng chúng sẽ không cho phép điều đó. Vì vậy, tất cả những người không sử dụng Windows đều có thể sử dụng mã của tôi, nhưng họ không thể làm điều đó với Perl của ActiveState.

ActiveState cũng có một hệ thống xây dựng rất khéo léo thường không báo cáo chính xác lý do tại sao một mô-đun không được xây dựng. Tôi đã quá mệt mỏi với việc gửi email và yêu cầu thông tin này đến nỗi cuối cùng tôi đã từ bỏ. Tôi muốn mã của mình chạy trên Windows, nhưng nếu ActiveState không cung cấp cho tôi thông tin đó và không cung cấp cho tôi bất kỳ tùy chọn nào để nâng cấp các mô-đun lõi, thì tôi sẽ không thể sử dụng nó. Một số mô-đun của tôi KHÔNG có lỗi xây dựng trên bất kỳ hệ điều hành nào - ngoại trừ những hệ điều hành có ActiveState Perl. Hỗ trợ Strawberry Perl và đừng lo lắng về ActiveState.

Nếu ActiveState đã sửa hệ thống xây dựng của họ và chính sách 'không nâng cấp lên mô-đun cốt lõi' của họ, thì bạn nên xem lại.


8
Có thể nâng cấp các mô-đun lõi từ AS Perl 5.8.8 build 518 (phát hành vào tháng 1 năm 2007). Họ cũng đã nâng cấp hệ thống xây dựng CPAN của mình vào năm 2008, nhưng tôi không biết chính xác khi nào.
Alexandr Ciornii

1
Strawberry Perl là tuyệt vời. Tuy nhiên, nếu bạn sử dụng MSys Bash làm trình bao của mình, có một vấn đề đã biết là các lệnh như cpankhông hoạt động.
Colonel Panic

30

Không có phân phối Perl tốt nhất duy nhất. Vanilla Perl ( Perl có thể di dời, phân phối lại) và Strawberry Perl thân thiện với nhà phát triển hơn có tiềm năng đáng kể.

Tuy nhiên, có một lý do rất tốt tại sao ActivePerl lại rất phổ biến. Các lợi thế chủ yếu đến ở dạng dễ triển khai cho người dùng cuối của bạn (không cần trình biên dịch để sử dụng trình quản lý gói của họ, PPM). ActiveState PDK (Perl Development Kit) cũng là một cách rất hay để đóng gói một tệp nhị phân Windows hoàn chỉnh mà không yêu cầu bất kỳ Perl nào được cài đặt trên máy của người dùng.

Thật không may, nhiều mô-đun CPAN rất đẹp (như liên kết Perl cho OpenSSL) không có sẵn thông qua kho lưu trữ của ActiveState.

Giống như hầu hết mọi thứ, bạn nên lựa chọn dựa trên việc phân phối nào đáp ứng tốt nhất nhu cầu của bạn.


PerlApp có vẻ như là một công cụ hữu ích (tôi chưa so sánh nó với Par :: Packer), nhưng PDK mà nó đi kèm có thẻ giá 300 đô la.
Nate Glenn

17

Tôi chủ yếu sử dụng ActivePerl, nhưng tôi thực sự thích vị trí của Strawberry Perl. Tôi thích rằng shell cpan "chỉ hoạt động" và tôi không phải nhảy qua một loạt các vòng để cài đặt các mô-đun XS. (ví dụ: ExtUtils :: FakeConfig, mặc dù điều đó ít cần thiết hơn trong các bản dựng ActivePerl gần đây hơn.) Tôi cũng vui mừng về khả năng Perl trên một đĩa thu nhỏ. Bản phát hành dành cho nhà phát triển của Portable Perl đã khá hữu ích.

Tôi đồng ý rằng ưu điểm chính của ActivePerl là Tk có sẵn, nhưng lưu ý rằng kể từ 5.10 ActivePerl không còn được vận chuyển với Tk theo mặc định. Thay vào đó, nó được vận chuyển với Tkx.


13

Tương lai chắc chắn là Strawberry Perl. Cho dù bạn chọn cái nào (và vấn đề này không phải là duy nhất đối với Windows), nếu bạn đang phân phối kết quả cuối cùng cho các máy khác, bạn sẽ phải cẩn thận đối với trình cài đặt / hướng dẫn cài đặt mà bạn cung cấp.


6

Strawberry Perl giống Perl trên * nix hơn. Nó đi kèm với MinGW tự nó có thể hữu ích. Các mô-đun Perl cũng có thể được cài đặt bằng ppm hoặc cpan.


1
Lưu ý: nếu bạn cài đặt mingw cùng với dâu tây perl, hãy lưu ý rằng dâu tây perl có thể đang sử dụng các phiên bản khác nhau của ứng dụng minsys. Tôi đã gặp một số vấn đề lớn khi nhận dâu tây perl để xây dựng Win32 :: OLE và các mô-đun khác cho đến khi tôi xóa mingw khỏi đường dẫn của mình.
Robert P

Nếu bạn thực sự muốn Perl trên Windows như Perl trên * nix, hãy cài đặt SUA / SFU (không cài đặt Perl đi kèm) và sử dụng Perl của Debian Interix / pkgsrc-interix.
MkV

4

Tôi thích Strawberry Perl hơn. Đối với một, nó cài đặt gcc như một phần của mingwin, để bạn có thể cài đặt trực tiếp từ CPAN.

Tôi đã sử dụng perl của ActiveState trong một thời gian, nhưng tôi đã gặp phải rất nhiều lỗi từ máy này sang máy khác mặc dù chúng (dường như) được cấu hình giống hệt nhau. Bao bì mô-đun PPM của họ cũng để lại một hương vị xấu. Nó làm cho việc quản lý các gói trở nên đơn giản, nhưng bạn dựa vào chúng để cập nhật PPM sau khi cập nhật CPAN. Ngoài ra, PPM không phải là nội dung đầy đủ của CPAN; Lần cuối cùng tôi sử dụng ActivePerl, tôi đã gặp khó khăn trong việc tìm kiếm tất cả các mô-đun tôi cần và những mô-đun ở đó thường là phiên bản cũ.


2
Tôi tò mò điều gì đã đánh giá một cuộc bỏ phiếu thấp.
gWaldo

3

Tôi luôn sử dụng Cygwin (xterms với bash tốt hơn nhiều so với cửa sổ cmd) và Perl đi kèm với nó. Tôi cài đặt mô-đun Perl với vỏ CPAN (lệnh "cpan"); nó hoạt động tốt.


3

ActiveState Perl đã được coi là Windows Perl trên thực tế trong một thời gian khá dài. Mặc dù nó có rất nhiều sai sót và nhiều người trong chúng ta sử dụng một thứ khác, nhưng nó vẫn rất phổ biến. Nếu bạn đang xây dựng mã Perl để được thực thi trên một máy Windows (không phải máy của bạn), tôi sẽ cân nhắc việc viết nó theo hướng mặc định (hoặc mặc định như tôi có thể lấy) AS cài đặt Perl thực thi nó. Bất cứ điều gì khác và bạn đang tạo ra các rào cản gia nhập cho những người khác cố gắng sử dụng ứng dụng của bạn sau này.


AFAIK, PAR pp hoạt động tốt với Strawberry, đó là một lợi thế lớn về mặt phân phối ứng dụng của bạn vì IIUC bạn sẽ cần giấy phép OEM để có thể phân phối ứng dụng đã biên dịch pp nếu bạn sử dụng DLL của họ.
Sinan Ünür

3
@Sinan, tuyên bố của bạn về cấp phép ActivePerl và PAR không chính xác. Xem điều khoản 4 của giấy phép The license also allows You to redistribute parts of the Package as part of an application generated by wrapping tools such as PAR, PerlApp or Perl2Exe. However, this License does not allow You to (a) redistribute the Package as a whole, (b) use its parts to create a language distribution, or (c) redistribute the PerlScript, Perl for ISAPI or PerlEx components with Your application. activestate.com/activeperl/license
daotoad vào

@daotoad Hmmmm ... Tôi có thể thề rằng phiên bản trước đó không cho phép điều đó, nhưng tôi thậm chí không chắc liệu mình có nhớ chính xác hay không. Cảm ơn bạn đã sửa chữa.
Sinan Ünür

2

Tôi gặp vấn đề lớn với Strawberry, và tôi cảm thấy không có sự hỗ trợ. Những người tốt ở PerlMonks đã không thể giúp tôi, và tôi đã bỏ cuộc. Nếu trang này khiến bạn thiếu tự tin nhất định, có câu trả lời cho bạn.


1

Đoạn mã tôi viết nằm trong danh sách 500 công ty nằm trong danh sách Fortune, vì vậy cảm giác "công ty" là hữu ích. Tôi đã sử dụng ActivePerl cho đến nay và nó hoạt động tốt cho cả công cụ nội bộ và phân phối cho những khách hàng lớn đó.


1

Tôi đang sử dụng Active State Perl 5.014, hoạt động tốt.

Vấn đề là nó không có phiên bản mới nhất của Padre (IDE, môi trường gỡ lỗi).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.