3

システムの Perl のバージョンがある CPAN からモジュールをインストールしないのが最善であると聞いたことがあります。コマンドラインを使用してモジュールをインストールする方法は知っていますが、CPAN をシステムのコア Perl から分離しておく方法があるかどうか疑問に思っていました。

するべきか:

ソースをダウンロードして、これらのモジュール専用のディレクトリを作成しますか?

他に成功したアイデアや実装を持っている人はいますか?

Perl 5.16.2 で Arch Linux を使用しています。

4

6 に答える 6

5

次のようなものを探していますかlocal::lib

local::lib - PERL5LIB で perl モジュール用のローカル lib/ を作成して使用する

于 2012-12-18T07:17:08.907 に答える
3

モジュールを手動でインストールする必要はありません。それをインストールする場所が必要であり、そこにインストールするように環境を構成する必要があります。その後、通常どおり cpan/cpanp/cpanm/etc を使用できます。(cpanマイナスは私にとって勝ちです)

その環境を手動でセットアップするのは少し面倒なので、ほとんどの人はアプリケーションを使用して構成をセットアップします。

これには主に次の 2 つの選択肢があります。

local::lib— これにより環境変数が設定されるため、システム perl から離れた場所にモジュールをインストールできますが、システム perl は引き続き使用できます。

Perlbrew — これにより、完全な perl がインストールされるため、システム perl を完全に回避し、システムに付属しているよりも最新のバージョンの perl 自体を使用できます。また、複数の perl インストールを並べて管理します (したがって、異なるバージョンの perl に対してモジュールをテストできます)。

個人的には、Perlbrew の方が好みです (yada yada 演算子やスマート マッチなどの新しい機能を簡単に操作できるためです (スマート マッチはそれほど新しいものではありません) が、セットアップには時間がかかります (perl をコンパイルする必要があるため)。 )。

于 2012-12-18T15:12:58.020 に答える
3

の最新バージョンをダウンロードして展開しlocal::libます。

curl -LO http://search.cpan.org/CPAN/authors/id/A/AP/APEIRON/local-lib-1.008004.tar.gz
tar xzf local-lib-1.008004.tar.gz
cd local-lib-1.008004/

それを展開します。

perl Makefile.PL --bootstrap=$HOME/perl5
make
make test
make install

永続的な構成を保存します。

cat << PROFILE >> $HOME/.profile

eval \$(perl -I\$HOME/perl5/lib/perl5/ -Mlocal::lib)
PROFILE

これで、セッションをログオフ/ログオンするか、単にsource ~/.profile. その後、CPAN モジュールがローカルにインストールされます。

于 2012-12-18T12:31:17.717 に答える
1

システムのバージョンのPerlがあるCPANからモジュールをインストールしないのが最善だと聞きました。

アイデアは、使用するモジュールをアップグレードすることにより、ディストリビューションのツールを壊さないようにすることです。

モジュールを新しいディレクトリにインストールし、Perlに(前述のinstall :: libが行うことです)を使用してそれを伝えることPERL5LIBは、その場合はまったく役に立ちません。これは、Perlがモジュールをインストールした場合とまったく同じことを認識するためです。通常のsiteディレクトリ。

(デフォルトのディレクトリにインストールする権限がない場合は、主にPERL5LIBを使用してモジュールをインストールします。)

システムPerlを使用する際のもう1つの問題は、アップグレードできないことです。

両方の解決策は、Perlの独自のビルドをインストールすることです。これは、を使用して非常に簡単に実行できますperlbrew

于 2012-12-18T19:28:39.717 に答える
0

cpanminus とは何ですか? CPANマイナスモジュール

于 2012-12-18T10:12:39.313 に答える
-2

モジュールを実際のパッケージ、rpm または dep スタイルにパックしてみませんか? そうすることで、インストールされたソフトウェアを制御し続けることができ、必要に応じて、慣れているようにパッケージを削除および更新できます。したがって、管理をバイパスするのではなく (めったに良い考えではありません)、自分で管理できます。

rpm ベースのディストリビューションを使用している場合、このタスクにはOBSを強くお勧めします。独自のプロジェクトを作成し、ソースを構成してテストし、あらゆる種類のディストリビューションとアーキテクチャ用にパッケージを作成できます。また、ホーム プロジェクト リポジトリをソフトウェア管理にインポートすると、パッケージのインストールはワンクリックで完了します。

于 2012-12-18T07:14:59.513 に答える