namazu-dev(ring)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: directory to install MMagic.pm



Satoru Takabayashi <satoru-t@xxxxxxxxxxxxxxxxxx> wrote:

>% ./configure --prefix=/tmp && make && make install
>
>のように prefix を指定しても、 MMagic.pm は prefix とは無関
>係に /usr/lib/perl5/site_perl/5.005/File といったディレクト
>リにインストールされてしまいます。

という問題について、


>具体的には configure.in の
>
>    cd File-MMagic
>    $PERL Makefile.PL
>
>の部分を
>
>    cd File-MMagic
>    if test "$prefix" != "$ac_default_prefix"; then
>        FILE_MMAGIC_DIR="$prefix/share/namazu/perl5"
>        $PERL Makefile.PL LIB=$FILE_MMAGIC_DIR
>	ADDITIONAL_INC="$FILE_MMAGIC_DIR"
>    else
>        ADDITIONAL_INC="."  # dummy
>        $PERL Makefile.PL
>    fi
>    if 
>    AC_SUBST(ADDITIONAL_INC)
>
>として、 mknmz.pl.in の上の方で
>
>  use lib "@ADDITIONAL_INC@";
>
>を追加すれば解決します。いかがでしょう? 

と書きましたが、これでは解決しませんでした。

なぜなら、 $prefix はこの時点では "NONE" であり、
--prefix=/foo/bar が処理されるのはこれより後ろだからです。

よって、File::MMagic.pm は必ず $prefix/share/namazu/perl5 の
下にインストールされてしまいます。これでは、 Namazu以外の用
途に File::MMagic を使うには、別途、perl標準の場所へインストー
ルする必要があります。なんだか変です。(別にこれでもいいとい
えばいいんだけど…)

そこで、--with-pmdir=/dir オプションを導入して

  * --with-pmdir=/dir が指定されていればその位置へ
    File::MMagic.pm をインストール
  * 指定されていなければ perl標準の位置へ File::MMagic.pm を
    インストール (既にインストールされているなら何もしない)

という動作にすれば root 権限を持っていない人でも

  % ./configure --prefix=$HOME --with-pmdir=$HOME/lib

のように指定することで、きちんとインストールできます
(--with-pmdirを指定するのは少し面倒だけど)。いかがでしょう?

-- Satoru Takabayashi