在Raspberry Pi Zero W上安装Julia >v1.1.1

3
我正在尝试在运行Raspberry Pi OS的树莓派Zero W上使用Julia中的PortAudio包,方法如下:
using Pkg
Pkg.add("PortAudio")

这会导致以下错误:
ERROR: Unsatisfiable requirements detected for package PortAudio [80ea8bcb]:
 PortAudio [80ea8bcb] log:
 ├─possible versions are: 1.1.1-1.1.2 or uninstalled
 ├─restricted to versions * by an explicit requirement, leaving only versions 1.1.1-1.1.2
 └─restricted by julia compatibility requirements to versions: uninstalled  no versions left

apt中的Julia版本是v1.0.3,这解释了上述错误。所以我正在尝试安装最新版的Julia。 预编译二进制文件无法运行(非法指令错误),因此我正在按照这里的说明进行编译。

sudo apt-get -y update 
sudo apt-get install build-essential libatomic1 python gfortran perl wget m4 cmake pkg-config libopenblas-dev git ccache

接下来,我将其添加到/etc/dphys-swapfile文件中。

CONF_SWAPSIZE=8192
CONF_MAXSWAP=8192

那么
git clone https://github.com/JuliaLang/julia.git
cd julia
git checkout v1.6.2
make

出现以下错误:

Illegal instruction
make[1]: *** [Makefile:222: julia_flisp.boot] Error 132
make: *** [Makefile:43: julia_flisp.boot.inc.phony] Error 2

我认为这里的问题在于需要告诉它树莓派使用的是哪种ARM CPU,所以按照这些说明这个讨论串的方法,我将以下内容添加到Make.user文件中:

JULIA_CPU_TARGET=arm1176jzf-s
USE_BINARYBUILDER=0

但是我仍然遇到同样的错误,建议尝试 make -C deps clean-openblas 并用 make OPENBLAS_USE_THREAD=0make OPENBLAS_TARGET_ARCH=NEHALEM 重新构建。但是这两种方法都无法解决问题。还尝试了这个Python脚本error downloading julia-1.6-latest )和这些通过docker安装的说明standard_init_linux.go:228: exec user process caused: exec format error),但无法使它们正常工作。
我已经尝试了网上所有能找到的方法,请有人帮忙!我该如何在树莓派Zero上安装一个较新版本(>v1.1.1)的Julia?

要在Linux ARM上安装最新的Julia(LTS版本),您可以按照此链接上的说明进行操作:https://julialang.org/downloads/platform/#linux_and_freebsd - Mohammad Saad
在REPL中出现“无法满足的要求”错误时,您可以尝试以下操作: ] rm General , add General , up General , 这应该可以修复损坏的二进制文件。 - Mohammad Saad
嗨@MohammadSaad,感谢你的回答。我使用了你给出的ARM二进制文件链接,但当我尝试运行它时,出现了“非法指令”错误。有任何想法吗? - Thomas
刚刚尝试了 ] rm Generaladd Generalup General,仍然得到相同的错误 ERROR: Unsatisfiable requirements...。这里的问题不是我需要升级到1.1.1或更高版本吗?可能的版本为:1.1.1-1.1.2或未安装 - Thomas
1个回答

1

我做到了!代码引用自这个网站:

yourmainPC $ ssh pi@raspberrypi.local # Assume You are going to login to your Pi via SSH
pi@raspberrypi $ curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh
pi@raspberrypi $ sudo gpasswd -a $USER docker # if you like to skip `sudo`
pi@raspberrypi $ exit
yourmainPC $ ssh pi@raspberrypi.local # login again
pi@raspberrypi $ JL_VERSION=v1.5.1
pi@raspberrypi $ IMAGE_NAME=terasakisatoshi/jlcross:rpizero-${JL_VERSION}
pi@raspberrypi $ CONTAINER_NAME=jltmp_${JL_VERSION}
pi@raspberrypi $ docker run --name ${CONTAINER_NAME} $IMAGE_NAME /bin/bash
pi@raspberrypi $ docker cp ${CONTAINER_NAME}:/home/pi/julia-${JL_VERSION} .
pi@raspberrypi $ docker rm ${CONTAINER_NAME}
pi@raspberrypi $ ls 
julia-v1.5.1 # <---- this is it
pi@raspberrypi $ cd julia-v1.5.1/bin
pi@raspberrypi $ ./julia # tada!!!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接