您可以使用 获取已安装模块的列表zef list --installed
。请注意,您可能想忽略share/perl6
repo,因为其中CORE
包含的模块特定于 rakudo 的每个版本。
见:https ://github.com/ugexe/zef#list-from
列表 [*@from]
列出已知的可用发行版
$ zef --已安装列表
===> 通过 /home/nickl/.rakubrew/moar-master/install/share/perl6/site 找到
CSV::Parser:ver<0.1.2>:auth<github:tony-o>
Zef:auth<github:ugexe>
===> 通过 /home/nickl/.rakubrew/moar-master/install/share/perl6 找到
核心:ver<6.c>:auth<perl>
或者,您可以使用以下单行来获取列表:
$ 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 可能要求您在命令行中明确引用传入的名称)