Perl neden çoğu Linux dağıtımında varsayılan olarak kurulur?


Yanıtlar:


27

Cevap, bakış açınıza bağlı olarak seksi değil / değil.

Perl çok kullanışlıdır. Sistem yardımcı programlarının çoğu perl ile yazılmış veya buna bağlı. Perl kaldırılırsa çoğu sistem düzgün çalışmaz.

Birkaç yıl önce FreeBSD, Perl'i temel sisteme bağımlılık olarak kaldırmak için büyük çaba harcadı . Kolay bir iş değildi.


Perl, Çekirdeğin Kendisinde Kullanılıyor mu? Çekirdeğin GNU Linux'un boyutunu tahmin eden yaklaşık 2.200 satırlık Perl kodu kullandığını iddia eden bu makaleye bakıyorum . Ayrıca, soruyu soran ne; Arch Linux'u kurarken, Perl'nin temel pakete kurulduğunu farkettim, Perl'i kullanan çekirdek uygulamalar var mı?

9
@JoshVoigts çekirdeğin kendisi perl no kullanmaz. Bununla birlikte, çekirdeği oluşturma işlemi adil bir miktarda perl kullanır. Arch'a gelince, başka birine cevap vermek zorunda kalacak.
Patrick

3
Meraktan, FreeBSD Perl’in yerini ne aldı?
Shadur

4
@ire_and_curses: Perl5 temel sistemi 5.0 ve sonrası için terk ediyor! Ayrıca 2011 yılı itibariyle: FreeBSD: Birleşme Paketleri (OpenBSD Altında).
bahamat

7
FreeBSD temel sistemi temelde çekirdek, yardımcı programlar ve her şey içeren dev bir kaynak kodu deposudur. Bu yüzden o depoda kendi Perl çatallarını koruyorlardı; bu büyük bir çaba ve memur Perl ile güncel kalmak zordu. Bu nedenle, Perl'i temel sistemden çıkarmak ve sadece güncel tutmak için çok daha kolay olan bir bağlantı noktası olarak monte etmeleri mantıklıydı (çünkü sadece upstream Perl sürümlerini alıyorlar ve derliyorlardı).
cjm

24

Larry Wall yılında orijinal Perl v1.0 gönderme için comp.sources.misc 18 Aralık 1987 tarihinde haber, şöyle dedi:

Normalde sed veya awk veya sh kullanacak bir probleminiz varsa, ancak bu onların yeteneklerini aşıyorsa veya biraz daha hızlı çalışmalı ve C'ye aptalca bir şey yazmak istemiyorsanız, perl sizin için olabilir.

Bir de çok sonra fuar , o biraz daha özenli:

Fakat Unix'in kabuk programlamasındaki sıkıntılar doğrudan anlatmak için zamanım olmadığı Perl'in yaratılmasına yol açtı. Fakat esasen, kabuk komut dizisinin fiillerinin çoğunun kontrol altında olmadığı ve bu nedenle birbiriyle büyük ölçüde tutarsız olduğu gerçeği ile sınırlı olduğunu buldum. Ve isimler yoksullaştırılmış, dizelerle ve dosyalarla sınırlandırılmış, kim bilir ne tipolojiyle ...

Daha yıkıcı olan, tek boyutlu bir evren olduğunun zihniyetiydi: ya C de programladınız ya da kabuk programladınız, çünkü açıkça One True Continuum'un zıt uçlarındalar. Senaryo yazımının her zaman programlamanın karşıtı olarak görülmek zorunda olmadığını, ancak tek bir dilin her ikisi için de iyi olabileceğini fark ettiğimde Perl ortaya çıktı. Bu çok büyük bir ekolojik niş açtı. Birçoğunuz eski kapaklı diyagramımı, iki yönlülük ve kırbaçlık boyutuyla gördünüz.

Bugün Perl, kabuk komut dosyası yazma ve metin ayrıştırma ihtiyaçları için ve geleneksel araçlardan çok daha fazla güce sahip standart bir alternatiftir. Aşırı (bazıları inelegant diyebilir) esnekliği nedeniyle Perl, " İsviçre Ordusu'nun betik dilleri testeresi " olarak tanımlandı . Görevler, Perl ile çözüldüğünde genellikle daha kısa, kolay veya genişletilebilir olabilir. Birçok sistem aracı, komut dosyası ve daha büyük program, Perl'de rutin olarak yazılmıştır. Öyleyse, modern Linux ortamında, Perl şimdi başka bir standart Unix aracı ve gerçekten vazgeçilmezdir.


4
  1. Perix, Unix için geliştirilmiştir, çünkü aletler yeterince güçlü değildi. Spor yapmak için awk, sediçinde ve içinde arayabilirsiniz (Perl).
  2. Perl (diğer şeylerin yanı sıra) Unix kabuğundan esinlenerek (ve Unix için çok önemli olan C, ya da belki başka bir şekilde).
  3. Ayrıca, Perl bir GNU lisansı altında dağıtılabilir . Bazı insanlar bunu teknik açıdan önemsiz göreceklerini düşünürler, ancak iç içe geçtiğini gösterir.
  4. Aklıma gelen en son şey, bir ağ "yazılım paketi" olan LAMP. (Wikipedia'da bir göz atın: P veya en azından Perl; L Linux.) (Ama bu son nokta biraz "tavuk veya yumurta".)

4
LAMP içinde P bugünlerde çok daha sık PHP veya Python. Ben Perl kısaltmanın eski bir kullanımının moreso olduğunu düşünüyorum.
darvids0n 13:12

Notepad ++ , bir GNU lisansı altında (özellikle GNU GPL) yayımlanır. AFAIK, Notepad ++ ile çeşitli Linux dağıtımları arasında çok az "araya" geliyor. Sadece 3 numaralı konuya bir karşı örnek bahsetmek.
13:12

@ MichaelKjörling: Belli lisansların Linux dünyasında uygulamanızın (veya bu durumda bir programlama dilinin) yayılmasını engelleyeceği, diğerleri ise böyle engeller koymayacağını kabul etmiyor musunuz? Söylediğim şeyin gerçekten olduğunu düşünürseniz, bir dağıtım yolunu lisanslayabileceğiniz anlamına gelmez. (Sanmıyorum.)
Emanuel Berg

@darvidsOn: Evet ... ben de öyle dedim (?). (Bu büyük betik dillerinin hepsinin P ile başlaması bir tesadüf sanırım)
Emanuel Berg

@EmanuelBerg Perl ve GNU lisansına sahip olduğu gerçeğine dayanarak Perl ve Linux arasında "araya girmekten" bahsettiniz. Hem FreeBSD portlarında hem de başka lisanslara sahip birçok Linux dağıtımında ve çeşitli GNU lisansları (GPL, LGPL, FDL, ...) altında lisanslanan pek çok yazılım üzerinde bol miktarda yazılım var.
12'de bir CVn

1

Bence bu sorunun cevabı kısmen tarihi, kısmen pratik.

Tarih gelince, Perl klas bir dildir. Python'dan daha şık (PHP'den bahsetmiyorum), "neyin daha iyi" olduğu hakkında hiçbir fikrim olmasa da (eğer bir şekilde resmi olarak analiz edilebilirse, şüpheliyim). Ve Perl'i kullanan (veya kullanılan) klas adamlar tipik olarak Linux dağıtımının bir parçası olması gerektiğine karar verenler.

Pratik olana gelince, Perl olan işletim ve (yine LAMP, Python ya da PHP unutmadan) hem web: şeylerin bir sürü tutkal hala. Öyleyse neden birçok amaç için yararlı bir şey eklemiyorsunuz? Ve hatta dahası, neden var olan (ve herhangi bir zarar vermeyen) ve yararlı olan herhangi bir şeyi kaldırın

Ancak, olduğu gibi, Linux Dergisi'nin son sayısında (# 151, Haziran 2013) bununla ilgili bir not var. Anlaşılan, Linux çekirdeğini derlemek için birkaç kısa ve basit Perl betiği kullanılmıştır. (Yine, Perl’in işletim sistemlerinde “tutkal” rolü.) Şimdi, çekirdek geliştiricilerinden biri, bu betiklerin yeniden yazmak için yamalar yapıyor, bu kez Perl’de değil, “Unix kabuk betikleri” olarak sh?). Bu şekilde, Perl'in çekirdeği derleyen kimseye kurulmasına gerek kalmayacaktı. Ancak, bu düzeltme eki (birkaç kez gönderilmiş) alınmamıştır. Ve bunun bir nedeni, soğukta bir kez dışarı çıkınca Perl'in içeri girmesi pek mümkün değildir. Perl gibi insanlar ve onunla ayrılmak istemiyorlar.

Şimdi, bu yalnızca Linux kullanıcılarının çok küçük bir azınlığının çekirdeği derleyebileceği için bu sorunun saçmalıklarına değiniyor. Ancak yapbozun bir başka parçası (ve çok fazla olduğundan şüpheleniyorum).


1
Senin için bir yorum değil Emanuel, ama perl ile ayrılmak istemeyen insanlar için, eğer istersen / istersen, onu kurmak ne kadar zor olabilir?
MattBianco
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.