• Stars
    star
    185
  • Rank 208,271 (Top 5 %)
  • Language
    Perl
  • License
    MIT License
  • Created over 11 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Perl 6 installation manager

DEPRECATION NOTICE

Rakudobrew has been renamed to Rakubrew. Head over to rakubrew.org for the current version.

rakudobrew

Rakudobrew helps to build one or more versions of Rakudo and quickly switch between them. It's a perlbrew and plenv look alike and supports both flavours of commands.

Rakudobrew can work by modifying $PATH in place (which is a more down to the metal) as well as with shims (which enables advanced features, such as local versions).

Installation

  • On *nix do:
git clone https://github.com/tadzik/rakudobrew ~/.rakudobrew
export PATH=~/.rakudobrew/bin:$PATH
# or fish shell: set -U fish_user_paths ~/.rakudobrew/bin/ $fish_user_paths
rakudobrew init # Instructions for permanent installation.
  • On Windows CMD do:
git clone https://github.com/tadzik/rakudobrew %USERPROFILE%\rakudobrew
SET PATH=%USERPROFILE%\rakudobrew\bin;%PATH%
rakudobrew init # Instructions for permanent installation.
  • On Windows PowerShell do:
git clone https://github.com/tadzik/rakudobrew $Env:USERPROFILE\rakudobrew
$Env:PATH = "$Env:USERPROFILE\rakudobrew\bin;$Env:PATH"
rakudobrew init # Instructions for permanent installation.

Windows notes

Rakudobrew requires Perl 5 and Git to be installed. You can download and install these from

If you want to use the Microsoft compiler cl, you have to make sure the compiler is on your PATH and you have the environment variables cl requires set. This happens automatically when using the Native Tools Command Prompt but has to be done manually when using a normal terminal (or PowerShell). The script vcvars32.bat (which is in the same folder as cl) can set these variables up automatically for you.

On PowerShell this requires some additional trickery as described on StackOverflow: http://stackoverflow.com/q/6140864

It might be necessary to use an Administrative console to work around a problem with permissions that go wrong during the build process.

Bootstrapping a Perl 6 implementation

  • Run something like:
$ rakudobrew build moar

to build the latest Rakudo release (in this case, on the MoarVM backend).

  • Once that's build switch to it (substitute the version rakudobrew just built):
$ rakudobrew switch moar-2019.03.1
  • To install zef (the Perl 6 module manager), do:
$ rakudobrew build-zef

global vs shell vs local

The global version is the one that is active when none of the overrides of shell and local are triggered.

The shell version changes the active Rakudo version just in the current shell. Closing the current shell also looses the shell version.

The local version is specific to a folder. When CWD is in that folder or a sub folder that version of Rakudo is used. Only works in shim mode. To unset a local version one must delete the .PL6ENV_VERSION file in the respective folder.

Modes

Rakudo brew has two modes of operation: env and shim.

In env mode rakudobrew modifies the $PATH variable as needed when switching between versions. This is neat because one then runs the executables directly. This is the default mode on *nix.

In shim mode rakudobrew generates wrapper scripts called shims for all executables it can find in all the different Rakudo installations. These shims forward to the actual executable when called. This mechanism allows for some advanced features, such as local versions. When installing a module that adds scripts one must make rakudobrew aware of these new scripts. This is done with

$ rakudobrew rehash

In env mode this is not necessary.

Registering external versions

To add a Rakudo installation to rakudobrew that was created without rakudobrew one should do:

$ rakudobrew register name-of-version /path/to/rakudo/install/directory

Upgrading your Perl 6 implementation

$ rakudobrew build moar

Upgrading rakudobrew itself

$ rakudobrew self-upgrade

Uninstall rakudobrew and its Perl 6(s)

To remove rakudobrew and any Perl 6 implementations it's installed on your system, just remove or rename the ~/.rakudobrew directory.

Specifying custom git path

In case git is not in any standard PATH on your system, you can specify a custom path to the git binary using a GIT_BINARY environment variable:

$ GIT_BINARY="%USERPROFILE%\Local Settings\Application Data\GitHub\PORTAB~1\bin\git.exe" rakudobrew build all

Specifying a git protocol

By default, rakudobrew will use the git protocol when it clones repositories. To override this setting, use the GIT_PROTOCOL environment variable.

$ GIT_PROTOCOL=ssh rakudobrew list-available
# uses [email protected]:/rakudo/rakudo.git

$ GIT_PROTOCOL=https rakudobrew list-available
# uses https://github.com/rakudo/rakudo.git

Command-line switches

version or current

Show the currently active Rakudo version.

versions or list

List all installed Rakudo installations.

global [version] or switch [version]

Show or set the globally configured Rakudo version.

shell [--unset|version]

Show, set or unset the shell version.

`local [version]

Show or set the local version.

nuke [version] or unregister [version]

Removes an installed or registered version. Versions built by rakudobrew are actually deleted, registered versions are only unregistered but not deleted.

rehash

Regenerate all shims. Newly installed scripts will not work unless this is called. This is only necessary in shim mode.

list-available

List all Rakudo versions that can be installed.

build [jvm|moar|moar-blead|all] [tag|branch|sha-1] [--configure-opts=]

Build a Rakudo version. The arguments are:

  • The backend.
    • moar-blead is the moar and nqp backends at the master branch.
    • all will build all backends.
  • The version to build. Call list-available to see a list of available versions. When left empty the latest release is built. It is also possible to specify a commit sha or branch to build.
  • Configure options.

triple [rakudo-ver [nqp-ver [moar-ver]]]

Build a specific set of Rakudo, NQP and MoarVM commits.

register <name> <path>

Register an externaly built / installed Rakudo version with Rakudobrew.

build-zef

Install Zef into the current Rakudo version.

exec <command> [command-args]

Explicitly call an executable. You normally shouldn't need to do this.

rakudobrew which <command>

Show the full path to the executable.

whence [--path] <command>

List all versions that contain the given command. when --path is given the path of the executables is given instead.

mode [env|shim]

Show or set the mode of operation.

self-upgrade

Upgrade Rakudobrew itself.

init

Show installation instructions.

test [version|all]

Run Rakudo tests in the current or given version.

More Repositories

1

panda

Perl 6 module installer
Perl 6
116
star
2

steroids

bla bla bla
Perl 6
21
star
3

Grammar-BNF

Parse BNF and ABNF grammars and generate Perl 6 grammars from them
Raku
15
star
4

Terminal-ANSIColor

Colorize terminal output
Raku
12
star
5

MuEvent

AnyEvent lookalike for Perl 6
Perl 6
12
star
6

neutro

Simple module installer for Perl 6
Perl
11
star
7

simpleaes

Make encryption in Go easy
Go
10
star
8

perl6-File-Tools

File::Tools โ€“ common shell commands replacements
Perl
7
star
9

Task-Star

Meta-package for modules included in Rakudo Star
Perl 6
7
star
10

perl6-Term-ANSIColor

Term::ANSIColor for Perl6
Perl 6
6
star
11

perl6-Config-INI

ini files parser for Perl 6
Perl 6
5
star
12

JSON-Unmarshal

Perl 6
5
star
13

p6profiler-qt

Perl 6 profiler frontend in C++ and Qt, for speedz
C++
4
star
14

perl6-Acme-Meow

It's the Perl 6 kitty you've always wanted
Perl 6
4
star
15

emmentaler

Perl 6 module smoketesting service
Perl 6
4
star
16

ThroughTheWindow

A jumping game
Perl
4
star
17

gtkabber

Gtk+ xmpp client, still in development
C
4
star
18

matrix-migrator

TypeScript
4
star
19

Text-T9

Guess words basing on a T9 key sequence (Perl 6 module)
Perl 6
4
star
20

distroquiz

Experimental new linux distribution chooser for jakilinux.org
Perl
3
star
21

Typed-Subroutines

Better type checking for first-class functions
Perl 6
3
star
22

xmpbot

Extensible xmpp bot, written in Perl
Perl
3
star
23

perl6-MPD

Perl 6 bindings to libmpdclient
Perl 6
3
star
24

gorduino

Go to C compiler
Go
3
star
25

RetroRacer

Super exciting racing game
Perl 6
2
star
26

a8bot

Extensible irc bot
Perl
2
star
27

mpdclient

KDE4 plasmoid displaying mpd song info
Python
2
star
28

luasnake

Completely uninteresting snake game
Lua
2
star
29

IO-Select

Perl 6
2
star
30

TIN

University assigment (boring crap, disregard)
C++
2
star
31

gmpup

Synchronise single ports from Gentoo overlays
Perl
2
star
32

Perl6-slides

My slides about Perl 6 from Warsaw.pm workshop
2
star
33

parrot-deprecation-detector

Perl
2
star
34

gsocmess

Random things about my gsoc work
Perl
2
star
35

asteroids

as boring as it sounds
C
2
star
36

todo

Todo list manager, modeled after https://github.com/vesln/todo/
Perl
2
star
37

WebNano6

Port of https://github.com/zby/WebNano to Perl 6
Perl
2
star
38

harbour-bootyhunter

Geocaching client for SailfishOS
C++
2
star
39

Test-Harness

TAP harness for Perl 6
Perl 6
2
star
40

zblog

ลบblog: example blog-ish application using Bailador and DBIish
Perl
2
star
41

Plis

Stupid LISP-alike interpreter
C
2
star
42

golbot

Perl
2
star
43

work

Simple time tracker for logging work hours
Perl 6
2
star
44

Getopt-Type

MAIN? Getopt semantics? Why not both?
Perl 6
1
star
45

Threads

Threads in Perl 6. Yeah, really
Perl 6
1
star
46

tabs

Songs I like to sing with chords I like to play. Boring stuff, disregard
1
star
47

pacnet

A perl frontend for categorised Arch Linux package database
Perl
1
star
48

tadzik.github.com

I has a webpage
1
star
49

Pies

What was named Pies is now named panda
1
star
50

Net-Gopher

I should've been working instead
Perl 6
1
star
51

Module-Starter

Perl
1
star
52

l

Launching applications faster than ever before
Perl
1
star
53

mario

nothing too see here (yet)
C++
1
star
54

psi-password-decoder

Something I found on the internet and fixed
Perl
1
star
55

reddit.go

Reddit API access for golang
Go
1
star
56

simpleburner

CLI tool ment to simplify Your CD/DVD burning (rewrite needed)
Python
1
star
57

popolnik-client

A girrafe's tongue is 18 inches long
Perl
1
star
58

App-Socialdump

Perl
1
star
59

Pod-To-HTML

Convert Perl6 Pod to shiny HTML
Perl
1
star
60

godot-demo

example godot game from lxb (21.1.2016)
GDScript
1
star
61

Close

C-like programming language for Parrot, imported from GoogleCode SVN repository
Perl 6
1
star
62

Test-PSGI

1
star
63

luatris

Tetris with no bullshit
Lua
1
star
64

Coroutines

The only fake threads in Perl 6
Perl 6
1
star
65

giraffe

Random lines of Go which interpret some sort of Lisp alike code
Go
1
star
66

Module-Toolkit

Module management tools. Comes with a tiny installer
Perl 6
1
star
67

WWW-Steam

something something I play too much games
Perl
1
star
68

Perlcasts

good stuff
Perl
1
star
69

harbour-wordinvaders

Typing game for SailfishOS
JavaScript
1
star
70

p6steroids

bla bla ble ble
Perl
1
star
71

Kreski

My algorithms project. Boring crap, disregard
Perl
1
star
72

ClassX-StrictConstructor

MooseX::StrictConstructor ported to Perl 6
Perl 6
1
star
73

gtkabber-vala

Gtkabber rewrite in Vala
Vala
1
star
74

feed2mbox

Fetch RSS/Atom feeds and deliver to local mailbox
Python
1
star
75

perl6-Module-Tools

Module mangling in Perl 6
Perl
1
star
76

App-redpanda

A tiny module installer
Perl 6
1
star
77

synopsebot

A helpful bot for #perl6
Perl 6
1
star
78

notworks

Wired and wireless network manager
Perl
1
star
79

pandabrew

Make it easier to work with panda across Rakudo updates
Perl 6
1
star