Rakudo in Chocolatey makes AppVeyor easier

Rakudo is now easier to install on Windows. Rakudo Star is now in Chocolatey (with 2017.04 awaiting moderation as I write this). This makes it much easier to automatically deploy Rakudo Star in Windows environments.

Earlier this month I spent too much time getting Rakudo to install on AppVeyor, and, having spent too much time on that, I spent a bunch more getting co-maintainer permissions on the chocolatey package. I updated the original package created by Jake Russo back in 2015, including all the new chocolatey requirements. I have all of that in GitHub as rakudo-star-chocolatey. After the semi-manual approval process, I have a fresh Rakudo available. Two days later 2017.04 came out. I’ve updated the package again and it’s in moderation (should clear in a couple days).

Using a package manager that other services already support makes it a cinch to deploy Rakudo there. For example, Windows 10 has OneGet, a manager of package managers. You can install several package manager and ask OneGet to install something. Somehow it figures out who can provide it and does the magic:

That looks complicated, but it’s really two commands with some confirmations:

PS C:\> Get-PackageProvider -name chocolatey

PS C:\> Install-Package rakudostar

You probably have to answer a couple of questions in this process. The rakudostar package isn’t trusted, but the chocolatey package has the SHA256 of the MSI from rakudo.org. But, chocolatey also trusts me to use the right URL. I could put anything in there. I’ll have to work on the trusted part some other time (unless you want to figure it out).

Now my AppVeyor config in the perl6_appveyor_test test project is now much simpler. The Rakudo installation is a couple of lines instead of the tricky PowerShell I had before:

  - if not exist "C:\Rakudo" cinst rakudostar
  - SET PATH=C:\rakudo\bin;C:\rakudo\share\perl6\site\bin;%PATH%
  - ps: refreshenv
  - perl6 -v

Leave a Reply

Your email address will not be published. Required fields are marked *