删除了 /usr/share/perl/5.26 因为我有 /usr/share/perl/5.26.1 文件夹

删除了 /usr/share/perl/5.26 因为我有 /usr/share/perl/5.26.1 文件夹

我是 perl 及其版本的新手,我以为它像 R 一样工作,但显然不是。我有文件夹 /usr/share/perl/5.26.1 文件夹和 /usr/share/perl/5.26 文件夹,这两个文件夹都包含相同的文件,所以我删除了 /usr/share/perl/5.26 文件夹。一切正常。当我输入时,perl -v我得到了This is perl 5, version 26, subversion 1 (v5.26.1)。但由于某种原因,当尝试安装 DBD::SQLite 时,Makefile.PL包“DBD-SQLite-1.66”文件夹中的默认值为PERL_LIB = /usr/share/perl/5.26。我如何将其设置为默认值PERL_LIB = /usr/share/perl/5.26.1,或者我如何才能恢复 /usr/share/perl/5.26 文件夹,因为显然你需要这两个文件夹,这似乎完全是在浪费空间。

答案1

您只需使用 APT 的功能即可恢复文件夹内容:

sudo apt-get install --reinstall \
$(dpkg -S /usr/share/perl/5.26 | sed "s/,//g" | sed "s|: /usr/share/perl/5.26||")

或更广泛

sudo apt-get install --reinstall \
$(dpkg -S /usr/share/perl/ | sed "s/,//g" | sed "s|: /usr/share/perl/||")

答案2

许多程序/库使用符号链接抽象出确切的版本号,并呈现更稳定的位置。例如,程序很少关心您的 Perl 补丁号是 5.26.1,但可能依赖于次版本号 5.26。在这种情况下,“真实”目录是,并且有一个指向该目录/usr/share/perl/5.26.1的符号链接,直到您删除它。符号链接基本上不占用磁盘空间,因此拥有这两个目录不会浪费任何东西。/usr/share/perl/5.26/usr/share/perl/5.26.1

为了解决你的情况,只需执行sudo ln -s /usr/share/perl/5.26.1 /usr/share/perl/5.26将创建一个/usr/share/perl/5.26指向的符号链接/usr/share/perl/5.26.1

相关内容