如何撤消意外安装的所有 Perl 模块?

如何撤消意外安装的所有 Perl 模块?

我试图通过 CPAN 升级我的 Perl 模块,但我没有提供要升级的正则表达式/模块名称:perl -MCPAN -e 'upgrade';我只能假设最坏的情况(似乎由的输出支持perldoc perllocal),即来自 CPAN 的所有 Perl 模块都在安装。

我该如何解决这一问题?我想我可以删除/usr/local/share/perl,但那会有什么后果呢?

编辑:我的硬盘上仍有 95% 的可用空间,所以这不是什么大问题。我只是不想有太多不必要的混乱。我正在考虑rm删除该目录,并dpkg --purge perl重新执行apt-getCPAN 安装过程。但这真的有必要吗,或者我可以从中删除不必要的模块/usr/local/share/perl吗?

答案1

仔细看看,我认为你不需要或者应该删除系统上的所有目录或文件。

perl -MCPAN -e 'upgrade'从命令行运行命令将不会在您的系统上安装附加模块。

它会仅有的尝试通过 CPAN 包管理系统升级已安装的模块,而不是通过 Synaptic

这类似于运行“r”命令,然后在提示符下运行升级命令cpan[1]>。请参阅 这里

CPAN 和 Synaptic 是两个独立且不同的包管理系统。

将不会从 CPAN 安装所有可能的 Perl 模块。它也不会修改现有的系统包 dB。因此,您绝对可以安全地回滚。

但是,如果应用程序或系统依赖于特定版本的 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 或其他地方),然后手动重新安装它们。

总结一下:在 CPAN 中升级 Perl 模块不应该影响您的系统存储库。

祝你好运。不要惊慌。

答案2

我建议这样做:(apt-get remove <installed-packages> && apt-get autoremove删除依赖项)&& apt-get purge <installed-packages>(删除剩余的配置文件)然后您可以删除不需要的文件夹,但它应该已经为您完成了:)

相关内容