Как отменить случайную установку всех модулей 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>
(чтобы удалить файлы конфигурации, оставшиеся), тогда вы можете удалить ненужные папки, но это уже должно быть сделано для вас:)