error while loading shared libraries
An aria2c copied from elsewhere needs libraries your system lacks. Install aria2 from your package manager instead; it brings the right libraries.
Every major distribution packages aria2, so one command installs it. Older releases ship older versions; the table shows which.
Pick your distribution and run the line in a terminal.
sudo apt install aria2
Also Linux Mint, Pop!_OS and Raspberry Pi OS.
sudo dnf install aria2
On RHEL, Rocky and AlmaLinux aria2 comes from EPEL.
sudo pacman -S aria2
Also Manjaro and EndeavourOS.
apk add aria2
Run as root or with doas.
sudo zypper install aria2
aria2c --versionaria2 version 1.37.0Read from each distribution's package archive on 2026-10-27. 1.37.0 is the current aria2 release.
| Distribution | Release | aria2 |
|---|---|---|
| Ubuntu | 24.04 LTS and newer | 1.37.0 |
| Ubuntu | 22.04 LTS | 1.36.0 |
| Debian | 13 trixie | 1.37.0 |
| Debian | 12 bookworm | 1.36.0 |
| Fedora | current | 1.37.0 |
| RHEL, Rocky, AlmaLinux (EPEL) | 10 | 1.37.0 |
| RHEL, Rocky, AlmaLinux (EPEL) | 9 | 1.36.0 |
| openSUSE | Tumbleweed | 1.37.0 |
| Arch Linux | rolling | 1.37.0 |
| Alpine | edge | 1.37.0 |
| conda-forge | any distribution | 1.37.0 |
Only needed when your distribution ships an older version and you need something from 1.37.0. These are the steps from the aria2 README for Debian and Ubuntu.
Package names are for Debian and Ubuntu; other distributions have the same libraries under similar names.
sudo apt install build-essential pkg-config libssl-dev libssh2-1-dev libc-ares-dev libxml2-dev zlib1g-dev libsqlite3-dev
The release tarball already contains the configure script.
curl -LO https://github.com/aria2/aria2/releases/download/release-1.37.0/aria2-1.37.0.tar.xztar xf aria2-1.37.0.tar.xz && cd aria2-1.37.0
configure prints which features it found; check that HTTPS, BitTorrent and Metalink say yes. The program lands in /usr/local/bin.
./configuremake -j"$(nproc)"sudo make install
aria2 reads ~/.aria2/aria2.conf, or $XDG_CONFIG_HOME/aria2/aria2.conf if the first does not exist. Create the folder, an empty session file and the config:
mkdir -p ~/.aria2 && touch ~/.aria2/aria2.sessionnano ~/.aria2/aria2.conf
A systemd user service starts aria2 at login and restarts it if it stops. Save this as ~/.config/systemd/user/aria2.service:
[Unit]
Description=aria2 download server
After=network-online.target
[Service]
ExecStart=/usr/bin/aria2c --conf-path=%h/.aria2/aria2.conf
Restart=on-failure
[Install]
WantedBy=default.target
Then run systemctl --user enable --now aria2. To keep it running after you log out, also run loginctl enable-linger $USER. On a server or NAS, the Docker guide has a tested container.
sudo apt upgrade aria2 · sudo apt remove aria2sudo dnf upgrade aria2 · sudo dnf remove aria2sudo pacman -Syu · sudo pacman -R aria2sudo make uninstallAn aria2c copied from elsewhere needs libraries your system lacks. Install aria2 from your package manager instead; it brings the right libraries.
Containers and minimal installs may lack the CA bundle. Install ca-certificates (apk add ca-certificates on Alpine).
With -D, aria2 works from /, so relative paths end up under /. Use absolute paths for dir and the session file.