Как я могу отключить опрос терминала для cpan, используемого из crontab? - PullRequest
0 голосов
/ 12 ноября 2009

Я бы хотел, чтобы все установленные модули 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 ]

3 голосов
/ 13 ноября 2009

Вернись в понедельник. Я добавлю команду -u к cpan, чтобы сделать это, если вы пообещаете проверить ее для меня. Вам придется получить последнюю версию cpan из App :: Cpan .

Хорошо, не ждите до понедельника. Я перенес изменение в репозиторий cpan-скрипта Github , и App-Cpan 1.56_15 уже на пути к CPAN.

Дайте мне знать, если у вас возникли проблемы или новая функция не работает так, как вы хотите.

2 голосов
/ 13 ноября 2009

Пожалуйста, используйте ответ Брайана Д Фоя , поскольку он добавил опцию cpan для этого

Вы пытаетесь обновить список модулей с помощью CPAN или фактически обновить какие-либо устаревшие модули (d / l, compile, install)? Это может быть опасно, так как модули могут изменить интерфейс, а существующие скрипты выйдут из строя. Эта ошибка связана с попыткой CPAN использовать Term :: ReadLine и Term :: ReadKey для опроса терминала.

Если вы действительно хотите обновить все свои модули, вы можете использовать эту команду:

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

Это небольшое изменение по сравнению с командой, приведенной в документации, для запроса CPAN для всех устаревших модулей:

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

0 голосов
/ 13 ноября 2009

Переменные окружения COLUMNS и LINES не работали.

Попробуйте установить переменные окружения COLUMNS и LINES.

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