Closed RichardLitt closed 4 years ago
The Erlang debian package that the RabbitMQ team provides does not support the ARM architecture that is used by Raspberry Pi computers.
I suggest using the version of Erlang that ships with Raspbian (if that is what you are using), or, using kerl
to compile it yourself.
I don't know much about Raspberry Pi systems so if they do support x64 I think you can ignore that message. Can you run the erl
command from the command line?
Thank you. Yes, I can.
pi@raspberrypi:~/src/volttron $ erl
Erlang/OTP 21 [erts-10.2.4] [source] [smp:4:4] [ds:4:4:10] [async-threads:1]
Eshell V10.2.4 (abort with ^G)
Great, I'd say it's working 😄
Cool. One of the reasons I opened this is that I'm not sure what the function of N: Skipping acquire of configured file 'erlang/binary-armhf/Packages' as repository 'https://dl.bintray.com/rabbitmq-erlang/debian buster InRelease' doesn't support architecture 'armhf'
is. Is it just a note? Can it be safely ignored? I'd like to try to improve the developer experience, there.
Note that the shell above says it's running Erlang/OTP 21 and https://dl.bintray.com/rabbitmq-erlang/debian buster
should have provisioned 22 when component is erlang
in the source list file and no apt pinning is involved. So your system has Erlang but it wasn't installed from our repo and if it's 21.2, won't run any supported RabbitMQ version (3.7 will start but we don't support it on Erlang/OTP 21.2, 3.8 won't even start).
N
is apt speak for notice
. It tells you that a repository does not provide the architecture Debian/Raspbian is running on, so that repository won't be of any use.
Apologies for the tone - I'm somewhat stumped.
https://dl.bintray.com/rabbitmq-erlang/debian buster should have provisioned 22 when component is
erlang
This does not seem to be the case. Unfortunately, at the moment I am not able to install erlang at all from this repository. sudo apt-get install erlang
ends with an error that many of my packages have unmet dependencies ("Unable to correct problems, you have held broken packages."), and I've been unable to figure how to resolve this. I've tried sudo apt-get remove '^erlang.*'
and reinstall, installing with aptitude
, using sudo apt-get --purge autoremove
, removing erlang (which isn't installed) with sudo apt-get purge -yf erlang
, and other mechanisms. At this point, I'm really not sure what I'm doing wrong: the instructions in the README just don't seem to work for Raspbian, largely because of issues with Erlang dependencies.
I've also tried another method: I installed Erlang 22 from the Erlang-solutions site, but each time I run sudo apt-get install rabbitmq-server
it overwrites Erlang to 21. The same happens when I run this:
# This is recommended. Metapackages such as erlang and erlang-nox must only be used
# with apt version pinning. They do not pin their dependency versions.
sudo apt-get install -y erlang-base \
erlang-asn1 erlang-crypto erlang-eldap erlang-ftp erlang-inets \
erlang-mnesia erlang-os-mon erlang-parsetools erlang-public-key \
erlang-runtime-tools erlang-snmp erlang-ssl \
erlang-syntax-tools erlang-tftp erlang-tools erlang-xmerl
Is there any way to get rabbitmq working on Erlang 21.* on Raspbian? Failing that, is there any way to get Rabbitmq working on a Raspberry Pi 4? I'm running out of ideas.
Our repository does not provide packages for ARM architectures so it cannot work if ARM packages are the only option for a platform.
You have both our repo and ESL one configured in the snippet above. This can create conflicts, even though ESL tries to use a separate package name to reduce the likelihood. apt-cache policy
should list what package will be installed from what repository. As I said earlier, our repo is completely useless for ARM platforms. This will likely be the case going forward because we don't have enough demand for such packages to justify producing them (packages have to be maintained like any other software).
ESL packages list Raspbian as one of the platforms they support but the latest release is 22.1.6
(which is fine for recent RabbitMQ 3.7 and all 3.8 releases), which is two minors and maybe 7-8 months behind the latest.
I haven't tried them and not a fan of ESL package release consistency but that's not to say that you can't find success with that repo. Just start from scratch if you can. HTH.
Thank you, @michaelklishin. I appreciate the help immensely; I know this is outside of your purview. I'll just keep mucking around and see what I can come up with. Thanks, again.
By the way, kerl is always an option on any platform where you can build Erlang at all. It's what several members of our team use to provision any number of Erlang/OTP versions on the same machine. I don't have any ARM-based ones but kerl
is a low effort option, the biggest downside is the compilation time. So give it a shot.
I guess Rapsbian has been an unintentional victim of our team's push to require recent versions of Erlang in the last few years. We and our "Erlang packaging space race" with ESL solved the cutting edge package availability problem for amd64
architectures but arm
has been left behind. People have been running RabbitMQ successfully on Raspberry Pi years ago, and the availability of Erlang packages is the only pain point I am aware of.
While running
sudo apt-get update -y
, I get this error. I do not know the severity of it. I am trying to install erlang on a Raspberry Pi, and ran into an issue with erlang-nox, which is why I am following the instructions in this repo.Should I be worried about this error?