Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can't run "cro stub" etc

Tags:

raku

cro

Installed Cro via Zef, but can't run "cro stub", "cro run", etc.
(Edit: Fedora 28, rakudo from Fedora)

[zv@localhost ~]$ cro stub hello  
bash: cro: command not found...  
[zv@localhost ~]$

So, where is "cro" installed ? Coudn't find it anywhere.

[zv@localhost ~]$ which cro  
/usr/bin/which: no cro in (/usr/share/Modules/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/home/zv/.local/bin:/home/zv/bin)  
[zv@localhost ~]$ zef info cro  
- Info for: cro  
- Identity: Cro::Core:ver<0.7.6>  
- Recommended By: /home/zv/.perl6  
- Installed: Yes  
Description:     Implements the asynchronous pipeline at the heart of all Cro libraries.  

License: Artistic-2.0
Source-url: https://github.com/croservices/cro-core.git
Provides: 19 modules
Depends: 0 items


Update: I had installed "Cro", no "cro" (all lowercase).
Following on the answer by Takao, I tried installing "cro" (all lowercase), but Zef said there was nothing more to install. Using "--force-install" with Zef did the trick, "cro" (all lowercase) was installed in .perl6/bin.

Also, when first installing Cro there was an issue with IO::Socket::Async::SSL, which couldn't find the symbol "sk_num" in libssl.so...I told Zef to skip the test on IO::Socket::Async:SSL, and the installation suceeded. Anyway, I imagine I won't be able to use Cro with encrypted connections.

like image 735
zentrunix Avatar asked Jul 17 '18 12:07

zentrunix


1 Answers

Firstly, are you sure you installed cro, not just Cro::Core module? Your zef info cro prints info for Cro::Core package it seems.

I tried to reproduce it, installing by zef install cro(note lowercase for module name).

In the end of zef's installation log I see: 1 bin/ script [cro] installed to: /home/foo/.perl6/bin

The path above may be different(it depends on how you installed Rakudo and zef), but in general it is a path where zef stores scripts, so you need to add it to your PATH to use. You can find info about adding paths into your PATH variable, as it depends on what shell you are using.

Personally, I am using fish, so it is a matter of set PATH ~/.perl6/bin $PATH in ~/.config/fish/config.fish, but for bash or different shell it would be different.

It seems like a case of:

  • By accident you installed Cro(which zef thinks of Cro::Core), instead of cro(which gives you managing script you want to run). Try out zef install cro in lowercase.
  • You do not have path where zef installs stuff in your PATH variable. Can be fixed by adding it. Judging by your which output, it seems to be the solution you want.
like image 147
Takao Avatar answered Nov 02 '22 15:11

Takao