Error install Inline::Perl5 with Zef (Raku)

198 Views Asked by At

I'm trying to install Raku on a Debian 11 x64. I never installed it before (perl5 too)

It's a server with some Perl5 scripts, and I want to "use" it in Raku with the Inline::Perl5 (also I want to use Perl5 Module if I don't find what I want in Raku Module) but I can't.

The perl5 is installed by APT, rakudo too.

When running zef install Inline::Perl5, I get the following:

===> Searching for: Inline::Perl5
===> Searching for missing dependencies: Distribution::Builder::MakeFromJSON:ver<0.6+>
===> Searching for missing dependencies: System::Query
===> Failed to find dependencies: System::Query Failed to resolve some missing dependencies

If I try to install System::Query with zef, I obtain :

===> Searching for: System::Query
No candidates found matching identity: System::Query

Do you have some idea to help me ?

Thank's a lot

2

There are 2 best solutions below

9
On

The rakudo version you've installed probably does not have that one baked in. You can upgrade zef via zef upgrade zef. My version of zef, 0.14.5, is able to find System::Query without a glitch.

> zef search System::Query
===> Updating fez mirror: https://360.zef.pm/
===> Updated fez mirror: https://360.zef.pm/
===> Updating rea mirror: https://raw.githubusercontent.com/Raku/REA/main/META.json
===> Updated rea mirror: https://raw.githubusercontent.com/Raku/REA/main/META.json
===> Found 8 results
---------------------------------------------------------------------------------------------------------------------------------------------------------------
ID|From                            |Package                                     |Description                                                                   
---------------------------------------------------------------------------------------------------------------------------------------------------------------
0 |Zef::Repository::Ecosystems<fez>|System::Query:ver<0.1.6>:auth<zef:tony-o>   |A utility for collapsing JSON dependent upon certain environmental information
1 |Zef::Repository::Ecosystems<fez>|System::Query:ver<0.1.5>:auth<zef:tony-o>   |A utility for collapsing JSON dependent upon certain environmental information
2 |Zef::Repository::Ecosystems<fez>|System::Query:ver<0.1.4>:auth<zef:tony-o>   |A utility for collapsing JSON dependent upon certain environmental information
3 |Zef::Repository::Ecosystems<rea>|System::Query:ver<0.1.6>:auth<zef:tony-o>   |A utility for collapsing JSON dependent upon certain environmental information
4 |Zef::Repository::Ecosystems<rea>|System::Query:ver<0.1.5>:auth<zef:tony-o>   |A utility for collapsing JSON dependent upon certain environmental information
5 |Zef::Repository::Ecosystems<rea>|System::Query:ver<0.1.4>:auth<zef:tony-o>   |A utility for collapsing JSON dependent upon certain environmental information
6 |Zef::Repository::LocalCache     |System::Query:ver<0.1.6>:auth<zef:tony-o>   |A utility for collapsing JSON dependent upon certain environmental information
7 |Zef::Repository::LocalCache     |System::Query:ver<0.1.4>:auth<github:tony-o>|A utility for collapsing JSON dependent upon certain environmental information
---------------------------------------------------------------------------------------------------------------------------------------------------------------
3
On

I occasionally reach for apt-get like this:

`sudo apt-get install rakudo -y`;
`sudo git clone https://github.com/ugexe/zef.git`;
`sudo raku -I./zef zef/bin/zef install ./zef --/test`;

It is handy and works up to a point - but (as just checked) it does not do the job for Inline::Perl5. Notoriously within the raku community, the last pickup for the apt-get build pipeline coincided with a half completed move of zef into core - so, as you can see you need to install zef by hand for now (only if you go the apt-get route).

The reason for Inline::Perl5 to fail is set out in the Inline::Perl5 README.md documents is:

If you use the perl that comes with a Linux distribution, you may need to install a separate package containing the perl library.

This section of the documents gives instructions of how to do this build.

Having been here before, I put this all into a Dockerfile that you are welcome to scavenge / use directly.

I have also just pushed an amd64 image p6steve/raku-dan:paddle to docker hub, so you can just go:

docker run -it p6steve/raku-dan:paddle
zef install Inline::Perl5

This has cpanm too so you can grab any cpan modules you want.