2009-11-12 35 views
0

我想都每天晚上自動更新安裝CPAN模塊,所以我放在下面的命令,在crontab如何禁用從crontab使用的cpan的終端輪詢?

@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. 

我該怎麼做才能使這項工作?

回答

2

請使用布賴恩·d FOY的答案,因爲他增加了一個CPAN選項來做到這一點

你想更新CPAN模塊列表或實際更新任何過時的模塊(d /升,編譯,安裝)?這可能是危險的,因爲模塊可能會改變接口並且現有腳本會失敗。此錯誤是由於CPAN嘗試使用Term :: ReadLine和Term :: ReadKey來詢問終端。

如果你真的希望將所有模塊的升級,你可以使用這個命令:

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

這是從文檔中給出詢問CPAN所有過時的模塊的命令一個小的變化:

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

+0

那麼使用你的命令和我最初使用的命令之間有什麼區別? – Kiffin

+0

它調用的是Install Shell的一部分,而不是加載shell並運行該命令。 –

0

COLUMNS和LINES環境變量不起作用。

嘗試設置COLUMNSLINES環境變量。

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

週一再來。如果您承諾爲我測試,我會添加-u命令到cpan。你必須從App::Cpan得到最新的cpan

好的,不要等到星期一。我已將更改推送到cpan-script Github repo,並且App-Cpan 1.56_15正在前往CPAN。

讓我知道如果你有任何問題或新功能不能做你想做的。

+0

所以要安裝這個,我只需要下載http://search.cpan.org/CPAN/authors/id/B/BD/BDFOY/App-Cpan-1.56_15.tar.gz並執行通常的perl Makefile.PL等等的東西? – Kiffin