bottom icon indicating copy to clipboard operation
bottom copied to clipboard

Can't install on Amazon Linux arm64 instances.

Open Spunkie opened this issue 2 years ago • 12 comments

Describe the issue

There are aarch64 releases here on github but when installing the repo on an arm64 system it does not work.

Here is the output when I try and enable the repo and install bottom on an amazon arm64 t4g.nano instance running Amazon Linux 2.

[ec2-user@<redacted> ~]$ sudo yum-config-manager --add-repo https://pkgs.tailscale.com/stable/amazon-linux/2/tailscale.repo
    Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
    adding repo from: https://pkgs.tailscale.com/stable/amazon-linux/2/tailscale.repo
    grabbing file https://pkgs.tailscale.com/stable/amazon-linux/2/tailscale.repo to /etc/yum.repos.d/tailscale.repo
    repo saved to /etc/yum.repos.d/tailscale.repo

[ec2-user@<redacted> ~]$ sudo yum -y copr enable atim/bottom
    Loaded plugins: copr, extras_suggestions, langpacks, priorities, update-motd
    copr done

[ec2-user@<redacted> ~]$ sudo yum -y install bottom
    Loaded plugins: copr, extras_suggestions, langpacks, priorities, update-motd
    https://download.copr.fedorainfracloud.org/results/atim/bottom/epel-8-aarch64/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found
    Trying other mirror.
    tailscale-stable/aarch64/signature                                                                                                                                                                              |  800 B  00:00:00     
    tailscale-stable/aarch64/signature                                                                                                                                                                              | 2.9 kB  00:00:00 !!! 
    No package bottom available.
    Error: Nothing to do

Running the same set of commands on an amd64 instance runs/installs as expected.

Spunkie avatar May 03 '22 22:05 Spunkie

I don't handle any repos/mirrors other than Chocolatey anymore (EDIT: and cargo) so I'm not really sure what's going on, unfortunately. Might have to contact the package maintainer.

ClementTsang avatar May 03 '22 22:05 ClementTsang

Judging from the commit history that should be @tim77?

Spunkie avatar May 03 '22 23:05 Spunkie

Yeah, looks like it.

Note I don't know how Fedora/COPR expects people to contact package maintainers for stuff like this (I only have experience with this stuff in AUR), you might also have luck asking them through the package page: https://copr.fedorainfracloud.org/coprs/atim/bottom/

ClementTsang avatar May 03 '22 23:05 ClementTsang

Thanks for reporting. Now aarch64 builds available for recent Fedora/RHEL/CentOS.

tim77 avatar May 04 '22 11:05 tim77

Thanks for the quick turn around @tim77 🚀

@ClementTsang I tried installing it again but there seems to be a dependency issue with glib and as far as know glib version isn't something that can just be easily upgraded?

[ec2-user@<redacted> ~]$ sudo yum install bottom
    Loaded plugins: copr, extras_suggestions, langpacks, priorities, update-motd
    amzn2-core                                                                                 | 3.7 kB  00:00:00     
    Resolving Dependencies
    --> Running transaction check
    ---> Package bottom.aarch64 0:0.6.8-1.el8 will be installed
    --> Processing Dependency: libc.so.6(GLIBC_2.28)(64bit) for package: bottom-0.6.8-1.el8.aarch64
    --> Finished Dependency Resolution
    Error: Package: bottom-0.6.8-1.el8.aarch64 (copr:copr.fedorainfracloud.org:atim:bottom)
            Requires: libc.so.6(GLIBC_2.28)(64bit)
    You could try using --skip-broken to work around the problem
    You could try running: rpm -Va --nofiles --nodigest

[ec2-user@<redacted> ~]$ sudo yum install glibc
    Loaded plugins: copr, extras_suggestions, langpacks, priorities, update-motd
    Package glibc-2.26-58.amzn2.aarch64 already installed and latest version
    Nothing to do

Also I'm not sure why this is only an issue on aarch64 and not amd64 since they are both stuck on glibc 2.26.x?

Spunkie avatar May 04 '22 14:05 Spunkie

This also seems more like a question for the package maintainer for copr, not really sure how much I can help here. They mentioned they only have aarch64 packages for recent versions of Feodra/RHEL/CentOS - is that why? (again unfortunately I'm not too familiar with how the copr ecosystem works, sorry!)

FWIW I have also had distribution problems regarding glibc version, but I usually get around it by building my binary on older versions of Linux or using musl.

ClementTsang avatar May 04 '22 16:05 ClementTsang

Ah yes you are correct, I didn't notice that the EPEL 7 version is still amd64 only. 😅https://copr.fedorainfracloud.org/coprs/atim/bottom/

Spunkie avatar May 04 '22 17:05 Spunkie

I'm running into the same issue running on Amazon Linux on an x86_x64 platform, so this issue isn't specific to arm64 instances.

I've confirmed that libc.so.6 is indeed installed - yet the installation process still fails.

I can understand you want to have us going to the team responsible for copr to get this issue resolved, but I would also have to think you would want people that are interested in installing your application to be successful without making it their problem to solve. From my perspective, at the end of the day, it's a dependency on using copr (and DNF instead of simply supporting yum) that makes this an issue.

Plus, there's also a matter of you being the package developer vs us being just run-of-the-mill users. The copr team is far more likely to take your request seriously vs our requests which would just get lost in the noise.

You might see it differently. If I were in your shoes, I'd be reaching out to the copr team on your user's behalf - but that's just me.

Amazon Linux does not support using DNF. I was able to install support for copr:

[root@awsec2host ec2user]# yum install yum-plugin-copr
Loaded plugins: copr, extras_suggestions, langpacks, priorities, update-motd
Package yum-plugin-copr-1.1.31-46.amzn2.0.1.noarch already installed and latest version
Nothing to do
[root@awsec2host ec2user]# yum copr enable atim/bottom -y
Loaded plugins: copr, extras_suggestions, langpacks, priorities, update-motd
copr done

Check for the presence of the bottom package:

[root@awsec2host ec2user]# yum search bottom
Loaded plugins: copr, extras_suggestions,ec langpacks, priorities, update-motd
copr:copr.fedorainfracloud.org:atim:bottom                                             | 3.3 kB  00:00:00     
copr:copr.fedorainfracloud.org:atim:bottom/x86_64/primary_db                           | 2.6 kB  00:00:00     

bottom.x86_64 : Yet another cross-platform graphical process/system monitor
gnome-shell-extension-window-list.noarch : Display a window list at the bottom of the screen in GNOME Shell

  Name and summary matches only, use "search all" for everything.

Attempt to install bottom:

[root@awsec2host ec2user]# yum install bottom
Loaded plugins: copr, extras_suggestions, langpacks, priorities, update-motd
Resolving Dependencies
--> Running transaction check
---> Package bottom.x86_64 0:0.6.8-1.el9 will be installed
--> Processing Dependency: libm.so.6(GLIBC_2.29)(64bit) for package: bottom-0.6.8-1.el9.x86_64
--> Processing Dependency: libc.so.6(GLIBC_2.34)(64bit) for package: bottom-0.6.8-1.el9.x86_64
--> Finished Dependency Resolution
Error: Package: bottom-0.6.8-1.el9.x86_64 (copr:copr.fedorainfracloud.org:atim:bottom)
           Requires: libm.so.6(GLIBC_2.29)(64bit)
Error: Package: bottom-0.6.8-1.el9.x86_64 (copr:copr.fedorainfracloud.org:atim:bottom)
           Requires: libc.so.6(GLIBC_2.34)(64bit)
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

Then I checked to see what package(s) provide libc.so.6:

[root@awsec2host ec2user]# yum install glibc
Loaded plugins: copr, extras_suggestions, langpacks, priorities, update-motd
Package glibc-2.26-58.amzn2.x86_64 already installed and latest version
Nothing to do

The glibc package is already installed, so I also installed glibc-devel:

[root@awsec2host ec2user]# yum install glibc-devel
Loaded plugins: copr, extras_suggestions, langpacks, priorities, update-motd
Resolving Dependencies
--> Running transaction check
---> Package glibc-devel.x86_64 0:2.26-58.amzn2 will be installed
--> Processing Dependency: glibc-headers = 2.26-58.amzn2 for package: glibc-devel-2.26-58.amzn2.x86_64
--> Processing Dependency: glibc-headers for package: glibc-devel-2.26-58.amzn2.x86_64
--> Running transaction check
---> Package glibc-headers.x86_64 0:2.26-58.amzn2 will be installed
--> Finished Dependency Resolution

Dependencies Resolved


 Package                     Arch                 Version                      Repository                Size

Installing:
 glibc-devel                 x86_64               2.26-58.amzn2                amzn2-core               994 k
Installing for dependencies:
 glibc-headers               x86_64               2.26-58.amzn2                amzn2-core               514 k

Transaction Summary

Install  1 Package (+1 Dependent package)

Total download size: 1.5 M
Installed size: 3.3 M
Is this ok [y/d/N]: y
Downloading packages:
(1/2): glibc-headers-2.26-58.amzn2.x86_64.rpm                                          | 514 kB  00:00:00     
(2/2): glibc-devel-2.26-58.amzn2.x86_64.rpm                                            | 994 kB  00:00:00     

Total                                                                         9.1 MB/s | 1.5 MB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : glibc-headers-2.26-58.amzn2.x86_64                                                         1/2 
  Installing : glibc-devel-2.26-58.amzn2.x86_64                                                           2/2 
  Verifying  : glibc-headers-2.26-58.amzn2.x86_64                                                         1/2 
  Verifying  : glibc-devel-2.26-58.amzn2.x86_64                                                           2/2 

Installed:
  glibc-devel.x86_64 0:2.26-58.amzn2                                                                          

Dependency Installed:
  glibc-headers.x86_64 0:2.26-58.amzn2                                                                        

Complete!

Even searching for the presence of libc.so.6:

[root@awsec2host ec2user]# locate libc.so.6
/usr/lib64/libc.so.6

I tried running rpm -Va --nofiles --nodigest - that didn't help.

I also tried using the skip-broken option:

[root@awsec2host lib]# yum install bottom --skip-broken
Loaded plugins: copr, extras_suggestions, langpacks, priorities, update-motd
Resolving Dependencies
--> Running transaction check
---> Package bottom.x86_64 0:0.6.8-1.el9 will be installed
--> Processing Dependency: libm.so.6(GLIBC_2.29)(64bit) for package: bottom-0.6.8-1.el9.x86_64
--> Processing Dependency: libc.so.6(GLIBC_2.34)(64bit) for package: bottom-0.6.8-1.el9.x86_64
copr:copr.fedorainfracloud.org:atim:bottom/x86_64/filelists_db                         | 1.1 kB  00:00:00     

Packages skipped because of dependency problems:
    bottom-0.6.8-1.el9.x86_64 from copr:copr.fedorainfracloud.org:atim:bottom

I'm sure I'm not alone in wanting to be able to use your awesome application. It would be really great if you would reach out to the copr team as the package developer and work to get this dependency issue resolved.

W4JEW avatar May 10 '22 16:05 W4JEW

@tim77 sorry for pinging you again, but would it be possible to look at this?

ClementTsang avatar May 10 '22 18:05 ClementTsang

@tim77 sorry for pinging you again, but would it be possible to look at this?

No need to apologize. I'll try to look at this as soon as i can. But some my quick thoughts: official Amazon docs said that we need to enable EPEL-7 repo for AL2. The problem is that the only EPEL Fedora repos support aarch64 (official EPEL repo), but Copr not. Copr support aarch64 builds only for EPEL-8 and newer.

Packaging bottom for EPEL-7 is nearly impossible and requires a lot of resources due how Rust software packaged in Fedora/EPEL. Would be really great if Amazon Linux do not stuck in stone age and upgraded one day.

tim77 avatar May 10 '22 18:05 tim77

Interesting stuff to learn, thanks for the info.

Kinda just randomly throwing out an idea, but I guess one way (maybe?) to work around the glibc issues is just build for musl. However, I don't know how that would look in regards to packaging/distribution, or if that would be an acceptable solution.

ClementTsang avatar May 10 '22 19:05 ClementTsang

No issues here installing bottom_aarch64-unknown-linux-gnu.tar.gz 0.6.8 on Amazon Linux 2, seems to work wonderfully :)

bkervaski avatar Jun 08 '22 12:06 bkervaski