ほとんどのLinuxディストリビューションでPerlがデフォルトでインストールされるのはなぜですか?


回答:


27

あなたの視点に応じて、答えはセクシー/そうではありません。

Perlは非常に便利です。多くのシステムユーティリティは、perlで記述されているか、perlに依存しています。Perlをアンインストールすると、ほとんどのシステムは正常に動作しません。

数年前、FreeBSDはベースシステムの依存関係としてPerl削除するために多くの努力をしました。簡単な作業ではありませんでした。


Perlはカーネル自体で使用されていますか?私はカーネルが約2,200行のPerlコードEstimating GNU Linux's Sizeを使用していると主張するこの記事を見ています。また、質問の原因は何ですか。Arch Linuxのインストール中に、Perlがベースパッケージにインストールされていることに気付きました。Perlを使用するコアユーティリティはありますか?

9
@JoshVoigtsカーネル自体はperl noを使用しません。ただし、カーネルを構築するプロセスはかなりの量のperlを使用します。Archに関しては、他の誰かがそれに答えなければなりません。
パトリック

3
好奇心から、FreeBSDはPerlを何に置き換えましたか?
シャドゥール


7
FreeBSDベースシステムは、基本的に、カーネル、ユーティリティ、およびすべてを備えた1つの巨大なソースコードリポジトリです。そのため、彼らはそのレポジトリでPerlの独自のフォークを維持していました。したがって、彼らはベースシステムからPerlを排除してポートとしてインストールするだけで理にかなっています。これは最新のものを維持するのがはるかに簡単です(上流のPerlリリースを取得してコンパイルしているからです)。
cjm

24

1987年12月18日にcomp.sources.miscニュースグループに投稿したLarry Wallの元のPerl v1.0で、彼は次のように述べています。

通常sed、awk、shを使用する問題がありますが、それらの機能を超えるか、少し速く実行する必要があり、Cで愚かなことを書きたくない場合は、perlが適しているかもしれません。

ずっと後博覧会、彼はもう少し詳しく説明しました:

しかし、Unixシェルプログラミングの不満は、Perlの作成に直接つながりました。Perlを作成する時間はありません。しかし、本質的に、シェルスクリプトは、その動詞のほとんどがその制御下にないため、本質的に互いに矛盾しているという事実によって本質的に制限されていることがわかりました。そして、名詞は、文字列とファイルに限定され、誰が何を知っているかという類型で貧弱です...

より破壊的なのは、それが1次元の宇宙であるという考え方でした。Cでプログラミングしたか、シェルでプログラミングしたかのどちらかです。Perlは、スクリプティングが必ずしもプログラミングの反対と見なされる必要はないが、単一の言語が両方に適していることを認識したときに生まれました。それは大きな生態学的ニッチを開きました。多くの人が、私の古いクラムシェルダイアグラムを見て、操作性とむち打ちの2つの次元を持っています。

今日、Perlはシェルスクリプトおよびテキスト解析のニーズに対する標準の代替/置換であり、従来のツールよりもはるかに強力です。Perlは極端な(洗練されていないと言う人もいます)柔軟性があるため、Perlは「スクリプト言語のスイス陸軍チェーンソー」と言われています。多くの場合、タスクはPerlで解決すると、大幅に短く、簡単に、または拡張性が高くなります。多くのシステムツール、スクリプト、およびより大きなプログラムは、Perlで日常的に作成されています。そのため、現代のLinux環境では、Perlはもう1つの標準的なUnixツールであり、本当に不可欠です。


4
  1. ツールが十分に強力ではなかったため、PerlはUnix用に開発されました。スポーツのために、あなたがのために見ることができるawksed(Perlの)それに。
  2. Perlは(とりわけ)Unixシェル(および、Unixにとって非常に重要なC、またはその逆)に触発されました。
  3. また、PerlはGNUライセンスの下で配布できます。技術的な見地からは無関係であると考える人もいますが、それは混ざり合っていることを示しています。
  4. 私が最後に考えることができるのはLAMPです。これはネットワーキングの「ソフトウェアバンドル」です。(Wikipediaで確認してください。PはPerlであるか、少なくともPerlでした。LはLinuxです。)(ただし、この最後の点は少し「鶏または卵」です。)

5
最近のLAMPのPは、はるかに頻繁にPHPまたはPythonです。Perlは頭字語のレガシー使用であると思います。
-darvids0n

Notepad ++は、GNUライセンス(具体的にはGNU GPL)の下でリリースされます。私の知る限り、Notepad ++とさまざまなLinuxディストリビューションとの間にはほとんど「混ざり合い」がありません。ポイント#3に1つの反例を挙げます。
CVn

@MichaelKjörling:特定のライセンスがLinuxの世界でのアプリケーション(この場合はプログラミング言語)の普及を妨げ、他のライセンスはそのような障害をもたらさないことに同意しませんか?本当にそれが私が言ったことだと思っていれば、それはあなたがディストリビューションへの道をライセンスできるという意味ではありません。(私はそうは思いません。)
エマニュエルベルク

@darvidsOn:はい...それは私が言ったことです(?)。(これらの大きなスクリプト言語がすべてPで始まるのは偶然だと思います。)
エマニュエルベルク

@EmanuelBergあなたは、PerlがGNUライセンスを持っているという事実に基づいて、PerlとLinuxの「混在」について言及しました。FreeBSDポートと他のライセンスを持つ多くのLinuxディストリビューションの両方に多くのソフトウェアがあり、さまざまなGNUライセンス(GPL、LGPL、FDLなど)でライセンスされているどちらでも動作しないソフトウェアがたくさんあります。
CVn

1

この質問に対する答えは、部分的に歴史的であり、部分的に実用的であると思います。

歴史に関しては、Perlは上品な言語です。(PHPはもちろん)Pythonよりも上品ですが、何が「より良い」のかわかりません(形式的に分析できれば、疑わしい)。そして、Perlを使用している(または使用している)上品な人は、通常、Linuxディストリビューションの一部とすべきものを決定する人です。

実用的なことに関しては、Perl いまだに多くのことの接着剤です。OSとWebは同じです(やはり、LAMP、PythonまたはPHPのいずれかを忘れないでください)。それでは、なぜ多くの目的に役立つものを含めないのでしょうか?そして、それ以上に、なぜ削除あり(および任意の害を及ぼすことはありません)何も、そして便利なのですか?

しかし、たまたま、The Linux Magazineの最新号(#151、2013年6月)にこれについてのメモがあります。どうやら、Linuxカーネルをコンパイルするために、短く簡単なPerlスクリプトがいくつか使用されています。(再び、OSでのPerlの「接着剤」の役割。)今、カーネル開発者の1人が、今回はPerlではなく「Unixシェルスクリプト」として、これらのスクリプトの書き直しのパッチを提出しています。sh?)。そうすれば、カーネルをコンパイルする人のためにPerlをインストールする必要がなくなります。しかし、そのパッチ(数回提出された)は取り上げられていません。そして、この理由の1つは、いったん寒くなると、Perlが受け入れられない可能性が高いことです。Perlが好きで、彼らはそれを手放したくありません。

さて、Linuxユーザーのごく少数がカーネルをコンパイルする可能性が高いため、これはこの質問の端に触れるだけです。しかし、それはさらにパズルの別の部分です(そして、私は多くがあると思います)。


1
エマニュエルのコメントではありませんが、perlを手放したくない人のために、必要な場合やインストールしたい場合にインストールするのはどれほど難しいでしょうか?
MattBianco 14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.