我将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)
它出现了(尽管我并不完全确定我正在读这个),系统上的模块已经使用所有可能的方法安装,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]
Config说:[i486-linux-gnu-thread-multi-64int]
这可能会也可能不会引起问题。请检查你的perl安装 如果您在构建此扩展程序时遇到问题。
之后,该特定模块的安装失败。可能有充分的理由。
我想解决这个问题的原因是我们的开发系统都是虚拟的,所有其他开发系统都是这个(破坏)系统的克隆 - 所以这是一个我需要解决的问题而不需要重建整个系统从头开始(尽管他是一个选择)。
我确实尝试克隆系统然后清除perl,但这给我留下了一个无法做任何事情的极其破碎的系统。
有什么想法来解决这个问题吗? 感谢
答案 0 :(得分:1)
有许多“perl virtualenv”项目使用“local :: lib”模块。这使您可以在本地目录中安装特定应用程序的内容。如果使用正确,这些将覆盖系统中的任何内容。
这个https://github.com/stoned/pll使用cpanm,以便您可以安装到虚拟环境中。
这可能不是你想要的,但需要考虑。
答案 1 :(得分:0)
根据我上面的评论,cpanm以root身份安装并配置为将模块放在/ root / perl5中。这让我意识到我已经被一个小学生的错误所困扰 - 当我以root用户或su - root身份登录时,当我sudo -s to root时root用户的env与env不同。所以事情已经安装在各种各样的宫殿中,其中一些宫殿隐藏在其他环境中(例如,不包括在@INC中)。由于ikegami指出的问题,系统也没有找到所有的库。
答案 2 :(得分:0)
以防万一有人仍然有问题,我在做本地人 5.18安装,(我第一次),我将2个库添加到PERL5LIB。 在安装Moose之后我遇到了安装Moose的问题 没有问题。