Cookie Notice

As far as I know, and as far as I remember, nothing in this page does anything with Cookies.

2009/09/15

Compiling Rakudo on Ubuntu

During the last meeting of my local Perl Mongers group, our point person on Perl 6 stated that he couldn't get it to compile, he couldn't get it to compile 2 months ago, and if it can't compile, nobody's ever going to use it and it's dead.

I tweeted it, of course, and got a response.
@JacobyDave It works over here. Which instructions did you use? I use http://rakudo.org/how-to-ge...about 3 hours ago from Tweetie in reply to JacobyDave


So, of course, I had to try it.

jacoby@oz:~$ $ git clone git://github.com/rakudo/rakudo.git
bash: $: command not found


It seems I didn't have git installed.


jacoby@oz:~$ apt-cache git
E: Invalid operation git
jacoby@oz:~$ apt-cache search git | wc -l
502
jacoby@oz:~$ apt-cache search git | grep -i '^git'
git-core - fast, scalable, distributed revision control system
git-doc - fast, scalable, distributed revision control system (documentation)
gitk - fast, scalable, distributed revision control system (revision tree visualizer)
git - transitional dummy package which can be safely removed
git-arch - fast, scalable, distributed revision control system (arch interoperability)
git-buildpackage - Suite to help with Debian packages in Git repositories
git-cola - highly caffeinated git gui
git-cvs - fast, scalable, distributed revision control system (cvs interoperability)
git-daemon-run - fast, scalable, distributed revision control system (git-daemon service)
git-email - fast, scalable, distributed revision control system (email add-on)
git-gui - fast, scalable, distributed revision control system (GUI)
git-load-dirs - Import upstream archives into git
git-svn - fast, scalable, distributed revision control system (svn interoperability)
gitmagic - Guide about Git version control system
gitosis - git repository hosting application
gitpkg - helper scripts for maintaining packages with git
gitweb - fast, scalable, distributed revision control system (web interface)
jacoby@oz:~$ sudo apt-get install git gitmagic git-doc
[sudo] password for jacoby:
Reading package lists... Done
Building dependency tree
Reading state information... Done
git is already the newest version.
Suggested packages:
git-core git-arch git-cvs git-svn git-email gitk gitweb
The following NEW packages will be installed:
git-doc gitmagic
0 upgraded, 2 newly installed, 0 to remove and 8 not upgraded.
Need to get 1333kB of archives.
After this operation, 6136kB of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com jaunty/main git-doc 1:1.6.0.4-1ubuntu2 [1126kB]
Get:2 http://us.archive.ubuntu.com jaunty/universe gitmagic 20090101-1 [207kB]
Fetched 1333kB in 2s (587kB/s)
Selecting previously deselected package git-doc.
(Reading database ... 206981 files and directories currently installed.)
Unpacking git-doc (from .../git-doc_1%3a1.6.0.4-1ubuntu2_all.deb) ...
Selecting previously deselected package gitmagic.
Unpacking gitmagic (from .../gitmagic_20090101-1_all.deb) ...
Processing triggers for doc-base ...
Processing 1 added doc-base file(s)...
Registering documents with scrollkeeper...
Setting up git-doc (1:1.6.0.4-1ubuntu2) ...
Setting up gitmagic (20090101-1) ...

jacoby@oz:~$ $ git clone git://github.com/rakudo/rakudo.git
bash: $: command not found
jacoby@oz:~$ git clone git://github.com/rakudo/rakudo.git
The program 'git' is currently not installed. You can install it by typing:
sudo apt-get install git-core
bash: git: command not found
jacoby@oz:~$ sudo apt-get install git-core
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
git-arch git-cvs git-svn git-email git-daemon-run git-gui gitk gitweb
The following NEW packages will be installed:
git-core
0 upgraded, 1 newly installed, 0 to remove and 8 not upgraded.
Need to get 4322kB of archives.
After this operation, 8995kB of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com jaunty/main git-core 1:1.6.0.4-1ubuntu2 [4322kB]
Fetched 4322kB in 7s (599kB/s)
Selecting previously deselected package git-core.
(Reading database ... 207451 files and directories currently installed.)
Unpacking git-core (from .../git-core_1%3a1.6.0.4-1ubuntu2_i386.deb) ...
Processing triggers for man-db ...
Setting up git-core (1:1.6.0.4-1ubuntu2) ...
Setting up git-core (1:1.6.0.4-1ubuntu2) ...
jacoby@oz:~$ git clone git://github.com/rakudo/rakudo.git
Initialized empty Git repository in /home/jacoby/rakudo/.git/
github.com[0: 65.74.177.129]: errno=Connection timed out
fatal: unable to connect a socket (Connection timed out)
jacoby@oz:~$ jacoby@oz:~$


Needed to open up a hole in the firewall to allow git.


jacoby@oz:~$ git clone git://github.com/rakudo/rakudo.git
Initialized empty Git repository in /home/jacoby/rakudo/.git/
remote: Counting objects: 18798, done.
remote: Compressing objects: 100% (5049/5049), done.
remote: Total 18798 (delta 13754), reused 18345 (delta 13370)
Receiving objects: 100% (18798/18798), 2.49 MiB | 723 KiB/s, done.
Resolving deltas: 100% (13754/13754), done.

Creating Makefile ...
Cleaning up ...

You can now use 'make' to build Rakudo Perl.
After that, you can use 'make test' to run some local tests,
or 'make spectest' to check out (via svn) a copy of the Perl 6
official test suite and run its tests.

jacoby@oz:~/rakudo$ make
/home/jacoby/rakudo/parrot_install/bin/parrot /home/jacoby/rakudo/parrot_install/lib/1.6.0-devel/library/PGE/Perl6Grammar.pbc \
--output=src/gen_grammar.pir --encoding=utf8 \
src/parser/grammar.pg src/parser/grammar-oper.pg



jacoby@oz:~$ cat hello.pl
say 'hello' ;
jacoby@oz:~$ rakudo/parrot_install/bin/perl6 hello.pl
hello
jacoby@oz:~$


It compiles on my Jaunty Ubuntu box. I don't have a clue as to why it wouldn't compile on his Fedora box. And, at some point, I'll have to try it on Windows.