rabbitmq / erlang-debian-package

Fork of the official Debian package for Erlang
https://launchpad.net/~rabbitmq/+archive/ubuntu/rabbitmq-erlang
Apache License 2.0
13 stars 10 forks source link

Skipping config file acquire note #21

Closed RichardLitt closed 4 years ago

RichardLitt commented 4 years ago

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.

pi@raspberrypi:~ $ sudo apt-get update -y
Hit:1 http://archive.raspberrypi.org/debian buster InRelease
Hit:2 http://raspbian.raspberrypi.org/raspbian buster InRelease               
Ign:3 https://packages.erlang-solutions.com/ubuntu buster InRelease           
Ign:4 https://dl.bintray.com/rabbitmq-erlang/debian buster InRelease  
Get:5 https://dl.bintray.com/rabbitmq-erlang/debian buster Release [10.8 kB]
Hit:6 https://packages.erlang-solutions.com/ubuntu buster Release
Fetched 10.8 kB in 5s (2,202 B/s)
Reading package lists... Done
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'

Should I be worried about this error?

lukebakken commented 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.

lukebakken commented 4 years ago

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?

RichardLitt commented 4 years ago

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)
lukebakken commented 4 years ago

Great, I'd say it's working 😄

RichardLitt commented 4 years ago

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.

michaelklishin commented 4 years ago

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).

michaelklishin commented 4 years ago

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.

RichardLitt commented 4 years ago

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.

michaelklishin commented 4 years ago

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.

RichardLitt commented 4 years ago

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.

michaelklishin commented 4 years ago

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.

michaelklishin commented 4 years ago

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.