Mac OS X と perl を何年も使用した後、単純な 3 つの部分からなる計画を思いつきました。
- ソースからコンパイル
- にインストール
/usr/local
- システムperlには絶対に触れないでください
学べ。それを知っている。それを生きる。
…
あ、わかりました、説明してみます。システム perl に触れることは、明らかな理由であると私が願っていることからして、悪い考えです。Apple のアプリケーション、サードパーティのアプリケーション、および OS 自体は、システム perl がシステム perl のように動作することを期待しています (システム perl とまったく同じ場合もあります) 。ほんの一例を挙げると、ある時点で、iTunes インストーラーには、次のようなコードを含む perl スクリプトが含まれていました。
if ($foo EQ $bar) {
....
}
はい、EQではなくeq。信じられないかもしれませんが、これは多くの古いバージョンの perl で実際に機能しますが、若い素朴な私がシステム バージョンの上にインストールした新しいバージョンの perl では機能しません。その結果、iTunes インストーラーをダブルクリックしても、文字通り何も起こりませんでした。(そしてねえ、それはもっと悪いことだったかもしれません。)
当時 Apple が明らかに perl コードを書いていたサルの種類について話すことはできますが (そして品質が今より良いかどうかは別として)、肝心なのはそれ/Systemが Apple のドメインであるということです。 そこに着陸しようとしないでください。(なんて話題。)
一方、Apple は、/usr/localシステムの更新中には何も入れないこと、そして同様に重要なことに、そこにあるものには何も触れないという長年の約束を持っています。これはあなたの安全地帯です。そこに perl をインストールし、そこに CPAN モジュールに必要なライブラリなどをインストールします。
最後に、なぜソースからビルドするのですか? パッケージマネージャーを使用しないのはなぜですか? これは不機嫌そうな老人の推論のように思えるかもしれませんが、私はそれを懸命に勝ち取った知恵だと考えています。Mac OS X 用の支配的なパッケージ管理システムは 1 つではなく、公式の組み込みのパッケージ管理システムは言うまでもありません。さまざまなサードパーティのパッケージ マネージャーにはすべて、私が使用したすべてのパッケージ マネージャーと同じ問題があります。必要なソフトウェアがパッケージ化されていない場合もあれば、希望どおりにパッケージ化されていない場合もあり、単純に壊れている場合もあります。など。また、ソースからいくつかのソフトウェアをビルドすることに加えて、パッケージをインストールしようとすると、災害のレシピになります。
唯一実行可能な「統一された」アプローチは、ソースからすべてを構築することです。最近では、一般的に使用されているほとんどすべての Unix ソフトウェアが、特別な努力なしに Mac OS X でビルドされています。(非常に多くの Unix 開発者が Mac OS X を個人用システムとして使用するようになったのは助かります。) 通常は、解凍、構成、作成、インストールを行うだけです。/usr/local宛先として指定する必要さえほとんどありません。これは、ほとんどのソフトウェアのデフォルトです。
ソースからコンパイルします。にインストールし/usr/localます。システム perl には決して触れないでください。後悔することはありません。