Как отменить случайную установку всех модулей Perl?

Я пытался обновить свои модули Perl через CPAN, но я не предоставлял имя регулярного выражения / модуля для обновления: perl -MCPAN -e 'upgrade'; Я могу предположить только худшее (что подтверждается выводом perldoc perllocal), т.е. все модули Perl из CPAN устанавливаются.

Как я могу отменить этот беспорядок? Я полагаю, я могу удалить /usr/local/share/perl, но каковы последствия этого?

Изменить: у меня все еще есть 95% свободного места на моем жестком диске, так что это не большая проблема. Я просто не хочу много ненужного беспорядка. я считаю rmв этом каталоге, делая dpkg --purge perl и переделывать apt-get и процесс установки CPAN. Но действительно ли это необходимо, или я могу просто удалить ненужные модули из /usr/local/share/perl?

2 ответа

Глядя на это чуть ближе, я не думаю, что вам нужно или нужно удалять какие-либо каталоги или файлы в вашей системе.

Выполнение команды perl -MCPAN -e 'upgrade' из командной строки не будет устанавливать дополнительные модули на вашу систему.

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

Это похоже на выполнение команды 'r', а затем на команду обновления cpan[1]> незамедлительный. Смотрите здесь

CPAN и Synaptic - это две разные системы управления пакетами.

Это не установит все возможные модули Perl из CPAN. Он также не изменит существующий системный пакет дБ. Таким образом, вы можете безопасно откатиться назад.

Однако, это все еще потенциально опасно, если приложение или ваша система зависят от конкретной версии модуля Perl.

Если вы прервали процесс обновления, велика вероятность, что вы избежали вреда вашей системе.

Варианты восстановления:

Из командной строки запустите cpan и выполните команду r, чтобы увидеть список установленных модулей и доступных обновлений. Например, вот сокращенный вывод из моего cpan:

cpan[7]> r

Package namespace         installed    latest  in CPAN file
App::Cpan                    1.5701      1.61  BDFOY/App-Cpan-1.61.tar.gz
DBD::mysql                    4.020     4.022  CAPTTOFU/DBD-mysql-4.022.tar.gz
DBI                           1.616     1.623  TIMB/DBI-1.623.tar.gz
DB_File                       1.821     1.827  PMQS/DB_File-1.827.tar.gz
Error                       0.17010   0.17019  SHLOMIF/Error-0.17019.tar.gz
Eval::Closure                  0.06      0.08  DOY/Eval-Closure-0.08.tar.gz
....

Возьмите Eval::Closure модуль, для этого примера. Допустим, что вы позволили perl -MCPAN -e 'upgrade' Команда завершена, и теперь у вас установлена ​​версия 0.08.

Если посмотреть на Synaptic, то в этом случае он покажет, что последняя версия в репозитории все еще будет иметь значение 0,06(в частности, 0,06-1, в моем случае).

Вы можете откатиться до версии вашей системы, выполнив следующую команду:

sudo apt-get install --reinstall libeval-closure-perl

Если вы установили какие-либо модули Perl вручную и хотите откатить их до предыдущей версии, вам нужно будет загрузить их снова (из source.cpan.org или в другом месте) и вручную переустановить.

Подводя итог: Обновление модулей Perl в CPAN не должно влиять на ваш системный репозиторий.

Удачи. Не паникуйте.

Я бы порекомендовал сделать: apt-get remove <installed-packages> && apt-get autoremove(убрать зависимости) && apt-get purge <installed-packages>(чтобы удалить файлы конфигурации, оставшиеся), тогда вы можете удалить ненужные папки, но это уже должно быть сделано для вас:)

Другие вопросы по тегам