Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Perl6: rakudobrew cannot build moar

Tags:

raku

I'd like to upgrade to the newest version of Perl6,

rakudobrew build moar
Update git reference: rakudo
Cloning into 'rakudo'...
fatal: unable to connect to github.com:
github.com[0: 140.82.114.4]: errno=Connection timed out

Failed running git clone git://github.com/rakudo/rakudo.git rakudo at /home/con/.rakudobrew/bin/rakudobrew line 57.
    main::run("git clone git://github.com/rakudo/rakudo.git rakudo") called at /home/con/.rakudobrew/bin/rakudobrew line 397
    main::update_git_reference("rakudo") called at /home/con/.rakudobrew/bin/rakudobrew line 368
    main::build_impl("moar", undef, "") called at /home/con/.rakudobrew/bin/rakudobrew line 115

this is just a simple connection failure, but how do I fix this?

like image 410
con Avatar asked Aug 12 '19 15:08

con


1 Answers

Your connection problem is not really anything to do with any P6 related software, or in fact any software you're using. It is, as you say, "just a simple connection failure". And most such failures are transient and "fix themselves". As JJ notes, in such scenarios you just wait and then things start working again.

So by the time you read this it'll probably be working for you again without you having fixed anything. But I'm writing an answer anyway with these sections:

  • Consider not using rakudobrew

  • Connection problems that "fix themselves"

  • Connection problems you investigate or fix yourself

  • Getting around single points of failure

Consider not using rakudobrew

The main purpose of rakudobrew is to support installation of many versions of Rakudo simultaneously and the main audience for the tool is folk hacking on the Rakudo compiler, not those merely using it.

If you're just a regular user, not someone developing the Rakudo compiler and/or don't need to have multiple versions of Rakudo, with complete source code, installed simultaneously, then consider just downloading and installing Rakudo files directly, eg. via rakudo.org/files, rather than via rakudobrew.

Connection problems that "fix themselves"

rakudobrew failed because a git clone ... command failed because the connection with the github.com server timed out.

A server timing out when doing something that usually works using a connection that usually works is likely a transient problem, aka a "please try later" problem.

Transient problems typically "fix themselves" a few seconds, minutes or hours later.

If there's still a problem when you try again, and you want to spend time trying to find out what's going on officially, then look for a status page for that server.

Here are two status pages I know of for github.com:

  • https://www.githubstatus.com/

  • https://twitter.com/githubstatus?lang=en-gb.

And for unofficial scuttlebutt I suggest reading the twitter feed.

For me, right now, github.com is working fine and the status page says all systems are go.

So it should now be working for you too.

If it's not, then you can wait longer, or investigate. It you want to investigate, start by looking at the status pages above.

Connection problems you investigate or fix yourself

If github claims it's working fine then there's presumably a problem with your local internet "on-ramp" (your system or your internet service provider's) or somewhere further afield between your on-ramp and the server you're failing to connect to. (You can only know approximately where the server is based on which region of the world administers the IP address the server is associated with at any given moment.)

The next place to look will be places like the internet traffic report; this indicates traffic jams and the like across the planet. (Ignore the visual display, which is broken on some browsers, and click on the links in the table to drill down.)

If it's all green between you and the region that administers the IP address of the server you're failing to connect to, then the next place to turn would be your system's administrator and/or ISP.

Failing that, then perhaps you can ask a question at a sister stackexchange site like serverfault.com or superuser.com.

Getting around single points of failure

Perhaps you were thinking there might be some system redundancy and/or you're interested in that aspect.

P5's ecosystem and its tools are generally mature and limit spofs. This is unlike the ecosystems and tools of most of the other languages out there; so if you've gotten used to the remarkable reliability/availability of CPAN due to its avoidance of spofs, and by extension perlbrew, well, you've been spoiled by P5.

The P6 ecosystem/tool combinations are evolving in the P5 tradition.

For example, the zef package manager automatically connects to CPAN alongside github, and is built to be able to connect to other repos. The ecosystem is partway there to take advantage of this zef capability in that many modules are redundantly hosted on both CPAN and github.

rakudobrew ignores CPAN and assumes use of git repos. It is impressively configurable via its Variables.pm file which includes a %git_repos variable, which could be re-targeted to an alternative git repo site like gitlab. But no one has, to my knowledge, arranged to redundantly copy and update the relevant rakudo files to another git repo site, so this spof-avoidance ability apparently inherent in rakudobrew's code is, afaik, moot for now.

like image 136
raiph Avatar answered Nov 14 '22 01:11

raiph