Как мне обновить все мои модули CPAN до их последних версий?

111

Как обновить все мои модули CPAN до их последних версий?

Теги:
cpan

5 ответов

114
Лучший ответ

Альтернативным методом использования upgrade из оболочки CPAN по умолчанию является использование cpanminus и cpan-outdated.

Они настолько легки и проворны в использовании, что я почти никогда не возвращаюсь к оболочке CPAN. Чтобы обновить все модули за один раз, выполните следующие действия.

cpan-outdated -p | cpanm


Я рекомендую установить cpanminus, как описано в документах:

curl -L http://cpanmin.us | perl - App::cpanminus

И затем установите cpan-outdated вместе со всеми другими модулями CPAN с помощью cpanm:

cpanm App::cpanoutdated

BTW: Если вы используете perlbrew, вам нужно будет повторить это для каждого Perl, который вы установили под ним.

Здесь вы можете узнать больше о cpanminus и cpan-outdated в репозиториях Github:

  • 3
    зачем использовать такие дополнительные инструменты, когда есть встроенное решение (см. второй ответ)?
  • 3
    «Зачем использовать такие дополнительные инструменты» Хотя cpanimus НЕ решает проблему с OP, решая проблему CPAN, он просит вас нажать Enter и / или ввести [y] es. Afaict вы не можете надежно подавить это поведение с ванильным CPAN. Это становится важным, как только задействуется какой-либо сервер cron или CI, и / или если вы хотите иметь возможность начать обновление с уверенностью, что оно не зависнет, пока вы не пьете кофе (что, по моему опыту, часто бывает с ванильным CPAN) См. также этот ответ stackoverflow.com/questions/898782/…
Показать ещё 6 комментариев
40

Простым способом обновления всех пакетов Perl (модулей CPAN) является следующий способ:

cpan upgrade /(.*)/

cpan распознает регулярное выражение, подобное этому, и обновит/обновит все установленные пакеты.

  • 7
    Хорошо, это не так круто, как cpanminus , но, по крайней мере, вам не нужно ничего скачивать, чтобы заставить это работать.
  • 10
    Для тех, у кого проблемы с этой командой; Попробуйте запустить оболочку cpan через cpan , а затем запустите upgrade /(.*)/ в оболочке cpan.
22

Для Strawberry Perl попробуйте:

cpan -u
  • 2
    Для обычного Perl тоже. На странице руководства: -u Upgrade all installed modules. Blindly doing this can really break things, so keep a backup.
18

upgrade

Кстати, есть команда help.

14

Попробуйте perl -MCPAN -e "upgrade /(.\*)/". Это отлично работает для меня.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню