4

I need to install some CPAN modules in a linux box which I do not have the root privilege.

The installation of Spreadsheet::WriteExcel goes quite smoothly. But the try to install File::Find::Rule failed with warning "you do not have permissions to install into ....." and hint "you may have to su to root to install the package"

I'm puzzled why some CPAN module installation require root privilege while there are others do not ? and If I really want to use the File::Find::Rule in that linux box , is there any work-around solution I can choose ?

thanks.

4

7 に答える 7

13

そのユーザーが管理するディレクトリにインストールするようにセットアップCPANしましたか?

もしそうなら、Extutils::MakeMaker(最も古く、最も一般的なビルド/インストール システム)、Module::Build、およびModule::Install. それらはすべて少し癖があります。

これが作成された理由local::libです。インストールとセットアップが完了したら、再度心配する必要はありません (そうしないように言われているにもかかわらず、特定の場所に書き込みたい不正なモジュールを除きます)。

于 2009-09-02T11:20:53.000 に答える
9

他の場所にインストールするには、local::libを確認してください。

于 2009-09-02T10:47:57.077 に答える
8

perlfaq8から:


自分のモジュール/ライブラリ ディレクトリを保持するにはどうすればよいですか?

モジュールをビルドするときは、モジュールをインストールする場所を Perl に伝えます。

Makefile.PL ベースのディストリビューションでは、Makefile を生成するときに INSTALL_BASE オプションを使用します。

perl Makefile.PL INSTALL_BASE=/mydir/perl

これを CPAN.pm 構成で設定すると、CPAN.pm シェルを使用するときにモジュールがプライベート ライブラリ ディレクトリに自動的にインストールされます。

% cpan
cpan> o conf makepl_arg INSTALL_BASE=/mydir/perl
cpan> o conf commit

Build.PL ベースのディストリビューションの場合は、 --install_base オプションを使用します。

perl Build.PL --install_base /mydir/perl

このオプションを自動的に使用するように CPAN.pm を設定することもできます:

% cpan
cpan> o conf mbuild_arg --install_base /mydir/perl
cpan> o conf commit
于 2009-09-02T20:56:20.713 に答える
2

のようなシステム ディレクトリにモジュールをインストールする権限がない可能性があります/usr/lib。これを行う場合はmake install、スーパーユーザー権限 (suまたはsudo) でステップを実行する必要があります。

別の方法として、デフォルトのシステムの場所にインストールするのではなく、Perl モジュールをアクセス許可のあるローカル ディレクトリにインストールすることもできます。makefile を生成するときにカスタム ディレクトリを指定します。

perlmodinstallから:

gzip -dc yourmodule.tar.gz | tar -xof -
perl Makefile.PL PREFIX=/my/perl_directory
make
make test
make install
于 2009-09-02T10:47:46.890 に答える
-3

これは、一部のパッケージが、ユーザーが書き込み権限を持っていない場所にインストールされているためです。

私のお勧めは、管理者にパッケージをインストールしてもらうことです。これを回避する簡単な方法はないと思います。

于 2009-09-02T10:34:43.517 に答える