Text::BibTeX
嗨大师我在运行使用模块的 perl 脚本时遇到问题。当我运行脚本(脚本在 $PATH 中)时,我得到了这个:
[pista@HP-PC bibtex]$ bibmerge
Can't load '/home/pista/perl5/lib/perl5/x86_64-linux-thread-multi/auto/Text/BibTeX/BibTeX.so' for module Text::BibTeX: libbtparse.so: cannot open shared object file: No such file or directory at /usr/lib64/perl5/DynaLoader.pm line 190.
at /home/pista/bin/bibmerge line 4
Compilation failed in require at /home/pista/bin/bibmerge line 4.
BEGIN failed--compilation aborted at /home/pista/bin/bibmerge line 4.
Unknown Text::BibTeX function: "cleanup" at /home/pista/bin/bibmerge line 4
END failed--call queue aborted at /home/pista/bin/bibmerge line 4.
[pista@HP-PC bibtex]$ ldd /home/pista/perl5/lib/perl5/x86_64-linux-thread-multi/auto/Text/BibTeX/BibTeX.so
linux-vdso.so.1 => (0x00007fff175ff000)
libbtparse.so => not found
libc.so.6 => /lib64/libc.so.6 (0x00007fbbb6267000)
/lib64/ld-linux-x86-64.so.2 (0x000000310b800000)
[pista@HP-PC bibtex]$
我假设某处缺少动态 .so 库。所以我创建了几个地方的符号链接:
[pista@HP-PC bibtex]$ ldd /home/pista/perl5/lib/perl5/x86_64-linux-thread-multi/auto/Text/BibTeX/BibTeX.so
linux-vdso.so.1 => (0x00007ffffd3ff000)
libbtparse.so => not found
libc.so.6 => /lib64/libc.so.6 (0x00007f9906d86000)
/lib64/ld-linux-x86-64.so.2 (0x000000310b800000)
[pista@HP-PC bibtex]$ ls -l /usr/local/lib64/libbtparse.so /usr/share/perl5/libbtparse.so /usr/local/lib64/perl5/libbtparse.so /usr/local/share/perl5/libbtparse.so /usr/lib64/perl5/libbtparse.so
lrwxrwxrwx 1 root root 30 Feb 3 22:19 /usr/lib64/perl5/libbtparse.so -> /usr/local/lib64/libbtparse.so
-r-xr-xr-x 1 root root 268365 Nov 21 00:35 /usr/local/lib64/libbtparse.so
lrwxrwxrwx 1 root root 30 Feb 3 22:19 /usr/local/lib64/perl5/libbtparse.so -> /usr/local/lib64/libbtparse.so
lrwxrwxrwx 1 root root 30 Feb 3 22:19 /usr/local/share/perl5/libbtparse.so -> /usr/local/lib64/libbtparse.so
lrwxrwxrwx 1 root root 30 Feb 3 22:19 /usr/share/perl5/libbtparse.so -> /usr/local/lib64/libbtparse.so
还尝试重新安装Text::BibTeX
:cpan -f -i Text::BibTeX
它没有错误地完成,但没有解决问题。
还尝试了以下内容:
[pista@HP-PC bibtex]$ echo $LD_LIBRARY_PATH
[pista@HP-PC bibtex]$ LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib64/"
[pista@HP-PC bibtex]$ echo $LD_LIBRARY_PATH
:/usr/local/lib64/
[pista@HP-PC bibtex]$ export $LD_LIBRARY_PATH
bash: export: `:/usr/local/lib64/': not a valid identifier
在另一个窗口我试过这个(不修改$LD_LIBRARY_PATH
只是导出):
[pista@HP-PC bibtex]$ echo $LD_LIBRARY_PATH
[pista@HP-PC bibtex]$ export $LD_LIBRARY_PATH
declare -x BOOT_IMAGE="/boot/vmlinuz-3.6.11-1.fc16.x86_64"
declare -x DBUS_SESSION_BUS_ADDRESS="unix:abstract=/tmp/dbus-KwW8FbO4rY,guid=bf5418c1b6c412ebce2d49f80000001b"
declare -x DESKTOP_SESSION="LXDE"
declare -x DISPLAY=":0"
declare -x GNOME_KEYRING_CONTROL="/tmp/keyring-ovZxH6"
declare -x GNOME_KEYRING_PID="1721"
declare -x GTK_IM_MODULE="gtk-im-context-simple"
declare -x HISTCONTROL="ignoredups"
declare -x HISTSIZE="1000"
declare -x HOME="/home/pista"
declare -x HOSTNAME="HP-PC"
declare -x IMSETTINGS_INTEGRATE_DESKTOP="yes"
declare -x IMSETTINGS_MODULE="none"
declare -x KDEDIRS="/usr"
declare -x KDE_IS_PRELINKED="1"
declare -x KEYTABLE="us"
declare -x LANG="en_US.UTF-8"
declare -x LESSOPEN="||/usr/bin/lesspipe.sh %s"
declare -x LOGNAME="pista"
declare -x LS_COLORS="rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.tbz=01;31:*.tbz2=01;31:*.bz=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:*.pdf=00;33:*.ps=00;33:*.ps.gz=00;33:*.txt=00;33:*.patch=00;33:*.diff=00;33:*.log=00;33:*.tex=00;33:*.xls=00;33:*.xlsx=00;33:*.ppt=00;33:*.pptx=00;33:*.rtf=00;33:*.doc=00;33:*.docx=00;33:*.odt=00;33:*.ods=00;33:*.odp=00;33:*.xml=00;33:*.epub=00;33:*.abw=00;33:*.html=00;33:*.wpd=00;33:"
declare -x MAIL="/var/spool/mail/pista"
declare -x OLDPWD
declare -x PATH="/home/pista/perl5/bin:/home/pista/perl5/bin:/home/pista/perl5/bin:/home/pista/perl5/bin:/home/pista/perl5/bin:/home/pista/perl5/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/pista/.local/bin:/home/pista/bin"
declare -x PERL5LIB="/home/pista/perl5/lib/perl5/x86_64-linux-thread-multi:/home/pista/perl5/lib/perl5"
declare -x PERL_LOCAL_LIB_ROOT="/home/pista/perl5"
declare -x PERL_MB_OPT="--install_base /home/pista/perl5"
declare -x PERL_MM_OPT="INSTALL_BASE=/home/pista/perl5"
declare -x PREFERRED="/usr/bin/startlxde"
declare -x PWD="/home/pista/bibtex"
declare -x QT_IM_MODULE="xim"
declare -x SAL_USE_VCLPLUGIN="gtk"
declare -x SHELL="/bin/bash"
declare -x SHLVL="2"
declare -x SSH_ASKPASS="/usr/libexec/openssh/gnome-ssh-askpass"
declare -x SYSFONT="latarcyrheb-sun16"
declare -x TERM="xterm"
declare -x USER="pista"
declare -x XAUTHORITY="/home/pista/.Xauthority"
declare -x XDG_CONFIG_HOME="/home/pista/.config"
declare -x XDG_CURRENT_DESKTOP="LXDE"
declare -x XDG_MENU_PREFIX="lxde-"
declare -x XDG_RUNTIME_DIR="/run/user/pista"
declare -x XDG_SEAT="seat0"
declare -x XDG_SESSION_COOKIE="2126b6a2b64504b04e875c5400000010-1359914175.927526-581717791"
declare -x XDG_SESSION_ID="1"
declare -x XDG_VTNR="1"
declare -x XMODIFIERS="@im=none"
declare -x _LXSESSION_PID="1788"
几个问题:最重要的是:如何制作Text::BibTeX
作品?为什么echo $LD_LIBRARY_PATH
只显示导出它显示?是否有一些 perl 包管理器可以处理依赖项、安装/卸载包?如何为所有用户安装软件包,我假设当软件包安装在 root 用户下时,它将安装在 root 主目录下,所以没有人可以访问它,还是我错了?是否可以更改已安装模块的位置(使用户的模块可供其他人使用)?为什么我无法经典地打印 @INC 变量perl -e 'print @INC'
是这个错误还是功能?
非常感谢