web-dev-qa-db-ja.com

Perl拡張機能が@incで検索されませんか?

RootアクセスなしでLinux上にあり、ローカルにRPMをインストールしております(/home/me/localではなく、/usrで)。 RPM(rxvt-unicode)にはPerlモジュールが必要であることを除いて、これは問題ありません。

2つの問題がありますが、私はそれらの1つを修正することしかできません。最初にオフ、/home/me/local/lib64/urxvturxvt.pmが含まれています。 Perl5LIB/home/me/local/lib64/urxvtに設定することでこれを修正できます。

第二に、/home/me/local/lib64/urxvt/Perlはさまざまな拡張子(/home/me/local/lib64/urxvt/Perl/option-popupを含む)を含みます。プログラムを実行するとき(urxvt)私は今の行に沿ってさまざまなメッセージを入手します

urxvt: Perl extension 'option-popup' not found in Perl library search path

I できませんPerl5LIBに追加のディレクトリを追加して修正してください。たとえば、これは次のとおりです。

setenv Perl5LIB /home/me/local/lib64/urxvt/Perl:/home/me/local/lib64/urxvt

違いはありません。検索パスをPerl -Vで確認し、両方のディレクトリを正しく表示しました。拡張機能について異なるものはありますか?彼らは@INCをチェックしませんか?

1
EML

rxvt-unicodeは、その拡張機能を探しています(RPMパッケージの場合は/usr/lib64/urxvt/Perlのようなもので、実行可能ファイルの場所に合わせて変更しない)、またはPerl-libリソースまたは--Perl-libで指定されたディレクトリには変更されません。コマンドラインオプション.

rxvt(1)のマニュアルページからの関連部分を参照してください。

   Perl-lib: path
       Colon-separated list of additional directories that hold extension
       scripts. When looking for extensions specified by the "Perl"
       resource, urxvt will first look in these directories and then in
       /usr/lib64/urxvt/Perl/.

       See the urxvtperl(3) manpage.

そのため、~/.Xresourcesまたは~/.Xdefaultsファイルにこのようなものを追加する必要があります。

URxvt.Perl-lib: /home/me/local/lib64/urxvt/Perl

pdate : rxvt-unicode 9.14デフォルトの拡張パスには、コンパイル済みのシステム拡張ディレクトリの前に$HOME/.urxvt/extが含まれています。したがって、~/.urxvt/ext xリソースを設定する代わりに、拡張ファイルをPerl-libに配置するだけです。

それに加えて、rxvt-unicode> = 9.16はURXVT_Perl_LIB環境変数にリストされているディレクトリ内のPerl拡張機能を探します。今検索順序は次のとおりです。

  1. Perl-lib Xリソース(コロンで区切られた複数のディレクトリ)にリストされているディレクトリ。
  2. URXVT_Perl_LIB環境変数(コロンで区切られた複数のディレクトリ)にリストされています。
  3. $HOME/.urxvt/ext
  4. $LIBDIR/Perlここで、$LIBDIRは実行可能ファイル(例えば、/usr/lib64/urxvt)にコンパイルされたパッケージライブラリディレクトリ名です。
3
Sergey Vlasov