如何禁用crontab使用的cpan的终端轮询?

时间:2009-11-12 20:22:24

标签: perl cpan

我希望每晚都自动更新所有已安装的CPAN模块,因此我在crontab中放置了以下命令:

@daily cpan -i $(cpanp -o | perl -lane 'print $F[3]')

但是,无论何时运行,我都会收到以下错误消息:

Unable to get Terminal Size. The TIOCGWINSZ ioctl didn't work. The COLUMNS and
LINES environment variables didn't work. The resize program didn't work. at
/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/Term/ReadKey.pm
line 362.
Compilation failed in require at /usr/lib/perl5/site_perl/5.8.8/Term/ReadLine
/Perl.pm line 63.

我能做些什么才能让它发挥作用?

3 个答案:

答案 0 :(得分:3)

周一回来。如果您承诺为我测试,我会向-u添加cpan命令。您必须从App::Cpan获取最新的cpan

好的,不要等到星期一。我已将更改推送到cpan-script Github repo,而App-Cpan 1.56_15正在转向CPAN。

如果您遇到任何问题或新功能无法满足要求,请与我们联系。

答案 1 :(得分:2)

请使用 brian d foy的答案,因为他添加了cpan选项来执行此操作

您是否尝试使用CPAN更新模块列表或实际更新任何过时模块(d / l,编译,安装)?这可能很危险,因为模块可能会更改接口,现有脚本会失败。此错误是由于CPAN尝试使用Term :: ReadLine和Term :: ReadKey来查询终端。

如果您确实要升级所有模块,可以使用以下命令:

perl -MCPAN -e 'CPAN::Shell->install(CPAN::Shell->r)'

这是对文档中给出的命令的一个小改动,用于查询所有过时模块的CPAN:

https://metacpan.org/pod/CPAN#PROGRAMMERS-INTERFACE

答案 2 :(得分:0)

  

COLUMNS和LINES环境变量不起作用。

尝试设置COLUMNSLINES环境变量。

COLUMNS=80
LINES=24
@daily cpan -i $(cpanp -o | perl -lane 'print $F[3]')