微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用rakubrew安装其他rakudo版本的模块

如何解决使用rakubrew安装其他rakudo版本的模块

使用rakubrew升级rakudo版本时,更改版本非常容易,但是我想知道是否有可能将raku模块从旧版本导入到新版本。 doign zef自动安装:

要更新:

rakubrew build 2020.10

但随后:

❯ raku
Welcome to ??????™ v2020.10.
Implementing the ????™ programming language v6.d.
Built on moarvm version 2020.10.

You may want to `zef install Readline` or `zef install Linenoise` or use rlwrap for a line editor

To exit type 'exit' or '^D'

所以我需要安装当前使用的所有模块:

rakubrew build-zef zef安装Sparrow6 zef安装Linenoise

因此存在任何.zef或.rakubrew文件或检查以自动维护此模块的文件

解决方法

您可以使用zef list --installed获取已安装模块的列表。请注意,您可能想忽略share/perl6回购,因为其中包含的CORE模块特定于每个版本的rakudo。

请参阅:https://github.com/ugexe/zef#list-from

列出[* @ from]

列出已知的可用分布

$ zef-已安装列表

===>通过/home/nickl/.rakubrew/moar-master/install/share/perl6/site找到

CSV :: Parser:ver :auth

Zef:auth

===>通过/home/nickl/.rakubrew/moar-master/install/share/perl6找到

CORE:ver :auth

或者,您可以使用以下单行获取列表:

$ raku -e 'say $*REPO.repo-chain.grep(CompUnit::Repository::Installation).map(*.installed.Slip).grep(*.defined).map({ CompUnit::Repository::Distribution.new($_).Str }).join(" ")'

Text::Table::Simple:ver<0.0.7>:auth<github:ugexe>:api<> CSV::Parser:ver<0.1.2>:auth<github:tony-o>:api<> CORE:ver<6.d>:auth<perl>:api<>

# $*REPO.repo-chain.grep(CompUnit::Repository::Installation) # Get only repos for installed raku modules
# .map(*.installed.Slip)                                     # Get a list of installed modules for this repo,and Slip it into the outer singular results list
# .grep(*.defined)                                           # Some repos will have had no modules,so remove these undefined entries
# .map({ CompUnit::Repository::Distribution.new($_).Str })   # Use CompUnit::Repository::Distribution to get at the normalized identifier
# .join(" ")                                                 # Join the results together

一旦您选择了一种创建需要安装列表的方式,就可以将该列表传递给zef(尽管您的shell可能要求您在命令行中明确引用传递的名称)

,

rakubrew在不同的目录$HOME/.rakubrew/versions/moar-*中安装了不同的Raku版本

因此,每个Raku版本都有其自己的单独的Installation存储库(site,vendor,...)。

而且我认为,因为zef默认将发行版安装到site回购中。因此,这些模块在多个版本中不可用。

但是,由于Raku使用home Installation回购(#inst/home/user-name/.raku),并且它存在于repo-chain中,因此您可以将所有版本都可以使用的模块安装到{ {1}}回购(home)。 (这些模块将在新的~/.raku版本中第一次use进行预编译)。

请注意,我尚未使用Raku进行过测试,但我使用的是zef,默认情况下会安装到Pakku回购中,并且我安装到home的模块也可用到我的Linux计算机上的所有home rakubrew版本。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。