@Bolly
I'd say that if you download the arm package from an Ubuntu ports repo, such as:
wget http://mirror.kumi.systems/ubuntu-ports/pool/main/r/rsync/rsync_3.2.7-0ubuntu0.22.04.4_arm64.deb
if you don't trust this particular mirror (most of them are in China anyway), here is a script that can give you (more or less) all mirrors:
#!/bin/bash
# URL of the Launchpad mirror list
MIRROR_LIST=https://launchpad.net/ubuntu/+archivemirrors
# Set to the architecture you're looking for (e.g., amd64, i386, arm64, armhf, armel, powerpc, ...).
# See https://wiki.ubuntu.com/UbuntuDevelopment/PackageArchive#Architectures
ARCH=$1
# Set to the Ubuntu distribution you need (e.g., precise, saucy, trusty, ...)
# See https://wiki.ubuntu.com/DevelopmentCodeNames
DIST=$2
# Set to the repository you're looking for (main, restricted, universe, multiverse)
# See https://help.ubuntu.com/community/Repositories/Ubuntu
REPO=$3
# First, we retrieve the Launchpad mirror list, and massage it to obtain a newline-separated list of HTTP mirrors
for url in $(curl -s $MIRROR_LIST | grep -Po 'http://.*(?=">http</a>)'); do
# If you like some output while the script is running (feel free to comment out the following line)
echo "Processing $url..."
# retrieve the header for the URL $url/dists/$DIST/$REPO/binary-$ARCH/; check if status code is of the form 2.. or 3..
curl -o /dev/null -L -s -w '%{response_code}' -I $url/dists/$DIST/$REPO/binary-$ARCH | grep -q "200"
# if successful, output the URL
[ $? -eq "0" ] && echo "FOUND: $url" && curl -o /dev/null -L -s -w '%{response_code}' -I $url/dists/$DIST/$REPO/binary-$ARCH
done
call it with
sh find-mirrors.sh arm64 noble main
disclaimer: did not write it, found it on github and adapted it (but there are still some problems badly configurated sites are getting 'found' incorrectly)
then once you picked a correct mirror, run
wget http://mirror.kumi.systems/ubuntu-ports/pool/main/r/rsync/rsync_3.2.7-0ubuntu0.22.04.4_arm64.deb
mkdir mydir
dpkg --extract rsync_3.2.7-0ubuntu0.22.04.4_arm64.deb mydir
then get the binary from 'mydir/usr/bin', it will just work because all necessary libraries are already present in Ubuntu ports noble.
Yes you have then to update it yourself in case of upgrades by Ubuntu.
Alternatively, you can be an open source hero and package rsync as an AppImage. I don't recommend it unless you appreciate what it takes.