Rakudo Logo

Pendahuluan

Secara default, versi Perl yang terdapat pada distro Fedora adalah Perl 5. Tutorial singkat ini akan membahas cara instalasi Perl 6 pada sistem operasi Linux distro Fedora, serta kemungkinan error yang dapat terjadi selama proses instalasi beserta solusi untuk mengatasi error tersebut. Rakudo itu sendiri adalah compiler untuk Perl 6.

Langkah-langkah

Lakukan instalasi rakudo serta zef dengan menggunakan perintah berikut ini:

$ sudo dnf install rakudo rakudo-zef

Setelah itu, lakukan instalasi modul Linenoise agar dapat menggunakan fitur readline misalnya kemampuan untuk melakukan editing terhadap perintah yang diberikan atau kemampuan untuk melengkapi perintah menggunakan tab secara otomatis. Gunakan perintah berikut ini untuk melakukan instalasi modul Linenoise:

$ zef install Linenoise
===> Searching for: Linenoise
===> Searching for missing dependencies: LibraryMake
===> Searching for missing dependencies: Shell::Command
===> Searching for missing dependencies: File::Which, File::Find
===> Building: Linenoise:ver<0.1.1>:auth<Rob Hoelz>
gcc: fatal error: cannot read spec file ‘/usr/lib/rpm/redhat/redhat-hardened-cc1’: No such file or directory compilation terminated.
make: *** [Makefile:12: linenoise.o] Error 1
===> Building [FAIL]: Linenoise:ver<0.1.1>:auth<Rob Hoelz>
Aborting due to build failure: Linenoise:ver<0.1.1>:auth<Rob Hoelz> (use --force-build to override)

Ternyata muncul error karena file spec untuk kompilasi tidak dapat ditemukan. Untuk mengatasi pesan error tersebut, lakukan instalasi paket redhat-rpm-config:

$ sudo install -y redhat-rpm-config

Lakukan kembali proses instalasi modul Linenoise:

$ zef install Linenoise
===> Searching for: Linenoise
===> Searching for missing dependencies: LibraryMake
===> Searching for missing dependencies: Shell::Command
===> Searching for missing dependencies: File::Which, File::Find
===> Building: Linenoise:ver<0.1.1>:auth<Rob Hoelz>
/usr/bin/ld: cannot find -ltommath
/usr/bin/ld: cannot find -latomic_ops
/usr/bin/ld: cannot find -luv
collect2: error: ld returned 1 exit status
make: *** [Makefile:9: /home/USERNAME/.zef/store/p6-linenoise.git/480fd919b2c082e691c518fd50c19ad8719532b6/resources/libraries/liblinenoise.so] Error 1
===> Building [FAIL]: Linenoise:ver<0.1.1>:auth<Rob Hoelz>
Aborting due to build failure: Linenoise:ver<0.1.1>:auth<Rob Hoelz> (use --force-build to override)

Masih muncul pesan error, namun kali ini berbeda, yaitu ada 3 buah pustaka (library) dependensi yang tidak ditemukan. Lakukan instalasi ke-3 pustaka tersebut dengan perintah berikut ini:

$ sudo dnf install libtommath-devel libatomic_ops-devel libuv-devel

Setelah itu, kembali lakukan proses instalasi modul Linenoise menggunakan zef:

$ zef install Linenoise
===> Searching for: Linenoise
===> Searching for missing dependencies: LibraryMake
===> Searching for missing dependencies: Shell::Command
===> Searching for missing dependencies: File::Which, File::Find
===> Building: Linenoise:ver<0.1.1>:auth<Rob Hoelz>
constant-helper.c:13:1: warning: ‘msc_version_to_dll_version’ defined but not used [-Wunused-function]
   13 | msc_version_to_dll_version(int msc_version)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~
===> Building [OK] for Linenoise:ver<0.1.1>:auth<Rob Hoelz>
===> Testing: File::Which:ver<1.0.1>
# Found perl6 at '/usr/bin/perl6'
# Found perl6 at '/usr/bin/perl6' using whence
===> Testing [OK] for File::Which:ver<1.0.1>
===> Testing: File::Find:ver<0.1>
===> Testing [OK] for File::Find:ver<0.1>
===> Testing: Shell::Command
===> Testing [OK] for Shell::Command
===> Testing: LibraryMake:ver<1.0.0>:auth<github:retupmoca>
===> Testing [OK] for LibraryMake:ver<1.0.0>:auth<github:retupmoca>
===> Testing: Linenoise:ver<0.1.1>:auth<Rob Hoelz>
===> Testing [OK] for Linenoise:ver<0.1.1>:auth<Rob Hoelz>
===> Installing: File::Which:ver<1.0.1>
===> Installing: File::Find:ver<0.1>
===> Installing: Shell::Command
===> Installing: LibraryMake:ver<1.0.0>:auth<github:retupmoca>
===> Installing: Linenoise:ver<0.1.1>:auth<Rob Hoelz>

Nah, kali ini proses instalasi berhasil. Kini, Anda dapat menjalankan interpreter Perl 6 secara interaktif seperti berikut ini:

$ perl6
To exit type 'exit' or '^D'
> my $world = "World";
World
> say "Hello $world";
Hello World
>

Selanjutnya, Anda dapat mulai melakukan eksplorasi terhadap fitur-fitur yang terdapat pada Perl 6.

Penutup

Sekian tutorial singkat kali ini, semoga bermanfaat. Selamat melakukan eksplorasi scripting menggunakan Perl 6. Terima kasih kepada Tuhan Yang Maha Esa, dan Anda yang telah membaca tutorial singkat ini.