mar*_*ark 5 perl debian apt cpan
我将Debian开发系统上的所有perl模块(作为测试)更新为最新版本.我想看看升级实时服务器上的模块是否安全.它似乎工作,除了我开始从Imager得到一个奇怪的错误(与API版本号有关,但现在这不是很重要).
我尝试重新安装Imager和任何相关的库,但似乎什么都没有解决问题.
进一步看,我发现有问题的开发系统似乎有多个perl目录,包括:
/usr/lib/perl (which contains 5.14.2 and subdirs)
/usr/lib/perl5 (which contains a range of perl modules)
/usr/local/lib/perl (which contains another 5.14.2 and a set of modules)
and even /root/perl5 (which contains a small list of modules including i486-linux-gnu-thread-multi-64int)
Run Code Online (Sandbox Code Playgroud)
它出现了(尽管我并不完全确定我正在读这个),系统上的模块已经使用各种方法安装,apt-get,aptitude,cpan,从源安装,cpanminus和不同的模块是最终在不同的perl目录(我猜安装),主要是/ usr/local/lib/perl或/ usr/lib/perl5.我不知道至少有2种不同的perl安装在那里.
我认为/usr/lib/perl是我想保留的,所以,我尝试将/ usr/local/lib/perl重命名为perl.save,然后链接/ usr/local/lib/perl/usr/lib/perl .然后我重新安装了任何丢失的包.
大多数软件包似乎安装了一些,但是我得到了这个不祥的消息;
有/usr/local/lib/perl/5.14.2
想要/usr/lib/perl/5.14
你的perl和你的Config.pm似乎对它们运行的架构有不同的看法.
Perl认为:[5.14.2]
配置说:[i486-linux-gnu-thread-multi-64int]
这可能会也可能不会引起问题.如果您在构建此扩展程序时遇到问题,请检查您的perl安装.
之后,该特定模块的安装失败.可能有充分的理由.
我想解决这个问题的原因是我们的开发系统都是虚拟的,所有其他开发系统都是这个(坏的)系统的克隆 - 所以这是一个我需要解决的问题,而无需从头开始重建整个系统(虽然他是一个选择).
我确实尝试克隆系统然后清除perl,但这给我留下了一个无法完成任何事情的极其破碎的系统.
有什么想法来解决这个问题吗?谢谢
根据我上面的评论,cpanm 是以 root 身份安装的,并将其自身配置为将模块放入 /root/perl5 中。这让我意识到我遇到了一个小学生错误 - 当我 sudo -s 到 root 时 root 所拥有的环境与我以 root 或 su - root 身份登录时的环境不同。因此,东西已经安装在各种宫殿中,其中一些隐藏在其他环境中(例如,不包括在@INC中)。此外,由于 ikegami 指出的问题,系统未找到所有库。
| 归档时间: |
|
| 查看次数: |
1119 次 |
| 最近记录: |