升级到Intrepid Ibex Ubuntu后,为什么找不到Perl模块?
我昨天升级到了Ubuntu Intrepid Ibex,突然间我安装了一些Perl模块(哈代苍鹭),都失踪了!升级到Intrepid Ibex Ubuntu后,为什么找不到Perl模块?
我得到通常的“无法在@INC中找到模块”错误。有没有任何CPAN储存库改变或Intrepid?谷歌根本没有帮助。
在此先感谢。
标准解决方案是产生一个“autobundle”与CPAN.pm 之前升级Perl。搜索autobundle会产生一些关于讨论Perl模块管理的现有SO问题的链接,以及几个看起来应该提供更多信息的链接。 CPAN.pm manual涉及autobundle,但不包含太多细节。
由于您已经升级了Perl,因此安装模块的一个解决方案是生成自动绑定文件并使用生成文件中的条目作为指导,以便为您的模块写入包含条目的自定义自动绑定文件(仅限于) 。 autobundle文件格式只是POD,所以这应该很容易做到。
将来你应该习惯于在升级Perl之前生成一个自动包装。这不是一个完美的解决方案,autobundle将包含核心模块的条目,在实际构建之前必须将其删除,但至少您会获得已安装Perl模块的快照,以便您可以修复Perl安装升级后。
Perl在Intrepid上更改。
升级之前,你有Perl 5.8,现在你有5.10。
由于Perl版本可能/usr/lib/perl5/5.10.*是用来代替/usr/lib/perl5/5.8.8已经改变
反过来。他安装的模块位于/usr/lib/perl5/5.8.8,perl正在查找/usr/lib/perl5/5.10.0 – 2008-12-29 15:43:11
您的Perl安装已从版本5.8更改为5.10。由于您需要的许多模块都位于perl-version特定的目录中,因此可能需要使用CPAN工具重新安装(例如,cpan
命令)。
但是,由于您使用的是Ubuntu,请记住许多许多CPAN库也通过Ubuntu软件包管理器分发,并且CPAN软件包将安装到与Ubuntu安装不同的位置(这对用户是透明的,因为两者都在@INC
路径中)。
我建议在可用时使用Ubuntu软件包,因为当软件包管理器(APT)在中央软件包服务器上发布新软件包时,它们将进行更新。名称格式稍有不同。这里有两种方法来安装相同的包,从不同的来源:
$ cpan List::MoreUtils # installs latest from CPAN
$ sudo apt-get install liblist-moreutils-perl # installs latest from Ubuntu universe
后者的优点是,它会被sudo apt-get update
更新。
要创建自动装配,请查找旧的perl二进制文件并使用它运行cpan命令与-a开关(即/usr/local/bin/perl5.8.5 cpan -a)。 – 2008-12-29 18:59:31