Installing Rakudo on Android with ARM processor architecture
Asked Answered
O

1

6

I am trying to install Rakudo on my Android with armv7l processor architecture using Termux.

I tried compiling from source, but it didn't work. Then someone pointed out the Termux user its-pointless and his package for this, but that package does not work on my phone.

How can I run Raku on my phone while it is offline? I'm open to solutions not using Termux.

Termux on SSH results: Termux on SSH

u0_a74@localhost ~/rakudo [100]> pkg show rakudo -a

Package: rakudo Version: 2020.05 Maintainer: Termux members @termux Installed-Size: 37.7 MB Depends: moarvm Homepage: https://rakudo.org Download-Size: 5062 kB APT-Manual-Installed: yes APT-Sources: https://its-pointless.github.io/files/24 termux/extras arm Packages Description: Perl 6 implementation on top of Moar virtual machine

Package: rakudo Version: 2020.01-1 Maintainer: Fredrik Fornwall @fornwall Installed-Size: 93.1 MB Depends: moarvm Homepage: https://rakudo.org Download-Size: 10.9 MB APT-Sources: https://its-pointless.github.io/files/24 termux/extras arm Packages Description: Perl 6 implementation on top of Moar virtual machine

u0_a74@localhost ~/rakudo> raku

CANNOT LINK EXECUTABLE "raku": cannot locate symbol "ffi_type_double" referenced by "/data/data/com.termux/files/usr/lib/libmoar.so"...

u0_a74@localhost ~/rakudo> raku --version

CANNOT LINK EXECUTABLE "raku": cannot locate symbol "ffi_type_double" referenced by "/data/data/com.termux/files/usr/lib/libmoar.so"...

u0_a74@localhost ~/rakudo> raku --help

CANNOT LINK EXECUTABLE "raku": cannot locate symbol "ffi_type_double" referenced by "/data/data/com.termux/files/usr/lib/libmoar.so"...

u0_a74@localhost ~/rakudo> uname -a

Linux localhost 3.4.42-g3d041de #1 SMP PREEMPT Sat Dec 24 19:56:29 PST 2016 armv7l Android

Oleson answered 7/9, 2021 at 15:37 Comment(15)
There's a symbol it can't find. Have you tried installing the corresponding package?Fillagree
@Fillagree im not sure if i can find the exactly corresponding package easily. i supose it is the moarvm package. which gets installed when i install the Rakudo package. because it depends on it. i guess this whole package it is just broken. at least on my phoneOleson
but that package needs another dynamic library, that you might need to install in advance, apparently. That library should provide ffi_type_double.Fillagree
it looks like that dynamic library is the libmoar.so which is probably the MoarVM itselfOleson
chiark.greenend.org.uk/doc/libffi-dev/html/Primitive-Types.htmlAlderman
"it looks like that dynamic library is the libmoar.so" That doesn't make sense. The error message says "cannot locate symbol "ffi_type_double" referenced by "/data/data/com.termux/files/usr/lib/libmoar.so". The latter can't be missing because the error message provides its location! And it says libmoar.so referenced the symbol "ffi_type_double". That symbol is what can't be located by the system. And a google for that suggests it's part of a package related to libffi. So it sounds like you need to find the right package related to libffi and correctly install it to make progress.Reeducate
Your Q mentions "termux/extras arm". Googling for that led to github.com/its-pointless/its-pointless.github.io/blob/master/…. Searching that for moar led to various packages. The 2020.05 one says "Breaks: libtommath-dev, libtommath ... Depends: libuv, libandroid-support, libffi ... Replaces: libtommath-dev, libtommath". So, sounds like you need libuv, libandroid-support, and libffi packages, and any packages they depend on (if any) recursively. (And sounds like it'll replace/break any libtommath-dev, libtommath you already have installed.)Reeducate
theses libuv, libandroid-support, libffi packages are installed on my phone. should i reinstall?Oleson
imgur.com/a/Sp0bWLdOleson
if i remove the package libffi. many packages on my system will be removedOleson
imgur.com/a/EsJ1RhGOleson
I wouldn't remove packages if it were me. I'd try to understand why the reference to the symbol "ffi_type_double" by the moarvm.so you've got installed is failing to connect with what is presumably a matching symbol in the libffi package that's already installed. Presumably that's due to how the libffi gets dynamically linked (or not). Beyond that I'm outta ideas. (I know little about this kind of stuff beyond what I wrote in my answer to the other termux question posted here under the [raku] tag.) Patience, waiting for other comments, and praying to the goddess of tech, is all I can suggest.Reeducate
yeah that looks like a safer option i will try to find out that first before anything radical. maybe it will work now. help us goddess of techOleson
i think progress is being made. running the command. grep -Rn ffi_type_double grep finded that the files /usr/lib/libffi.so and /usr/lib/libmoar.so does match with that string. so i think the type is there on those files. imgur.com/a/ab7IBdvOleson
See borg.moe/building-rakudo-perl-6-on-termux.htmlReeducate
A
4

Does it have to be on Termux? I have successfully installed Raku on Android via UserLand, using Debian SSH. sudo apt-get install rakudo works.

Anatomize answered 19/9, 2021 at 23:58 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.