Closed mtmorgan closed 1 year ago
The binaries are not compatible with arm64 which is what you would be using by default on Mac M1 unless you use the emulator and --platform=linux/amd64
. That is why binaries are disabled by default for this container. Please re-open if it seems like this is a different issue.
Is there any way to intercept this event -- to avoid shipping a binary to an incompatible container environment? It seems like it would be something BiocManager would have to check.
Generally I was wondering whether BiocManager is able to distinguish binary architectures; I think it always points to the same repository
> BiocManager::containerRepository()
BioCcontainers
"https://bioconductor.org/packages/3.17/container-binaries/bioconductor_docker"
Will that have to change?
Currently the binaries are off by default for the arm64 containers so this will only happen when a user knows what env variable to change and manually sets it to use them as Martin did, so I am hoping it's not a common issue except for "power users". The binaries URL does not currently support architecture, but I have a commit to BiocManager that changes that, which I'll PR after the binaries are shipped/relocated in the bucket. I am hoping that 3.18+ will have container binaries for both architectures.
With this
The following shows a binary package (S4Vectors) being installed, but then failing to load; the 'missing' S4Vectors.so exists, but I guess is the wrong format for this architecture -- was it built on this image?
In contrast, source installations work...
I don't understand exactly the details but will note that this is running the (linux) container on an M1 mac...