0

ユーザーのローカルにperlモジュールをインストールしようとしています-rootアクセス権がありません。私は自分のディレクトリ構造にperllibsの次の場所を設定しました:/ dasd / home / miner / perl5lib / lib / lib(尋ねないでください)-そこにperlモジュールが欲しいです。

MyConfig.pm全体をばかげて投稿します-make_arg、make_install_arg、make_pl_argだけが重要だと思いますが、そこに私の質問があると思います:cpanがどのように機能するか正確にはわかりません(そして簡単にグーグルできません)そのため、MyConfig.pmのパラメータのポイントが正確にわかりません。

 'build_dir' => q[/dasd/home/miner/.cpan/build],
 'cache_metadata' => q[1],
 'cpan_home' => q[/dasd/home/miner/.cpan],
 'dontload_hash' => {  },
 'ftp' => q[/usr/kerberos/bin/ftp],
 'ftp_proxy' => q[],
 'getcwd' => q[cwd],
 'gpg' => q[/usr/bin/gpg],
 'gzip' => q[/bin/gzip],
 'histfile' => q[/dasd/home/miner/.cpan/histfile],
 'histsize' => q[100],
 'http_proxy' => q[],
 'inactivity_timeout' => q[0],
 'index_expire' => q[1],
 'inhibit_startup_message' => q[0],
 'keep_source_where' => q[/dasd/home/miner/.cpan/sources],
 'links' => q[/usr/bin/links],
 'make' => q[/usr/bin/make],
 'make_arg' => q[LIB= dasd/home/perl5lib/lib/lib PREFIX=~/perl5lib],
 'make_install_arg' => q[LIB= dasd/home/perl5lib/lib/lib],
 'makepl_arg' => q[PREFIX=~/perl5lib LIB=/dasd/home/perl5lib/lib/lib   INSTALLMAN1DIR=~/perl5lib/man1 INSTALLMAN3DIR=~/perl5lib/man3],
 'ncftp' => q[],

さらに説明すると、たとえば「cpan MongoDB」を実行すると、大量の出力が得られ、すべてが大量のエラーを叫び、このエラーですべてが停止します。

Checking if your kit is complete...
Looks good
Writing Makefile for File::Slurp
Writing MYMETA.yml and MYMETA.json
make: *** No rule to make target `dasd/home/perl5lib/lib/lib'.  Stop.
  /usr/bin/make LIB= dasd/home/perl5lib/lib/lib PREFIX=~/perl5lib -- NOT OK
Running make test
  Can't test without successful make
Running make install
  make had returned bad status, install seems impossible
Running make for K/KR/KRISTINA/MongoDB-0.45.tar.gz
  Is already unwrapped into directory /dasd/home/miner/.cpan/build/MongoDB-0.45

CPAN.pm:K / KR / KRISTINA/MongoDB-0.45.tar.gzをビルドします

make: *** No rule to make target `dasd/home/perl5lib/lib/lib'.  Stop.
  /usr/bin/make LIB= dasd/home/perl5lib/lib/lib PREFIX=~/perl5lib -- NOT OK
Running make test
  Can't test without successful make
Running make install
  make had returned bad status, install seems impossible

「ターゲット`dasd/ home / perl5lib / lib / lib'を作成するルールがないということはどういう意味ですか?そのディレクトリを作成したくない...彼らがこれを言うときにcpanによってmakefileをエコーさせたい" File::Slurp」。これは/dasd/ home / perl5lib / lib/libディレクトリに入れたいと思います。MongoDBが何らかの形でFile::Slurpに依存しているため、File::Slurpを実行していると思います。

質問をより適切に表現する方法があればいいのにと思いますが、簡単に言うと、これが何を意味するのかを教えてください。MyConfig.pmを変更して、自分のやりたいことを実行するにはどうすればよいでしょうか。

4

2 に答える 2

4

「`dasd/home/perl5lib/lib/lib' をターゲットにするルールはありません」とは、 と の間にスペースを入れてLIB=(dasd/home/perl5lib/lib/libそれが であるべきだった場合/)、それらを別個の引数にすることを意味します。ビルドしたいファイルの名前makeだと思いますが、その方法がわかりません。dasd/home/perl5lib/lib/lib

まずテキスト エディターで MyConfig.pm を編集し、検索して .pm にLIB= dasd置き換えLIB=/dasdます。

于 2012-07-09T16:24:32.957 に答える
0

ライブラリはに保存され/dasd/home/miner/perl5lib/lib/libているが、構成ファイルにはが含まれていると言いますdasd/home/perl5lib/lib/lib

あなたは道の先導/と一/miner歩を必要としているようです。

于 2012-07-09T17:10:39.093 に答える