Почему я не должен обновлять все свои модули CPAN? - PullRequest
0 голосов
/ 04 октября 2018

Я подумал, что в целом было бы неплохо регулярно обновлять все программное обеспечение на моем компьютере.Так как модули CPAN не управляются моим менеджером пакетов, я решил, что должен делать cpan -u время от времени.Только после выполнения этого я прочитал примечание к странице руководства по этому поводу:

-u  Upgrade all installed modules. Blindly doing this can really break
   things, so keep a backup.
  1. Почему это должно что-то сломать?И как я должен поддерживать свои модули CPAN в актуальном состоянии в противном случае;мне нужно отслеживать все установленные вручную модули (cpan, похоже, этого не делает) и только регулярно обновлять их?Как насчет зависимостей моих модулей, установленных вручную?
  2. Почему cpan -u обновил материал за ~ 15 минут, даже если я не установил ни одного модуля CPAN?
  3. Можно ли вернуть cpan -u?Достаточно ли для этого удаления ~/.cpan?

Ответы [ 2 ]

0 голосов
/ 04 октября 2018
  1. Новый или обновленный код - новые или обновленные ошибки.У меня противоположное мнение о Квентине: почему изменение кучки вещей не сломало бы вещи?Это то, что я ожидаю с большинством обновлений.Однако портеры Perl 5 прикладывают большие усилия, чтобы протестировать дистрибутивы perl против максимально возможного количества CPAN.Это не означает, что ваше конкретное использование модуля (и то, как вы работали с существующими ошибками) стабильно.

  2. Некоторые модули, поставляемые с perl, также находятся на CPAN.Это «двойные» модули, и они могут обновляться из CPAN.

  3. Средство cpan ничего не возвращает вам, но вы можете иногда делать то, что я делаю.Сделайте вашу установку git-репо.Филиал, когда вы меняете его.Попробуйте ветку с вашим кодом.Если что-то пойдет не так, вы всегда можете вернуться к мастеру.Вам даже не нужно совершать изменения!Такие инструменты, как Pinto , помогут вам управлять наборами модулей Perl.

Есть еще несколько вещей, которые следует учитывать.

Во-первых, я рекомендую вам не связываться с системой perl .Пусть система сделает это.Если вы хотите более свежий perl , которым вы управляете сами, установите другой.Для этого вам может понравиться perlbrew (не знаю, но в этом нет ничего особенного).

Вы можете испортить его столько, сколько захотите, и система не начнет работатьстранные вещи.Рассмотрим основные изменения, такие как удаление.от @ INC и Устаревшие неэкранированные левые скобки в регулярных выражениях .Это были изменения в perl , но они сломали некоторые важные вещи.

Во-вторых, вы можете настроить cpan для установки где-нибудь помимо системных каталогов.Переключатель -I будет использовать local :: lib для вас.Кроме того, вы можете настроить его вручную .

0 голосов
/ 04 октября 2018

Почему это должно что-то сломать?

Не должно, но сложные системы сложны, а иногда вещи ломаются (например, если модуль обновляется с изменением, не совместимым с предыдущими версиями)или зависит от библиотеки C, в которой есть ошибки, которые отображаются только в сочетании с конкретными зависимостями).

И как мне в противном случае поддерживать свои модули CPAN в актуальном состоянии;

Просто сохраняйте резервные копии на случай, если что-то сломается.

ПочемуОбновление cpan -u в течение ~ 15 минут, даже если я не установил один модуль CPAN?

Perl распространяется с большой коллекцией модулей , и другие модули могут иметьбыл установлен вашим дистрибутивом.

Могу ли я вернуть cpan -u?

Вы можете перезаписать его резервной копией, которую рекомендует документация.

Достаточно ли для этого удаления ~ / .cpan?

Нет.Этот каталог используется инструментом установки для кэширования данных о доступных модулях, для хранения исходного кода и для хранения артефактов сборки.Установленные файлы записываются в вашу lib, как и любая другая библиотека.

...