我希望每晚都自动更新所有已安装的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.
我能做些什么才能让它发挥作用?
答案 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:
答案 2 :(得分:0)
COLUMNS和LINES环境变量不起作用。
尝试设置COLUMNS
和LINES
环境变量。
COLUMNS=80
LINES=24
@daily cpan -i $(cpanp -o | perl -lane 'print $F[3]')