RPi 3B+, OpenStack, RabbitMQ - installation issues

My goal is to run OpenStack Pike on Raspberry Pi 3B+.

I’ve chosen SLES 15 as SLES 12 doesn’t seem to run on this hardware. (I tried and it didn’t even boot.)

Now, I am following the installation guide at https://docs.openstack.org/install-guide/environment-messaging-obs.html
I ran into issues while trying to install RabbitMQ.
This is my first time using SUSE and I’m not too familiar with fighting dependencies and managing packages either.

So, I’ve currently made the following assumptions and discoveries while fighting the issue:

  1. RabbitMQ doesn’t run out of the box when following the installation guide.

  2. RabbitMQ requires Erlang

  3. Erlang requires libcrypto.so.1.0.0

  4. libcrypto.so.1.0.0 is provided by libopenssl1_0_0

  5. Aha! SLES 15 comes with libopenssl1_1, so I have already libcrypto.so.1.1

Internet suggested the following trick:

$ ln -s /usr/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.0.0

However, this didn’t work - I did the test suggested at https://github.com/lfex/dockerfiles/issues/9:

$ erl 1> crypto:start().

I’m getting the NIF message about missing libraries.

And if I understood correct, the reason was that the new version of libcrypto is missing some symbols that Erlang would need.
So, now I’m trying to install libopenssl1_0_0 to have the correct libcrypto available.

$ wget http://download.opensuse.org/repositories/security:/tls/SLE_15/x86_64/libopenssl1_0_0-1.0.2p-49.1.x86_64.rpm $ zypper in /home/uname/Downloads/libopenssl1_0_0-1.0.2p-49.1.x86_64.rpm Refreshing service 'Basesystem_Module_15_aarch64'. Refreshing service 'SUSE_Linux_Enterprise_Server_15_aarch64'. Refreshing service 'Server_Applications_Module_15_aarch64'. Loading repository data... Reading installed packages... '_tmpRPMcache_:libopenssl1_0_0=0:1.0.2p-49.1' not found in package names. Trying capabilities. No provider of '_tmpRPMcache_:libopenssl1_0_0=0:1.0.2p-49.1' found. Resolving package dependencies...

Nope, doesn’t work as such. No idea how to fix the tmpRPMcache issue?
So let’s try directly with RPM:

$ rpm -ih -vv http://download.opensuse.org/repositories/security:/tls/SLE_15/x86_64/libopenssl1_0_0-1.0.2p-49.1.x86_64.rpm ufdio: 1 reads, 19077 total bytes in 0.000056 secs Retrieving http://download.opensuse.org/repositories/security:/tls/SLE_15/x86_64/libopenssl1_0_0-1.0.2p-49.1.x86_64.rpm D: ============== /var/tmp/rpm-tmp.oOO0cE D: loading keyring from pubkeys in /usr/lib/sysimage/rpm/pubkeys/*.key D: couldn't find any keys in /usr/lib/sysimage/rpm/pubkeys/*.key D: loading keyring from rpmdb D: opening db environment /usr/lib/sysimage/rpm cdb:private:0x201 D: opening db index /usr/lib/sysimage/rpm/Packages 0x400 mode=0x0 D: locked db index /usr/lib/sysimage/rpm/Packages D: opening db index /usr/lib/sysimage/rpm/Name nofsync:0x400 mode=0x0 D: read h# 815 Header SHA1 digest: OK D: added key gpg-pubkey-307e3d54-5aaa90a5 to keyring D: read h# 816 Header SHA1 digest: OK D: added key gpg-pubkey-39db7c82-5847eb1f to keyring D: read h# 817 Header SHA1 digest: OK D: added key gpg-pubkey-50a3dd1c-50f35137 to keyring D: read h# 818 Header SHA1 digest: OK D: added key gpg-pubkey-17280ddf-5a631c69 to keyring D: read h# 819 Header SHA1 digest: OK D: added key gpg-pubkey-d85f9316-5b86e5f8 to keyring D: read h# 845 Header SHA1 digest: OK D: added key gpg-pubkey-6300dadb-57dd57b8 to keyring D: read h# 936 Header SHA1 digest: OK D: added key gpg-pubkey-a34552c6-57d17fc6 to keyring D: Using legacy gpg-pubkey(s) from rpmdb warning: /var/tmp/rpm-tmp.oOO0cE: Header V3 RSA/SHA256 Signature, key ID ee3d166a: NOKEY D: /var/tmp/rpm-tmp.oOO0cE: Header SHA1 digest: OK D: /var/tmp/rpm-tmp.oOO0cE: Header SHA256 digest: OK ufdio: 6 reads, 56492 total bytes in 0.000224 secs D: Plugin: calling hook init in syslog plugin D: added binary package [0] D: found 0 source and 1 binary packages D: opening db index /usr/lib/sysimage/rpm/Conflictname nofsync:0x400 mode=0x0 D: opening db index /usr/lib/sysimage/rpm/Requirename nofsync:0x400 mode=0x0 D: ========== +++ libopenssl1_0_0-1.0.2p-49.1 x86_64/linux 0x0 D: opening db index /usr/lib/sysimage/rpm/Basenames nofsync:0x400 mode=0x0 D: read h# 946 Header V3 RSA/SHA256 Signature, key ID 39db7c82: OK Header SHA1 digest: OK Header SHA256 digest: OK D: Requires: /sbin/ldconfig YES (db files) D: Requires: /sbin/ldconfig YES (cached) D: opening db index /usr/lib/sysimage/rpm/Providename nofsync:0x400 mode=0x0 D: Requires: libc.so.6()(64bit) YES (db provides) D: Requires: libc.so.6(GLIBC_2.14)(64bit) NO D: Requires: libc.so.6(GLIBC_2.17)(64bit) YES (db provides) D: Requires: libc.so.6(GLIBC_2.2.5)(64bit) NO D: Requires: libc.so.6(GLIBC_2.3)(64bit) NO D: Requires: libc.so.6(GLIBC_2.3.4)(64bit) NO D: Requires: libc.so.6(GLIBC_2.4)(64bit) NO D: Requires: libc.so.6(GLIBC_2.7)(64bit) NO D: Requires: libcrypto.so.1.0.0()(64bit) YES (added provide) D: Requires: libcrypto.so.1.0.0(OPENSSL_1.0.0)(64bit) YES (added provide) D: Requires: libdl.so.2()(64bit) YES (db provides) D: Requires: libdl.so.2(GLIBC_2.2.5)(64bit) NO D: read h# 12 Header V3 RSA/SHA256 Signature, key ID 39db7c82: OK Header SHA1 digest: OK Header SHA256 digest: OK D: Requires: libz.so.1()(64bit) YES (db provides) D: Requires: rpmlib(CompressedFileNames) <= 3.0.4-1 YES (rpmlib provides) D: Requires: rpmlib(FileDigests) <= 4.6.0-1 YES (rpmlib provides) D: Requires: rpmlib(PayloadFilesHavePrefix) <= 4.0-1 YES (rpmlib provides) D: Requires: rpmlib(PayloadIsXz) <= 5.2-1 YES (rpmlib provides) D: opening db index /usr/lib/sysimage/rpm/Obsoletename nofsync:0x400 mode=0x0 error: Failed dependencies: libc.so.6(GLIBC_2.14)(64bit) is needed by libopenssl1_0_0-1.0.2p-49.1.x86_64 libc.so.6(GLIBC_2.2.5)(64bit) is needed by libopenssl1_0_0-1.0.2p-49.1.x86_64 libc.so.6(GLIBC_2.3)(64bit) is needed by libopenssl1_0_0-1.0.2p-49.1.x86_64 libc.so.6(GLIBC_2.3.4)(64bit) is needed by libopenssl1_0_0-1.0.2p-49.1.x86_64 libc.so.6(GLIBC_2.4)(64bit) is needed by libopenssl1_0_0-1.0.2p-49.1.x86_64 libc.so.6(GLIBC_2.7)(64bit) is needed by libopenssl1_0_0-1.0.2p-49.1.x86_64 libdl.so.2(GLIBC_2.2.5)(64bit) is needed by libopenssl1_0_0-1.0.2p-49.1.x86_64 D: closed db index /usr/lib/sysimage/rpm/Packages D: closed db index /usr/lib/sysimage/rpm/Obsoletename D: closed db index /usr/lib/sysimage/rpm/Conflictname D: closed db index /usr/lib/sysimage/rpm/Providename D: closed db index /usr/lib/sysimage/rpm/Requirename D: closed db index /usr/lib/sysimage/rpm/Basenames D: closed db index /usr/lib/sysimage/rpm/Name D: closed db environment /usr/lib/sysimage/rpm D: Exit status: 1

I’m missing multiple different versions on libc.so.6?
How come there are multiple versions of GLIBC_X.Y that I need?

Lastly:

$ ldd --version ldd (GNU libc) 2.26 Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Written by Roland McGrath and Ulrich Drepper.

Where to go from here?
I’ve been trying to figure this out for two days now and I’m not sure if I’m even anywhere near the right track towards the solution.

It all starts from:

$ zypper install rabbitmq-server Problem: nothing provides libcrypto.so.1.0.0()(64bit) needed by erlang-19.3.2-1.1.aarch64

jviding Wrote in message:
[color=blue]

My goal is to run OpenStack Pike on Raspberry Pi 3B+.[/color]

Why? OpenStack is a collection of components and even the latest
Pi 3 B+ is limited.
[color=blue]

I’ve chosen SLES 15 as SLES 12 doesn’t seem to run on this hardware. (I
tried and it didn’t even boot.)[/color]

With SLES15 SUSE added support for Pi 3 B+ - SLES12 SP4 (currently
in beta) will also add support.
[color=blue]

Now, I am following the installation guide at
https://docs.openstack.org/install-guide/environment-messaging-obs.html
I ran into issues while trying to install RabbitMQ.
This is my first time using SUSE and I’m not too familiar with fighting
dependencies and managing packages either.[/color]

Is that the only guide you’re trying to follow? As I said,
OpenStack is a collection of components so there’s more to it
than just RabbitMQ.
[color=blue]

So, I’ve currently made the following assumptions and discoveries while
fighting the issue:

  1. RabbitMQ doesn’t run out of the box when following the installation
    guide.

  2. RabbitMQ requires Erlang

  3. Erlang requires libcrypto.so.1.0.0

  4. libcrypto.so.1.0.0 is provided by libopenssl1_0_0

  5. Aha! SLES 15 comes with libopenssl1_1, so I have already
    libcrypto.so.1.1

Internet suggested the following trick:

Code:

$ ln -s /usr/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.0.0

However, this didn’t work - I did the test suggested at
https://github.com/lfex/dockerfiles/issues/9:

Code:

$ erl

1> crypto:start().

I’m getting the NIF message about missing libraries.

And if I understood correct, the reason was that the new version of
libcrypto is missing some symbols that Erlang would need.
So, now I’m trying to install libopenssl1_0_0 to have the correct
libcrypto available.

Code:

$ wget [url]http://download.opensuse.org/repositories/security:/tls/SLE_15/x86_64/libopenssl1_0_0-1.0.2p-49.1.x86_64.rpm[/url]

$ zypper in /home/uname/Downloads/libopenssl1_0_0-1.0.2p-49.1.x86_64.rpm
Refreshing service ‘Basesystem_Module_15_aarch64’.
Refreshing service ‘SUSE_Linux_Enterprise_Server_15_aarch64’.
Refreshing service ‘Server_Applications_Module_15_aarch64’.
Loading repository data…
Reading installed packages…
tmpRPMcache:libopenssl1_0_0=0:1.0.2p-49.1’ not found in package names. Trying capabilities.
No provider of ‘tmpRPMcache:libopenssl1_0_0=0:1.0.2p-49.1’ found.
Resolving package dependencies…


Nope, doesn’t work as such. No idea how to fix the tmpRPMcache issue?
So let’s try directly with RPM:

Code:

$ rpm -ih -vv [url]http://download.opensuse.org/repositories/security:/tls/SLE_15/x86_64/libopenssl1_0_0-1.0.2p-49.1.x86_64.rpm[/url]

ufdio: 1 reads, 19077 total bytes in 0.000056 secs
Retrieving http://download.opensuse.org/repositories/security:/tls/SLE_15/x86_64/libopenssl1_0_0-1.0.2p-49.1.x86_64.rpm
D: ============== /var/tmp/rpm-tmp.oOO0cE
D: loading keyring from pubkeys in /usr/lib/sysimage/rpm/pubkeys/.key
D: couldn’t find any keys in /usr/lib/sysimage/rpm/pubkeys/
.key
D: loading keyring from rpmdb
D: opening db environment /usr/lib/sysimage/rpm cdb:private:0x201
D: opening db index /usr/lib/sysimage/rpm/Packages 0x400 mode=0x0
D: locked db index /usr/lib/sysimage/rpm/Packages
D: opening db index /usr/lib/sysimage/rpm/Name nofsync:0x400 mode=0x0
D: read h# 815
Header SHA1 digest: OK
D: added key gpg-pubkey-307e3d54-5aaa90a5 to keyring
D: read h# 816
Header SHA1 digest: OK
D: added key gpg-pubkey-39db7c82-5847eb1f to keyring
D: read h# 817
Header SHA1 digest: OK
D: added key gpg-pubkey-50a3dd1c-50f35137 to keyring
D: read h# 818
Header SHA1 digest: OK
D: added key gpg-pubkey-17280ddf-5a631c69 to keyring
D: read h# 819
Header SHA1 digest: OK
D: added key gpg-pubkey-d85f9316-5b86e5f8 to keyring
D: read h# 845
Header SHA1 digest: OK
D: added key gpg-pubkey-6300dadb-57dd57b8 to keyring
D: read h# 936
Header SHA1 digest: OK
D: added key gpg-pubkey-a34552c6-57d17fc6 to keyring
D: Using legacy gpg-pubkey(s) from rpmdb
warning: /var/tmp/rpm-tmp.oOO0cE: Header V3 RSA/SHA256 Signature, key ID ee3d166a: NOKEY
D: /var/tmp/rpm-tmp.oOO0cE: Header SHA1 digest: OK
D: /var/tmp/rpm-tmp.oOO0cE: Header SHA256 digest: OK
ufdio: 6 reads, 56492 total bytes in 0.000224 secs
D: Plugin: calling hook init in syslog plugin
D: added binary package [0]
D: found 0 source and 1 binary packages
D: opening db index /usr/lib/sysimage/rpm/Conflictname nofsync:0x400 mode=0x0
D: opening db index /usr/lib/sysimage/rpm/Requirename nofsync:0x400 mode=0x0
D: ========== +++ libopenssl1_0_0-1.0.2p-49.1 x86_64/linux 0x0
D: opening db index /usr/lib/sysimage/rpm/Basenames nofsync:0x400 mode=0x0
D: read h# 946
Header V3 RSA/SHA256 Signature, key ID 39db7c82: OK
Header SHA1 digest: OK
Header SHA256 digest: OK
D: Requires: /sbin/ldconfig YES (db files)
D: Requires: /sbin/ldconfig YES (cached)
D: opening db index /usr/lib/sysimage/rpm/Providename nofsync:0x400 mode=0x0
D: Requires: libc.so.6()(64bit) YES (db provides)
D: Requires: libc.so.6(GLIBC_2.14)(64bit) NO
D: Requires: libc.so.6(GLIBC_2.17)(64bit) YES (db provides)
D: Requires: libc.so.6(GLIBC_2.2.5)(64bit) NO
D: Requires: libc.so.6(GLIBC_2.3)(64bit) NO
D: Requires: libc.so.6(GLIBC_2.3.4)(64bit) NO
D: Requires: libc.so.6(GLIBC_2.4)(64bit) NO
D: Requires: libc.so.6(GLIBC_2.7)(64bit) NO
D: Requires: libcrypto.so.1.0.0()(64bit) YES (added provide)
D: Requires: libcrypto.so.1.0.0(OPENSSL_1.0.0)(64bit) YES (added provide)
D: Requires: libdl.so.2()(64bit) YES (db provides)
D: Requires: libdl.so.2(GLIBC_2.2.5)(64bit) NO
D: read h# 12
Header V3 RSA/SHA256 Signature, key ID 39db7c82: OK
Header SHA1 digest: OK
Header SHA256 digest: OK
D: Requires: libz.so.1()(64bit) YES (db provides)
D: Requires: rpmlib(CompressedFileNames) <= 3.0.4-1 YES (rpmlib provides)
D: Requires: rpmlib(FileDigests) <= 4.6.0-1 YES (rpmlib provides)
D: Requires: rpmlib(PayloadFilesHavePrefix) <= 4.0-1 YES (rpmlib provides)
D: Requires: rpmlib(PayloadIsXz) <= 5.2-1 YES (rpmlib provides)
D: opening db index /usr/lib/sysimage/rpm/Obsoletename nofsync:0x400 mode=0x0
error: Failed dependencies:
libc.so.6(GLIBC_2.14)(64bit) is needed by libopenssl1_0_0-1.0.2p-49.1.x86_64
libc.so.6(GLIBC_2.2.5)(64bit) is needed by libopenssl1_0_0-1.0.2p-49.1.x86_64
libc.so.6(GLIBC_2.3)(64bit) is needed by libopenssl1_0_0-1.0.2p-49.1.x86_64
libc.so.6(GLIBC_2.3.4)(64bit) is needed by libopenssl1_0_0-1.0.2p-49.1.x86_64
libc.so.6(GLIBC_2.4)(64bit) is needed by libopenssl1_0_0-1.0.2p-49.1.x86_64
libc.so.6(GLIBC_2.7)(64bit) is needed by libopenssl1_0_0-1.0.2p-49.1.x86_64
libdl.so.2(GLIBC_2.2.5)(64bit) is needed by libopenssl1_0_0-1.0.2p-49.1.x86_64
D: closed db index /usr/lib/sysimage/rpm/Packages
D: closed db index /usr/lib/sysimage/rpm/Obsoletename
D: closed db index /usr/lib/sysimage/rpm/Conflictname
D: closed db index /usr/lib/sysimage/rpm/Providename
D: closed db index /usr/lib/sysimage/rpm/Requirename
D: closed db index /usr/lib/sysimage/rpm/Basenames
D: closed db index /usr/lib/sysimage/rpm/Name
D: closed db environment /usr/lib/sysimage/rpm
D: Exit status: 1


I’m missing multiple different versions on libc.so.6?
How come there are multiple versions of GLIBC_X.Y that I need?

Lastly:

Code:

$ ldd --version

ldd (GNU libc) 2.26
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.


Where to go from here?
I’ve been trying to figure this out for two days now and I’m not sure if
I’m even anywhere near the right track towards the solution.

It all starts from:

Code:

$ zypper install rabbitmq-server

Problem: nothing provides libcrypto.so.1.0.0()(64bit) needed by erlang-19.3.2-1.1.aarch64
--------------------[/color]

HTH.

Simon Flood
Micro Focus Knowledge Partner

----Android NewsGroup Reader----
http://usenet.sinaapp.com/

[QUOTE=smflood;54526]
[color=blue]

My goal is to run OpenStack Pike on Raspberry Pi 3B+.

Why? OpenStack is a collection of components and even the latest
Pi 3 B+ is limited.[/color][/QUOTE]

I have multiple RPis and I’m experimenting whether I can deploy OpenStack on top of them.
I’m currently trying to configure one of the RPis as the Controlled Node.
The issues with RabbitMQ arose during the configuration of this RPi.

I’m not trying to install all the OpenStack components on one RPi.

Regarding the limits of the RPi 3B+, do you mean it’s not possible to run the OpenStack on top of them at all?
I’ve seen OpenStack being run with different RPi models than 3B+ before.

[QUOTE=smflood;54526][color=blue]

I’ve chosen SLES 15 as SLES 12 doesn’t seem to run on this hardware. (I
tried and it didn’t even boot.)

With SLES15 SUSE added support for Pi 3 B+ - SLES12 SP4 (currently
in beta) will also add support.[/color][/QUOTE]

Ah, that’s good news! Thanks for the tip. :slight_smile:

[QUOTE=smflood;54526][color=blue]

Now, I am following the installation guide at
https://docs.openstack.org/install-guide/environment-messaging-obs.html
I ran into issues while trying to install RabbitMQ.
This is my first time using SUSE and I’m not too familiar with fighting
dependencies and managing packages either.

Is that the only guide you’re trying to follow? As I said,
OpenStack is a collection of components so there’s more to it
than just RabbitMQ.[/color][/QUOTE]

I’m sorry, but I didn’t get your point here?
I am currently following this guide as it presents a well detailed step-by-step guide in order to deploy OpenStack.
Currently the step where I should install RabbitMQ is causing me trouble.

Hi jviding,

welcome to the forums.

First of all, I guess you’d be best off if you found yourself some repository with pre-compiled binaries for the distro and architecture you decided to work with.

Especially the architecture is an important issue:

rpm -ih -vv http://download.opensuse.org/repositories/security:/tls/SLE_15/x86_64/libopenssl1_0_0-1.0.2p-49.1.x86_64.rpm

Unless you have some extreme add-on board for your Pi, bringing an Intel-compatible CPU into play, installing some x86_64 architecture packet (“Intel 64bit”) seems like a bad idea and prone to fail.

Looking at the repositories available at opensuse.com (http://download.opensuse.org/repositories/Cloud:/OpenStack:/Pike:/Staging/), I could only spot ARM RPMs for SLES12SP3, so you’re out of luck with regards to your current board. As a matter of fact, I couldn’t locate any SLES15 compiles at all.

You’d probably have to ask the maintainers to provide a SLES15/ARM compile. Having done one for SLES12SP3 already, maybe it’s not too much work for them.

Regards,
J