加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

获取已安装的模块以识别配置文件的更改

发布时间:2020-12-16 06:24:39 所属栏目:大数据 来源:网络整理
导读:我有一个包使用config.json它的一些设置.我在本地保留包,而不是从CPAN安装它.我的问题是当我对config.json进行更改时,程序包无法识别自配置文件缓存到别处以来的更改,迫使我运行zef install –force-install或delete precomp.如何确保程序包始终识别配置文件
我有一个包使用config.json它的一些设置.我在本地保留包,而不是从CPAN安装它.我的问题是当我对config.json进行更改时,程序包无法识别自配置文件缓存到别处以来的更改,迫使我运行zef install –force-install或delete precomp.如何确保程序包始终识别配置文件的更新?

解决方法

使用 zef安装软件包时,它会将它们保存在文件系统中,但它们的名称会转换为sha1,类似于

/home/jmerelo/.rakudobrew/moar-2018.03/install/share/perl6/site/sources/81436475BD18D66BFD96BBCEE07CCCDC0F368879

然而,zef会跟踪它们,你可以使用zef locate找到它们,例如:

zef locate lib/Zef/CLI.pm6

您可以从程序中运行它,例如:

sub MAIN( Str $file ) {
    my $location = qqx/zef locate $file/;
    my $sha1 = ($location ~~ /s+ =&; s+ (.+)/);
    say "$file → $sha1[0]";
}

这将返回几乎相同,除了它将为您提供在命令行提供它的文件的第一个位置:

lib/Zef/CLI.pm6 → /home/jmerelo/.rakudobrew/moar-2018.03/install/share/perl6/site/sources/81436475BD18D66BFD96BBCEE07CCCDC0F368879

您可能需要在资源目录(这是首选位置)中安装config.json文件,然后使用类似的东西.

也就是说,实际上安装一个你正在测试的模块并不是最好的策略.如果你还在测试一下,如果你把它保存在你正在使用的目录中并且使用perl6 -I<那个目录>可能会更好.或者使用lib<那个目录>可能是一个更好的选择.您可以在发布或保留它时删除它,因为它只会在搜索路径中添加另一个目录,并且不会损害已发布的模块.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读