5

root 以外のユーザーとして CPAN を使用するにはどうすればよいですか? に触発されました。wwwログインしていないユーザー ( など)に cpanm を設定する方法を教えてください。ログインがないので、いくつかのディレクトリを に含める方法がわかりません@INC

編集: ログインしていないユーザーに対して、PERL5LIB のような永続的な環境変数を設定するにはどうすればよいですか? .bashrc(ログインが必要)からではなく/etc/environment(全員に設定)から設定することはできません。

4

2 に答える 2

3

変更方法@INC

スクリプトごとに:

プロセスごとに:

  • PERL5LIB親プロセスから環境変数を 設定します。
    • sh:export PERL5LIB=... ; perl ...
    • sh:PERL5LIB=... perl ...
    • apache:SetEnv PERL5LIB ...

単位perlで:

  • ビルド時の@INC設定時のディレクトリを指定します。perl
  • use lib ...;sitecustomize.plによって返されたディレクトリで指定されたスクリプトでperl -V:sitelib. [1]

もちろん、おそらく を使用して、独自のローカル Perl をインストールすることもできますperlbrew


ノート:

  1. Perl は、 Theが を使用するように構成されているsitecustomize.plかどうかのみを検索します。であるかどうかを確認してください。perl-Dusesitecustomizeperl -V:usesitecustomize
于 2013-09-26T11:31:27.750 に答える
0

$PATHの最初perlの部分を、呼び出し元のユーザーにちなんで名付けられたファイルをチェックし、そのファイルをソースし、実際の perl を呼び出すシェル スクリプトにします。

    $ cat /usr/local/etc/perl.user.d/www-data
    PERL5LIB=/何でも/あなた/必要
    PERL5LIB のエクスポート
    $ 猫 /usr/local/bin/perl
    #! /bin/sh

    PERLBIN=/usr/bin/perl

    USER_CUSTOMIZE=/usr/local/etc/perl.user.d/$(whoami)

    [ -e "$USER_CUSTOMIZE" ] && ソース "$USER_CUSTOMIZE"

    exec $PERLBIN "$@"

NB 私はこれを心からお勧めしません。sitecustomize.pl 他の場所で提案されているものに似ていますが、よりハックです。他の回答者のように、関心のあるすべての親プロセス (apache、cron、および ... ?) を特定し、そこに PERL5LIB を設定するのはそれほど難しいことではないと思います。

于 2013-09-26T20:33:32.217 に答える