我正在嘗試更新 perl-DBD-Pg 模塊,但是當我嘗試安裝時,它會出錯 root dir 。
我從 CPAN 下載并使用此命令安裝的 Tar 檔案
perl Makefile.PL INSTALL_BASE=/usr/lib64/perl5/vendor_perl
我嘗試使用 INSTALL_BASE 命令,但它也無濟于事,我已將所有模塊安裝在
/usr/lib/perl5/vendor_perl/
像這樣 :
drwxr-xr-x. 2 root root 23 May 13 2021 Sys
drwxr-xr-x. 2 root root 142 May 13 2021 HTML
drwxr-xr-x. 8 root root 260 May 13 2021 DBI
drwxr-xr-x. 2 root root 19 May 13 2021 Readonly
drwxr-xr-x. 2 root root 34 May 13 2021 Digest
drwxr-xr-x. 3 root root 31 May 13 2021 Bundle
drwxr-xr-x. 5 root root 186 May 13 2021 DBD
drwxr-xr-x. 4 root root 86 May 13 2021 XML
但是不是在安裝 /usr/lib/perl5/vendor_perl/它而是安裝在/usr/lib64/perl5/vendor_perl/lib/perl5/x86_64-linux-thread-multi
基本上我正在嘗試更新我的 DBD perl 模塊,該模塊目前在 2.19 版本上,我們已經更新了 3.15 的可用版本,所以我正在嘗試更新它
uj5u.com熱心網友回復:
您可能應該使用
PERL_MM_OPT= PERL_MB_OPT= sudo cpan DBD::Pg
首先,您不應該安裝在vendor_perl.
Perl 具有三個級別的安裝目錄:一層用于 Perl 的模塊部分(“核心”),一層用于組織提供的模塊perl(“供應商”),另一層用于最終用戶安裝的模塊(“站點”)。站點模塊覆寫供應商模塊,供應商模塊覆寫核心模塊。
您應該安裝到站點目錄中。可以通過以下方式獲取該目錄:
perl -V:installsitelib
對于perl來自 Ubuntu 20.04.3 LTS,那就是
installsitelib='/usr/local/share/perl/5.30.0';
關于這個問題。
安裝發行版不僅僅安裝了模塊。
以下所有內容都安裝到不同的目錄中:
- 沒有構建特定組件的模塊
- 具有構建特定組件的模塊
- 沒有構建特定組件的可執行檔案
- 具有特定于構建的組件的可執行檔案
- 模塊檔案
- 可執行檔案的檔案
INSTALL_BASE="$base"是一次提供所有這些位置的便捷方式。相當于
eval "$( perl -V:archname )"
INSTALLPRIVLIB="$base/lib/perl5" \
INSTALLARCHLIB="$base/lib/perl5/$archname" \
INSTALLSCRIPT="$base/bin" \
INSTALLBIN="$base/bin" \
INSTALLMAN3DIR="$base/man/man3" \
INSTALLMAN1DIR="$base/man/man1"
當您希望使用其他模式時,您需要單獨指定它們。
(如果沒有提供INSTALLARCHLIB,可能是從建造的?)INSTALLPRIVLIB
也就是說,您似乎想為系統提供的 Perl 安裝模塊。在這種情況下,您應該什么都不提供。
PERL_MM_OPT= PERL_MB_OPT= ( perl Makefile.PL && make test && sudo make install )
我將使用以下內容,它還會安裝任何必需的依賴項:
PERL_MM_OPT= PERL_MB_OPT= sudo cpan DBD::Pg
以下顯示了將安裝哪些路徑檔案:
for n in \
installsitelib \
installsitearch \
installsitescript \
installsitebin \
installsiteman3dir \
installsiteman1dir
do
perl -V:"$n"
done
對于perl來自 Ubuntu 20.04.3 LTS,那就是
installsitelib='/usr/local/share/perl/5.30.0';
installsitearch='/usr/local/lib/x86_64-linux-gnu/perl/5.30.0';
installsitescript='/usr/local/bin';
iinstallsitebin='/usr/local/bin';
installsiteman3dir='/usr/local/man/man3';
installsiteman1dir='/usr/local/man/man1';
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/432381.html
標籤:perl
