1

アプリを Perl モジュールとしてパッケージ化しましたが、cpanまたはcpanmコマンドを使用してインストールできません。問題は、これらのコマンドが (root として実行されていない場合)、必要なモジュールを ~/perl5 ディレクトリにインストールすることです。ただし、私の ~/perl5 ディレクトリは @INC に含まれていません。

これにより、cpanm からの次の紛らわしい出力が発生します。

$ cpanm --installdeps .
--> Working on .
Configuring my-module-0.001 ... OK
==> Found dependencies: Image::Size
--> Working on Image::Size
Fetching http://www.cpan.org/authors/id/R/RJ/RJRAY/Image-Size-3.232.tar.gz ... OK
Configuring Image-Size-3.232 ... OK
Building and testing Image-Size-3.232 ... OK
Successfully installed Image-Size-3.232
! Installing the dependencies failed: Module 'Image::Size' is not installed
! Bailing out the installation for my-module-0.001.
1 distribution installed

ご覧のとおり、Image::Size モジュールのダウンロード、テスト、およびインストールは成功していますが、それを使用しようとして失敗しています。

環境変数 $PERL5LIB を「~/perl5/lib/perl5」に設定し、「~/perl5/bin」を $PATH に追加することで、この問題を解決できることはわかっていますが、この状況がどのように発生したかを知りたいです。そもそも。アプリのユーザー向けのインストール手順をできるだけシンプルにしたいと考えており、環境変数を手動で変更することは、ユーザーに指示するつもりはありません。

4

2 に答える 2

0

ここに問題に対する私自身の解決策があります。私はDist::Zillaに切り替え、ユーザー向けに次のインストール手順を考え出しました:

Installation instructions
=========================

To install this program you need Dist::Zilla, which can be installed
by running the following command as root:

    cpan Dist::Zilla

After that, make sure you're in directory where this INSTALL file is,
and run the following command as root:

    dzil install
于 2014-07-13T19:04:09.997 に答える
0

bash を使用している場合は、local::lib をインストールして、次のようなものを .bashrc ファイルに追加できます。

# adds $HOME/perl5/bin to PATH
[ $SHLVL -eq 1 ] && eval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)"

それはあなたの問題を解決するはずです。問題はローカル システムの構成方法にあるため、必要のない場所に Dist::Zilla を組み込むのではなく、微調整してください。

于 2014-07-14T19:09:22.367 に答える