Windows'ta hangi Perl sürümünü kullanmalıyım? [kapalı]


98

Win32.perl.org web sitesi MS Windows için birkaç Perl dağıtımları başvurular sağlar.

Uzun zamandır ActiveState'ten ActivePerl kullanıyorum ancak son zamanlarda Strawberry Perl'e geçtim .

IMHO Active Perl'in hala Strawberry Perl'e göre sahip olduğu tek avantaj Perl Tk ile birlikte gelmesidir , bu da onun grafik hata ayıklayıcı Devel :: ptkdb'yi kurması anlamına gelir . Bunun dışında Strawberry Perl'in tüm avantajları olduğunu düşünüyorum.


Bu gönderiden beri Strawberry Perl'i Moose, Dancer ve Padre gibi birçok ek modülle yeniden paketlemeye başladım. Okuyucular bunu da düşünmek isteyebilir: dwimperl.com
szabgab

Yanıtlar:


80

Strawberry Perl giderek daha iyi hale geliyor. ActiveState ile defalarca yaşadığım bir sorun, modüllerimin bazen bir çekirdek modüle yükseltmeye ihtiyacım olduğu için yüklenememesi, ancak buna izin vermeyecekler. Böylece herkes değil , Windows kodumu kullanabilirsiniz kullanmak, ancak ActiveState'nın Perl ile bunu yapamaz.

ActiveState ayrıca, bir modülün neden inşa edilemediğini tam olarak bildiremeyen çok tehlikeli bir yapı sistemine sahiptir. E-posta göndermekten ve bu bilgiyi istemekten o kadar yoruldum ki sonunda vazgeçtim. Kodumun Windows üzerinde çalışmasını istiyorum, ancak ActiveState bana bu bilgiyi sağlamazsa ve bana çekirdek modülleri yükseltme seçeneği sunmazsa, onu kullanamam. Bazı modüllerimde, ActiveState Perl ile olanlar hariç, herhangi bir işletim sisteminde HİÇBİR yapı hatası yoktur. Strawberry Perl'i destekleyin ve ActiveState için endişelenmeyin.

ActiveState, derleme sistemlerini ve 'çekirdek modüllere yükseltme yapılmaması' politikasını düzelttiyse, yeniden gözden geçirilmeye değer.


8
Çekirdek modülleri AS Perl 5.8.8 yapı 518'den yükseltmek mümkündür (Ocak 2007'de piyasaya sürüldü). Ayrıca CPAN inşa sistemlerini 2008'de yükselttiler, ancak tam olarak ne zaman olduğunu bilmiyorum.
Alexandr Ciornii

1
Strawberry Perl harika. Ancak, kabuğunuz olarak MSys Bash'i kullanırsanız, gibi komutların çalışmadığı bilinen bir sorun vardır cpan.
Albay Panic

30

Tek en iyi Perl dağıtımı yoktur. Vanilla Perl (yeniden yerleştirilebilir, yeniden dağıtılabilir Perl) ve daha geliştirici dostu olan Strawberry Perl önemli bir potansiyele sahiptir.

Ancak ActivePerl'in bu kadar popüler olmasının çok iyi bir nedeni var . Avantajlar çoğunlukla son kullanıcılarınız için dağıtım kolaylığı şeklinde gelir (paket yöneticisi PPM'yi kullanmak için derleyiciye gerek yoktur). ActiveState PDK (Perl Geliştirme Kiti) ayrıca, kullanıcının makinesine herhangi bir Perl kurulmasını gerektirmeyen eksiksiz bir Windows ikilisini paketlemenin çok güzel bir yoludur.

Ne yazık ki, pek çok güzel CPAN modülü (OpenSSL için Perl bağları gibi) ActiveState'in deposu aracılığıyla kullanılamaz.

Çoğu şey gibi, seçiminizi de hangi dağıtımın ihtiyaçlarınızı en iyi karşıladığına göre yapmalısınız.


PerlApp kullanışlı bir araç gibi görünüyor (Par :: Packer ile karşılaştırmadım), ancak geldiği PDK 300 dolarlık bir fiyat etiketine sahip.
Nate Glenn

17

Öncelikle ActivePerl kullanıyorum, ancak Strawberry Perl'in gittiği yeri gerçekten seviyorum. Cpan kabuğunun "sadece çalışmasına" bayılıyorum ve XS modüllerini kurmak için bir grup çemberden geçmek zorunda değilim. (örneğin ExtUtils :: FakeConfig, ancak bu daha yeni ActivePerl sürümlerinde daha az gerekli olsa da) Perl'in bir başparmak sürücüsünde olma olasılığı beni de heyecanlandırıyor. Portable Perl'in geliştirici sürümü zaten oldukça kullanışlıdır.

ActivePerl'in ana avantajının kutudan çıkar çıkmaz Tk olduğunu kabul ediyorum, ancak 5.10 itibariyle ActivePerl'in artık varsayılan olarak Tk ile birlikte gönderilmediğini unutmayın. Bunun yerine Tkx ile birlikte gönderilir.


13

Gelecek kesinlikle Strawberry Perl. Yine de hangisini seçerseniz seçin (ve bu sorun Windows'a özgü değildir), nihai sonucu diğer makinelere dağıtıyorsanız, sağladığınız yükleyici / kurulum talimatları konusunda dikkatli olmanız gerekecektir.


6

Strawberry Perl daha çok Perl on * nix gibidir. Kendi başına faydalı olabilecek MinGW ile birlikte gelir . Perl modülleri ayrıca ppm veya cpan ile kurulabilir.


1
Not: mingw'yi çilek perl ile birlikte yüklerseniz, çilek perl'in minsys uygulamalarının farklı sürümlerini kullanıyor olabileceğine dikkat edin. Mingw'yi yolumdan kaldırana kadar, Win32 :: OLE ve diğer modülleri oluşturmak için çilek perl alırken bazı büyük sorunlar yaşadım.
Robert P

Perl'i Windows üzerinde Perl * nix gibi gerçekten istiyorsanız, SUA / SFU'yu kurun (birlikte gelen Perl'i kurmayın) ve Debian Interix / pkgsrc-interix'in Perl'ini kullanın.
MkV

4

Şimdiye kadar Strawberry Perl'i tercih ediyorum. Birincisi, gcc'yi mingwin'in bir parçası olarak kurar, böylece doğrudan CPAN'dan kurabilirsiniz.

Bir süre ActiveState'in perl'ini kullandım, ancak (görünüşte) aynı şekilde yapılandırılmalarına rağmen bir makineden diğerine çok fazla kesinti yaşadım. PPM modül ambalajları da kötü bir tat bıraktı. Paketleri yönetmeyi son derece basit hale getirir, ancak CPAN güncellemelerinden sonra PPM'yi güncellemek için onlara güvenirsiniz. Ayrıca, PPM hiçbir şekilde CPAN'ın tam içeriği değildir; ActivePerl'i en son kullandığımda, ihtiyacım olan tüm modülleri bulmakta zorlandım ve orada bulunanlar genellikle eski bir versiyondu.


2
Olumsuz oyu neyin değerlendirdiğini merak ediyorum.
gWaldo

3

Ben her zaman Cygwin (bash ile xterms cmd pencerelerinden çok daha iyidir) ve onunla birlikte gelen Perl kullanırım. Perl modüllerini CPAN kabuğu ("cpan" komutu) ile kuruyorum; iyi çalışıyor.


3

ActiveState Perl, bir süredir fiili Windows Perl olarak kabul edildi. Çok fazla kusuru olmasına ve çoğumuz başka bir şey kullanmamıza rağmen, çok popüler olmaya devam ediyor. Bir Windows makinesinde (kendi makineniz dışında) çalıştırılacak Perl kodu oluşturuyorsanız, bunu varsayılan (veya alabildiğim kadarıyla) bir gözle yazmayı düşünürdüm AS Perl kurulumunu çalıştırır. Başka bir şey varsa ve uygulamanızı daha sonra kullanmaya çalışan başkalarının girişine engel teşkil ediyorsunuz.


AFAIK, PAR pp, kendi uygulamalarınızı dağıtmak açısından büyük bir avantaj olan Strawberry ile iyi çalışıyor çünkü IIUC, DLL'lerini kullanıyorsanız pp derlenmiş uygulamaları dağıtabilmek için bir OEM lisansına ihtiyacınız olacak.
Sinan Ünür

3
@Sinan, ActivePerl lisansı ve PAR ile ilgili açıklamanız yanlış. Lisans Madde 4'e bakınız 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

@daotoad Hmmmm ... Daha önceki bir sürümün buna izin vermediğine yemin edebilirim, ancak doğru hatırladığımdan bile emin değilim. Düzeltme için teşekkürler.
Sinan Ünür

2

Strawberry ile büyük sorunlarım vardı ve destek olmadığını hissettim. PerlMonks'taki iyi insanlar bana yardım edemedi ve ben de pes ettim. Eğer bu sayfayı güven belirli eksikliği ile yaprakları, cevabın var.


1

Yazdığım kod, Fortune 500 şirketlerinde yer alıyor, bu yüzden "kurumsal" bir his yardımcı oluyor. Şimdiye kadar ActivePerl'i kullandım ve hem dahili araçlar için hem de bu büyük müşterilere dağıtım için iyi çalıştı.


1

İyi çalışan Active State Perl 5.014 kullanıyorum.

Sorun şu ki, Padre'nin en son sürümüne (IDE, hata ayıklama ortamı) sahip değil.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.