2017-08-05 153 views
6

我安装Rakudo,Perl 6的解释,并非编译:安装的模块Perl 6的失败 - 可用于Perl v6.c

sudo apt-get install rakudo 

我下面一个有关安装Perl 6的模块教程:

http://perl6maven.com/how-to-install-perl6-modules

并在最后一步,我得到这个错误:

perl6 bootstrap.pl===SORRY!=== Error while compiling /home/daniel/test/panda/bootstrap.pl 
No compiler available for Perl v6.c 
at /home/daniel/test/panda/bootstrap.pl:3 
------> use v6.c⏏; 

有关版本信息:

Ubuntu 16.04.2 LTS 
This is perl6 version 2015.11 built on MoarVM version 2015.11 

如何安装缺少的编译器?

+0

首次发布的Perl 6作为标准是在2015年12月,你有一个从上个月的Rakudo。 –

回答

2

如果您熟悉从源代码安装自己的软件,然后尝试以下内容(从https://rakudo.perl6.org/downloads/star/更新最新的Rakudo Star的URL):

wget -O rakudo-star-2017.07.tar.gz https://rakudo.perl6.org/downloads/star/rakudo-star-2017.07.tar.gz 
tar -xvf rakudo-star-2017.07.tar.gz 
cd rakudo-star-2017.07 
perl Configure.pl --backend=moar --gen-moar 
make 
make rakudo-test 
make install 

然后将下面的路径添加到您的$PATH(与实际路径替换/path/to,当然):

/path/to/rakudo-star-2017.07/install/bin 
/path/to/rakudo-star-2017.07/install/share/perl6/site/bin 

我使用一个模块文件本:

#%Module1.0 
## Metadata ########################################### 
set this_module rakudo-star 
set this_version 2017.07 
set this_root  /path/to/$this_module/$this_module-$this_version/install 
set this_docs  http://rakudo.org/documentation/ 

####################################################### 
## Module ############################################# 
proc ModulesHelp { } { 
     global this_module this_version this_root this_docs 
     puts stderr "$this_module $this_version" 
     puts stderr "****************************************************" 
     puts stderr " $this_docs" 
     puts stderr "****************************************************\n" 
} 

module-whatis "Set up environment for $this_module $this_version" 

prepend-path PATH $this_root/bin 
prepend-path PATH $this_root/share/perl6/site/bin 
+0

非常感谢。 – Daniel

6

警告:此解决方案可用于开发,但对于生产,建议手动编译解释器,直到Ubuntu存储库不会更新。

Panda在链接教程中描述的折旧。我应该使用zef来安装Perl模块。

我的Perl版本太旧了。在阅读issue 380后,我意识到这是关于不工作的版本6.c

有关安装最新的Perl,6.c的正确教程,对Ubuntu是在这里:

http://linuxtot.com/installing-perl-6-on-debian-or-ubuntu/

现在我rakudo -v打印:

This is Rakudo version 2017.07-132-gabf1cfe built on MoarVM version 2017.07-318-g604da4d 
implementing Perl 6.c. 

而且一切都很正常。


下面的命令是从a tutorial提取链接如下:

apt-get install build-essential git libssl-dev 
git clone https://github.com/tadzik/rakudobrew ~/.rakudobrew 
echo 'export PATH=~/.rakudobrew/bin:$PATH' >> ~/.bashrc 
source ~/.bashrc 
rakudobrew build moar 
rakudobrew build zef 

现在安装perl6模块:

zef install Module::Name 
+4

**注意事项**对于那些阅读此内容的人,我已经提出了@丹尼尔的问题和答案,但他们的答案依然存在问题。他们的回答显然正确地标识了他们遇到的问题(旧的安装程序和旧的P6版本)。他们链接的教程也让他们得到了一个解决方案。但是这个教程涉及到rakudobrew的使用。 rakudobrew是一个脆弱的“快速和肮脏”的工具,意味着核心开发人员,而不是普通用户。我在[我最近的一篇reddit评论]中更详细地解释了这一点(https://www.reddit.com/r/perl6/comments/6htztl/no_candidate_found_for_zef/dj1bc4p/)。 – raiph

+0

如果您不关心生产部署,而是希望在家中开始使用Perl 6,那么跟踪最新版本,那么rakudobrew就完全没问题。形容它“快而肮脏”是不真诚的。它不比像perlbrew这样有许多人用来取得巨大成功的东西更脆弱。对于生产部署,总是有更多。在这里值得强调的更大的问题是Ubuntu LTS有一个古老版本的Rakudo,它不符合发布的规范。 –