Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Installation of modules Perl 6 failed - No compiler available for Perl v6.c

I installed Rakudo, the Perl 6 interpreter, by:

sudo apt-get install rakudo

I am following a tutorial about installation of Perl 6 modules:

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

And in the last step I get this error:

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⏏;

Information about versions:

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

How do I install the lacking compiler?

like image 962
Daniel Avatar asked Aug 05 '17 23:08

Daniel


2 Answers

Warning: This solution can be used for development, but for production it is recommended to manually compile the interpreter until the Ubuntu repository will not be updated.

Panda described in the linked tutorial is depreciated. I should use zef to install Perl modules.

My build of Perl was too old. I realized this after reading issue 380 about not working version 6.c.

The correct tutorial about installation of the newest Perl, 6.c, on Ubuntu is here:

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

Now my rakudo -v prints:

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

And everything works great.


The below commands are extracted from a tutorial linked below:

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

Now to install the perl6 module:

zef install Module::Name
like image 95
Daniel Avatar answered Nov 17 '22 13:11

Daniel


If you are comfortable installing your own software from source, then try the following (update the URL for the latest Rakudo Star from https://rakudo.perl6.org/downloads/star/):

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

Then add the following paths to your $PATH (replacing /path/to with the actual path, of course):

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

I use a module file for this:

#%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
like image 3
Christopher Bottoms Avatar answered Nov 17 '22 14:11

Christopher Bottoms