In lay man’s terms that would mean using the Ubuntu approach is better than the above?
Yes, the Ubuntu approach will allow you to use nearly all Julia packages. The minimal Termux approach will only work with base Julia and packages that don’t depend on BinaryBuilder (for example Distributions.jl will not work).
Here using UserLAnd android app, Ubuntu hosted OS and Generic Linux Binaries for ARM (64 bits) from the site:
Interesting. Does this require the steps (1-5) summarised by xiaodaigh? (Sorry for asking, but this is new to me.)
Basically yes… you install the app, in the app menu you install Ubuntu, from the ubuntu prompt using apt-get you install a bit of stuff (wget, build-essential,…), you download julia binary, (optional) symlink julia to ~/bin, … and finally run Julia.
Thanks. It works. To summarise, I did the following:
install UserLAnd android app from Play Store, choose Ubuntu hosted OS
install wget and build-essential:
sudo apt-get update sudo apt-get upgrade sudo apt-get install wget sudo apt-get install build-essential
- Download and install Julia:
wget https://julialang-s3.julialang.org/bin/linux/aarch64/1.2/julia-1.2.0-linux-aarch64.tar.gz tar xvfa julia-1.2.0-linux-aarch64.tar.gz sudo ls -l julia-1.2.0/bin/julia .
Hi and thanks for the very nice installation tutorial!
Did anyone encounter this error at startup?
I installed the 32 bit version of julia because I have an old 32 bit custom ROM…
I encountered an error when i initiated julia following these steps.
ERROR:stat returned zero type for a valid path…
I tried ‘julia --startup-file=no --history-file=no’ but didn’t work.
[I have no particular expertise in this, just tried a few things.]
I get the same error message when I run
Rather, julia loads nicely when I instead run
julia-1.4.1/bin/julia --startupfile=no --history-file=no
To replicate this, follow my instructions in the previous message but for 1.4.1, but skip the last step. That is, do
wget https://julialang-s3.julialang.org/bin/linux/aarch64/1.4/julia-1.4.1-linux-aarch64.tar.gz tar xvfa julia-1.4.1-linux-aarch64.tar.gz
Thanks @xiaodai that worked perfectly. Running Julia on my android device right now. Cheers
Running Julia on Android is cool, and while it is then in some sense an Android app, has anyone done an “independent” Android app in Julia. Even just a proof-of-concept “hello world” type? Or even better with an even loop working with the Java-based framework? As in an .APK file you could deploy to the Google Play store (runable without Ubuntu or other first installed), or done the first steps to what would end up as APK.
My understanding is that while useful, a Julia Android app is only really an Ubuntu app, running under Ubuntu, running in Android, and that is still a good step, but a long way from an APK?
I know the technical difficulties, you would want to runwith bionic, not regular libc, so is there something to help like libhybris, but for the other way:
Not related to Android or Bionic (only “just x86-64 for simplicity”), but I just found out Google has a plan (from 2019) for a new “libc in LLVM”:
Julia has support for musl, and while bionicis the default on Android, musl may work there (or is that only the plan?):
sorry to dig up this topic but I’am trying to install Julia 1.3.1 with Userland and I ran into the same error as @Iulian.Cioarca about libopenblas.so which I think I have fixed with:
$execstack -c ./julia1.3.1/lib/julia/libopenblas.so
but I still can’t run julia:
here is the output of lscpu:
gsch@localhost:~$ lscpu Architecture: armv7l Byte Order: Little Endian CPU(s): 8 On-line CPU(s) list: 0-7 Thread(s) per core: 1 Core(s) per socket: 4 Socket(s): 2 Vendor ID: ARM Model: 4 Model name: Cortex-A53 Stepping: r0p4 CPU max MHz: 1401.0000 CPU min MHz: 768.0000 BogoMIPS: 38.00 Flags: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm aes pmull sha1 sha2 crc32
If someone manage to fix this error I’am all ear !
Since 1.3.1 is not officially supported anymore, I would suggest trying this with Julia 1.5 first. It might have already been fixed since then.
Update from my side:
Julia 1.5 is working well, but meanwhile I also changed the phone and I’m on 64 bit Android 10.
I try at first the 1.5 but there is no binaries for the armv7 architecture (32bits) for Julia version more recent than the 1.3.1
I am currently trying to build the latest master from source on my Raspberry Pi. Will let you know how that goes.
In my side I didn’t manage to install the 1.3.1 version but the 1.2.0 run smoothly (except for the libopenblas error which is fixed with execstack)