![删除了 /usr/share/perl/5.26 因为我有 /usr/share/perl/5.26.1 文件夹](https://linux22.com/image/1176108/%E5%88%A0%E9%99%A4%E4%BA%86%20%2Fusr%2Fshare%2Fperl%2F5.26%20%E5%9B%A0%E4%B8%BA%E6%88%91%E6%9C%89%20%2Fusr%2Fshare%2Fperl%2F5.26.1%20%E6%96%87%E4%BB%B6%E5%A4%B9.png)
我是 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
。